diff options
Diffstat (limited to 'tutorials/module_2/non_linear_eqn_solver.md')
| -rw-r--r-- | tutorials/module_2/non_linear_eqn_solver.md | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/tutorials/module_2/non_linear_eqn_solver.md b/tutorials/module_2/non_linear_eqn_solver.md deleted file mode 100644 index 6d1ded3..0000000 --- a/tutorials/module_2/non_linear_eqn_solver.md +++ /dev/null @@ -1,117 +0,0 @@ -# Solving non-linear equations - -## Introduction - - -## Prerequisites - -```python -import numpy -import scipy -import sympy -``` - - -## fsolve from SciPy - -```python -from scipy.optimize import fsolve - -def equations(vars): - x, y = vars - eq1 = x**2 + y**2 - 25 - eq2 = x**2 - y - return [eq1, eq2] - -initial_guess = [1, 1] -solution = fsolve(equations, initial_guess) -print("Solution:", solution) -``` - -## root from SciPy -```python -from scipy.optimize import root - -def equations(vars): - x, y = vars - eq1 = x**2 + y**2 - 25 - eq2 = x**2 - y - return [eq1, eq2] - -initial_guess = [1, 1] -solution = root(equations, initial_guess) -print("Solution:", solution.x) -``` - - -## minimize from SciPy -```python -from scipy.optimize import minimize - -# Define the equations -def equation1(x, y): - return x**2 + y**2 - 25 - -def equation2(x, y): - return x**2 - y - -# Define the objective function for optimization -def objective(xy): - x, y = xy - return equation1(x, y)**2 + equation2(x, y)**2 - -# Initial guess -initial_guess = [1, 1] - -# Perform optimization -result = minimize(objective, initial_guess) -solution_optimization = result.x - -print("Optimization Method Solution:", solution_optimization) - -``` - -## nsolve from SymPy -```python -from sympy import symbols, Eq, nsolve - -# Define the variables -x, y = symbols('x y') - -# Define the equations -eq1 = Eq(x**2 + y**2, 25) -eq2 = Eq(x - y, 0) - -# Initial guess for the solution -initial_guess = [1, 1] - -# Use nsolve to find the solution -solution = nsolve([eq1, eq2], [x, y], initial_guess) -print("Solution:", solution) -``` - -## newton_method from NumPy - -```python -import numpy as np - -def equations(vars): - x, y = vars - eq1 = x**2 + y**2 - 25 - eq2 = x**2 - y - return np.array([eq1, eq2]) - -def newton_method(initial_guess, tolerance=1e-6, max_iter=100): - vars = np.array(initial_guess, dtype=float) - for _ in range(max_iter): - J = np.array([[2 * vars[0], 2 * vars[1]], [2 * vars[0], -1]]) - F = equations(vars) - delta = np.linalg.solve(J, -F) - vars += delta - if np.linalg.norm(delta) < tolerance: - return vars - -initial_guess = [1, 1] -solution = newton_method(initial_guess) -print("Solution:", solution) -```
\ No newline at end of file |
