非线性方程的数值解法代码
时间: 2024-10-15 17:06:01 浏览: 42
非线性方程的数值解法通常涉及迭代过程,因为非线性方程没有解析解。常用的一些算法包括牛顿法(Newton-Raphson method)、梯度下降法(Gradient Descent)以及拟牛顿法(如Broyden-Fletcher-Goldfarb-Shanno法,简称BFGS)。以下是用Python实现牛顿法求解一个简单一元非线性方程的一个简化示例:
```python
import numpy as np
def f(x):
# 假设我们要解的方程是 f(x) = x^2 - 5
return x**2 - 5
def df(x):
# 方程f(x)的一阶导数
return 2 * x
def newton_raphson_method(starting_guess, tolerance=1e-6, max_iterations=100):
x_current = starting_guess
for _ in range(max_iterations):
if abs(f(x_current)) < tolerance:
break
x_new = x_current - f(x_current) / df(x_current)
x_current = x_new
return x_new
# 示例:求解x^2 - 5 = 0
solution = newton_raphson_method(3)
print(f"Solution to the equation is {solution}.")
阅读全文