
第三部分内容主要是非线性的各种玩意儿,比如一个非线性的方程怎么解、一个非线性的函数曲线怎么拟合、一个积分怎么算、一个微分方程怎么求数值解:
- 非线性方程怎么解:简单迭代法、Newton迭代法、多根区间上的单根/重根的处理
- 非线性曲线怎么拟合:L插值、N插值、插值余项、分段低次插值、Hermite插值、样条函数、正交多项式、最小二乘法
- 积分怎么算:代数精度、N-C求积公式、复化求积公式、G求积公式
- 微分方程怎么求数值解:怎么表示多步法、阶、误差主项、稳定性、显式E法、隐式E法、梯形公式
首先一定要判断求根区间上是否有重根/好几个单根,或者某个根是不是重根!观察原来的方程
重根可以这样定义:![]()
针对单根区间(自变量的取值范围里,方程只有一个根)的情况,非线性方程的解法可以参考线性方程组:既然
也可以化成
,而这个方程迭代下去,最终如果取得
,那么
就是原方程的一个根了

这种迭代法并不一定收敛,要求是:
![]()
也就是要求在单根区间上,的值在
里取,
的值在
里取



需要注意,这样即使证明收敛,也是在单根区间上局部收敛,别处收不收敛还是不清楚的
不如破罐子破摔吧!直接判断是否在根
常数,则称p阶收敛
还有种简单的判断方法:,线性收敛(一阶收敛),
越接近0,收敛越快
,二阶收敛
……(必须p阶连续可导,前p-1阶导数都是0),p阶收敛
求到哪一阶的导数,代入后不是0了,说明哪一阶收敛
最常用的是Newton法,这个至少二阶收敛:
( 单根区间上的牛顿法/切线法)![]()
由于Newton法有时候求导数有点麻烦,直接用差商



Newton法局部收敛,初始点选不好容易发散,也可以在被减的那一项前面加个系数