牛顿迭代法
求解非线性方程的方法,属于迭代法的一种,原理的话:

x*是这个方程的根,我们在旁边找一个点xk,根据这个点的函数值和导数值,我们可以计算出这条直线和x轴的交点xk+1,然后将xk+1作为下一个xk迭代计算,就能得到答案。
我们将方程整理一下,有:

实际上实现还是很简单的,唯一的难点就是怎么计算函数值和导数值。
计算函数值和导数值
如果是函数值的话,math包中有cos、sin和exp能解决问题,但是还是解决不了求导过程,这时我们就需要使用强大的sympy了。
计算函数值
import sympy as sp
x0 = 1
x = sp.symbols('x')
y = x**2-2*x*sp.exp(-x)+sp.exp(-2*x)
print( float(y.evalf

本文介绍了如何使用Python的sympy库实现牛顿迭代法来求解非线性方程,详细讲解了计算函数值、求导数的过程,并探讨了多元函数的处理以及牛顿迭代法的具体实现,包括最大迭代次数和精度控制。
最低0.47元/天 解锁文章
3235

被折叠的 条评论
为什么被折叠?



