非线性方程的数值解法

本文介绍了求解非线性方程的两种数值方法——不动点迭代法和牛顿法。不动点迭代法通过构造迭代函数找到不动点求解,讨论了其收敛条件和收敛速度。牛顿法则利用泰勒展开线性化方程,具有更快的收敛速度,但对初始值敏感,可通过牛顿下山法改善其稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设有一个单变量的非线性方程f(x)=0f(x) = 0f(x)=0,往往这样的方程没有直接的求根公式,因此没有直接方法计算,只能使用迭代法来求数值解,二分法就是这样的一种方法,这里介绍一下其他的几种方法

不动点迭代法

我们可以将非线性方程f(x)=0f(x) = 0f(x)=0改写为x=ϕ(x)x = \phi(x)x=ϕ(x),满足这样式子的x称作ϕ(x)\phi(x)ϕ(x)的一个不动点,求f(x)f(x)f(x)的零点就等价于求ϕ(x)\phi(x)ϕ(x)的不动点,可以选定一个初始值x0x_0x0代入等式的右侧,然后一直以xk+1=ϕ(xk)x_{k+1} = \phi(x_k)xk+1=ϕ(xk)的方式迭代下去,这样可以获得一个序列,如果序列{ xk}\{x_k\}{ xk}有极限:lim⁡k−>∞xk=x∗\lim_{k->\infty}x_k = x^*k>limxk=x则称该迭代法为不动点迭代法。
我们可以用几何图像来表达不动点迭代法的思想:
在这里插入图片描述
如图,选定了初始值x0x_0x0,然后计算出ϕ(x0)\phi(x_0)ϕ(x0)得到了P0P_0P0,然后再过(x0,P0)(x_0,P_0)(x0,P0)引一条与x轴平行的直线,它与直线y=xy=xy=x交于点Q1(P0,P0)Q_1(P_0,P_0)Q1(P0,P0),然令x1=P0x_1 = P_0x1=P0,沿着图上的路径继续走下去,可以发现最终点列{ Pk}\{P_k\}{ Pk}会收敛到P∗P^*P,也就是最终迭代的值xkx_kxk会收敛到想要的x∗x^*x

尽管在这个图上最终的结果是收敛的,但是这并不意味着采用不动点迭代法一定是收敛的
在这里插入图片描述
例如在这个图上,用不动点迭代法就是不收敛的,点列{ Pk}\{P_k\}{ Pk}会一直往偏离P∗P^*P的方向移动。

不动点的存在性和迭代的收敛性
首先考虑ϕ(x)\phi(x)ϕ(x)[a,b][a,b][a,b]上不动点的存在性和唯一性:
定理1:若ϕ(x)\phi(x)ϕ(x)[a,b][a,b][a,b]上满足:
(1)对于任意的x∈C[a,b]x∈C[a,b]xC[a,b],都有a&lt;=ϕ(x)&lt;=ba&lt;=\phi(x)&lt;=ba<=ϕ(x)<=b
(2)存在正常数L&lt;1L &lt; 1L<1,使对任意的x,y∈[a,b]x,y∈[a,b]x,y[a,b],都有∣ϕ(x)−ϕ(y)∣&lt;=L∣x−y∣|\phi(x)-\phi(y)|&lt;=L|x-y|ϕ(x)ϕ(y)<=Lxy
那么ϕ(x)\phi(x)ϕ(x)[a,b][a,b][a,b]上存在唯一的不动点x∗x^*x

证:
ϕ(a)=a\phi(a) = aϕ(a)=aϕ(b)=b\phi(b) = bϕ(b)=b 那么不动点显然存在
ϕ(a)&gt;a\phi(a) &gt; aϕ(a)>aϕ(b)&lt;b\phi(b) &lt; bϕ(b)<b,则设函数f(x)=ϕ(x)−xf(x) = \phi(x) - xf(x)=ϕ(x)x
由已知有f(a)=ϕ(a)−a&gt;0f(a) = \phi(a) - a &gt; 0f(a)=ϕ(a)a>0f(b)=ϕ(b)−b&lt;0f(b) = \phi(b) - b &lt; 0f(b)=ϕ(b)b<0,由连续函数的性质可知,存在x∗∈(a,b)x^*∈(a,b)x(a,b)使得f(x∗)=0f(x^*) = 0f(x)=0
因此不动点一定存在,下面证其唯一性:
x1∗,x2∗x_1^*,x_2^*x1x2都是ϕ(x)\phi(x)ϕ(x)(a,b)(a,b)(a,b)上的不动点,则由条件(2)可知:∣x1∗−x2∗∣=∣ϕ(x1∗)−ϕ(x2∗)∣&lt;L∣x1∗−x2∗∣&lt;∣x1∗−x2∗∣|x_1^*-x_2^*| = |\phi(x_1*) - \phi(x_2*)| &lt; L|x_1^*-x_2^*| &lt;|x_1^*-x_2^*|x1x2=ϕ(x1)ϕ(x2)<Lx1x2<x1x2 ,矛盾
因此不动点唯一。

定理2
ϕ(x)∈C[a,b]\phi(x)∈C[a,b]ϕ(x)C[a,b]满足定理1中的两个条件,则对于任意选定的x0∈[a,b]x_0∈[a,b]x0[a,b],得到的迭代序列{ xk}\{x_k\}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值