Numerical Methods Using MATLAB(4版)-02-Nonlinear Equations

引自Numerical Methods Using MATLAB(4版)书籍,如有侵权请联系删除

前言

这一章节主要讲述求f(x)=0这一方程根的不同方法。

学习总结

不动点迭代

我们假设按照g(x)这一函数迭代,初始值为p_0,那么我们接下来会得到序列\{p_k\}。如果这个序列是收敛的,那么能得到一个不动点P使得P=g(P)
g∈C[a,b]时,有以下几条定理:
1、如果y=g(x)满足y∈[a,b]x∈[a,b],那么g[a,b]中有不动点P
2、如果g'(x)(a,b)中有定义且对任意x∈(a,b)存在|g'(x)| \leq K < 1,那么g[a,b]上有唯一不动点P
g,g'∈C[a,b];p_0∈(a,b);对所有x∈[a,b],g(x)∈[a,b]时,有以下几条定理:
1、如果对任意x∈(a,b)存在|g'(x)| \leq K < 1,那么迭代收敛到唯一不动点,称为吸引不动点。
2、如果对任意x∈(a,b)存在|g'(x)| > 1,那么迭代无法收敛到不动点,称为反叛不动点。
P46的公式14是如何得到的?
|a-b|<=|a-c|+|c-b|

证明过程

方法一 二分法

二分法的过程很简单在此不过多赘述。

二分法的定理:
假设f∈C[a,b],并且存在r∈[a,b]使得f(r)=0。如果f(a)f(b)符号相反,且\{c_n\}_{n=0}^{\infty}代表二分过程中中间点序列,那么有
|r-c_n| \leq \frac{b-a}{2^{n+1}},n=0,1,...
且有
\lim_{n\rightarrow\infty}c_n=r.

二分法的优点:
可以提前预估解的精确度。假设重复N次二分,那么我们通过以下能够保证c_N近似于解,且误差少于\delta
N=int(\frac{ln(b-a)-ln(\delta)}{ln(2)})
proof.
(1)Nln2=ln(b-a)-ln(\delta)
(2)ln2^N=ln(b-a)-ln(\delta)
(3)2^N=\frac{(b-a)}{\delta}
(4){\delta}=\frac{(b-a)}{2^N}

方法二 错位法

因为二分法收敛得比较慢,所以我们发明了错位法。

错位法的原理:
该方法连接(a,f(a))(b,f(b))两点,其连线在x轴的交点取为(c,0),然后和二分法一样,f(c)与哪个端点互为相反数,则更新区间。
其中求c的公式如下:
c=b-\frac{f(b)(b-a)}{f(b)-f(a)}

其中,二分法的误差err=abs(b-a),错位法的误差err=abs(b-a)/2
但是错位法的误差为什么是这样的呢?证明?

逼近区域的初始化和收敛标准

上述方法都是全局收敛的,但如果在区间内有多个解,那么我们就需要更小的区间分别来寻找这些解。接下来会描述Newton-Raphson和割线法来求解,这两种方法都是求局部收敛的。这种局部收敛会收敛得更快。有部分算法会结合这两种类型的算法,在开始使用全局收敛,当接近根的时候再使用局部收敛。
作图是一种方法。但是计算机有时候也会遇到精确度不够的特殊情况,我们需要考虑到。与此同时,由于计算机精度有限,我们可能会遇到f(x_k) \approx 0的情况,这时候我们需要判断附近x_{k-1}x_{k+1}两点斜率是否相反,相反才行。
即,判断根,一个是两边f(x)符合相反,一个是两边斜率相反且f(x_k) \approx 0
(i)(y_{k-1})(y_k)<0,or
(ii)|y_k|<\epsilon \ and \ (y_k-y_{k-1})(y_{k+1}-y_k)<0.
对于计算机求根,我们需要一个算法来判断什么时候循环终止,因此我们需要制定数值,防止死循环,同时也要保持一定精度。我们可以有以下两种评判标准:
|p_n-p_{n-1}| < \delta,(the \ \ absolute \ \ error)
\frac{2|p_n-p_{n-1}|}{|p_n|+|p_{n-1}|} < \delta,(the \ \ relative \ \ error)
(其中,第二种标准为什么不是直接除|p_n|,是为了防止除0现象。)

解误差与残差的区别

残差
解误差

如图,解误差是y的误差,残差是x的误差。一般情况下我们很难得到P,所以解误差少用。

方法三 Newton-Raphson法

如果f(x),f'(x),f''(x)在根p附近连续,那么我们可以使用更快的算法来收敛,其中Newton-Raphson法就是其中最有用和最出名的算法之一。牛顿法并不能保证找到根,也会出现循环或发散的情况。

Newton-Raphson法的原理
假设f∈C^2[a,b],且p∈[a,b]f(p)=0。如果f'(p) \neq 0,则存在\delta > 0使得序列\{p_k\}_{k=0}^{\infty}满足以下公式:
p_k=g(p_{k-1})=p_{k-1}-\frac{f(p_{k-1})}{f'(p_{k-1})},k=1,2,...
其中序列最终收敛到p,且p_0∈[p-\delta,p+\delta]
且根据不动点迭代的原理,需满足
g'(x)=\frac{f(x)f'''(x)}{(f'(x))^2}<1,for \ \ all \ \ x∈(p-\delta,p+\delta).

proof.
p_0非常逼近p
(1)f(x)=f(p_0)+f'(p_0)(x-p_0)+\frac{f''(c)(x-p_0)^2}{2!},

(2)0=f(p_0)+f'(p_0)(x-p_0)+\frac{f''(c)(x-p_0)^2}{2!},

(3)0 \approx f(p_0)+f'(p_0)(x-p_0),

(4)p_1 = p_0-\frac{f(p_0)}{f'(p_0)}.

Newton-Raphson法的推论
可以用来找平方根,这个推论的重点在于函数g(x)只能有简单的加减乘除运算,如果有根号运算,可能会陷入循环,因此我们采用这种推论求根号。
假设A>0p_0>0,p_0 \approx \sqrt{A},有
p_k=\frac{p_{k-1}+\frac{A}{p_{k-1}}}{2},k=1,2,...
使得\lim_{n\rightarrow\infty}p_k=\sqrt{A}

proof.
f(x)=x^2-A,再用牛顿法求根迭代。

根的定义
假设f(x)及其M阶导数f^{(M)}(x)x=p上有定义且连续,并当且仅当
f(p)=0,f'(p)=0,...,f^{(M-1)}(p)=0,f^{(M)}(p) \neq 0

则我们称f(x)=0x=p上有M个根。
且存在一个连续函数h(x)可以表达为f(x)=(x-p)^Mh(x),h(p) \neq 0.

收敛速度
如果p是单根,那么牛顿法可以快速收敛,每次迭代精确的小数位数都可以翻倍。如果p是多根,每次后继误差都是前面误差的一部分。这里是为什么?
假设\{p_n\}_{n=0}^{\infty}收敛到p,且有E_n=p-p_n(n \geq 0)(解误差,可以用残差代替)。如果正常量A \neq 0R >0存在,则
\lim_{n \rightarrow \infty}\frac{|p-p_{n+1}|}{|p-p_n|^R}=\lim_{n \rightarrow \infty}\frac{|E_{n+1}|}{|E_n|^R}=A.
其中R为序列收敛到p的阶数,A为渐进误差常量。
R=1时,一般有A<1,称为线性收敛。
R=2时,一般有A为常量即可,称为平方收敛。
R越大,收敛得越快。

牛顿法收敛速度的定理
如果p是单根,收敛速度是平方的,|E_{n+1}| \approx \frac{|f''(p)|}{2|f'(p)|}|E_n|^2
如果pM根,收敛速度是线性的,|E_{n+1}| \approx \frac{M-1}{M}|E_n|

加速牛顿法的收敛速度
牛顿法是线性收敛到根的,为了加速,我们可以使用以下公式产生序列平方收敛到根:
p_k=p_{k-1}-\frac{Mf(p_{k-1})}{f'(p_{k-1})}.

方法四 割线法

割线法与错位法几乎是一样的,但是错位法是在缩小区间,割线法是在快速找点。其单根收敛阶数为 R ≈ 1.618033989。
p_{k+1}=g(p_k,p_{k+1})=p_k-\frac{f(p_k)(p_k-p_{k-1})}{f(p_k)-f(p_{k-1})}.

收敛速度的比较

方法五 Aitken's Process

牛顿法中对于多根收敛速度是线性的,而使用加速牛顿法,得提前知道根的个数。因此我们提出一些其他方法来加速。
定义
对于收敛数列\{p_n\}_{n=0}^{\infty},定义\Delta p_n=p_{n+1}-p_n,n \geq 0。而\Delta^kp_n=\Delta^{k-1}(\Delta p_n),k \geq 2
举例:\Delta^2p_n=\Delta(\Delta p_n)=\Delta(p_{n+1})-\Delta(p_n)=p_{n+2}-2p_{n+1}+p_n
定理
假设数列\{p_n\}_{n=0}^{\infty}线性收敛到p,且对所有n \geq 0p-p_n \neq 0。如果这里存在一个实数A,有|A|<1使得
\lim_{n \rightarrow \infty}\frac{p-p_{n+1}}{p-p_n}=A,
则我们可以定义数列\{q_n\}_{n=0}^{\infty}
q_n=p_n-\frac{(\Delta p_n)^2}{\Delta^2p_n}=p_n-\frac{(p_{n+1}-p_n)^2}{p_{n+2}-2p_{n+1}+p_n}
通过\lim_{n \rightarrow \infty}|\frac{p-q_n}{p-p_n}|=0我们可以知道q_n收敛要快于p_n

方法六 Muller's Method

该方法是割线法的另一种演绎,只是减去了导数的计算,但需要三个点。该方法比割线法快甚至几乎和牛顿法一样快,但会涉及复杂一点的运算。
假设p_2是最近似p的点,定义变量t=x-p_2h_0=p_0-p_2h_1=p_1-p_2
定义二元方程y=at^2+bt+c
代入,我们可以分别得到以下式子:
t=h_0:ah_0^2+bh_0+c=f_0,

t=h_1:ah_1^2+bh_1+c=f_1,

t=0:a0^2+b0+c=f_2,

通过以上式子我们求得a,b,c。然后求根z=\frac{-2c}{b\pm \sqrt{b^2-4ac}}。最后可得p_3=p_2+|z|。在之后的迭代中,我们舍去\{p_0,p_1,p_3\}中离p最远的点,并将p_2=p_3

词汇学习

spherical 球形
corollary 必然的
oscillate 摆动
interval 间隔的
consecutive 连续的
leisure 休闲
concavity 凹
slope 坡
quotient 商
secant 割线
projectile 弹丸
elapse 过去
fitfall 健身
lemma 引理
asymptotic 渐进的
parabola 抛物线
auxiliary 辅助的

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351