PAGE
PAGE 2
数值分析的重要性
数值分析是帮助科研人员了解和进行有效科学计算的桥梁,也是现代科学计算的基础,其理论性和实用性都很强。
数值分析的核心是算法构造和误差分析,与理论数学立足准确追求准确结果不同的是,数值分析是立足近似追求“可用”结果。它面对有误差的原始数据,采用近似方法来获得满足精度要求的近似结果。这种近似处理技术是解决实际问题的重要手段之一。
此外,数值分析含有丰富的科学研究方法和创新内容。了解科学研究方法论且熟悉数值分析的学者会发现整个数值分析的内容本身就是科学研究方法的实际应用,其每个算法的构造过程都是科学方法的具体实现。
通常用计算机解决实际问题有四个步骤
eq \o\ac(○,1)建立数学模型;
eq \o\ac(○,2)选择数值方法;
eq \o\ac(○,3)编写程序;
eq \o\ac(○,4)上机计算。
案例
Newton迭代法
理论
Newton迭代法又称切线法。该方法是Newton在研究求根时问题时借助大胆近似技术得出的目前求根方法中收敛最快的方法。
基本思想
将函数做线性化处理〔即将在某点展开为Taylor级数后,取其线性部分代替〕,把方程转化为对应的近似方程,再从中构造迭代公式。
构造原理
迭代点列的收敛是一个逐步逼近根的过程,于是可以尝试用近似手段构造迭代公式。Newton迭代法在这方面做得很成功,其具体过程为
① 先将在处做Taylor展开
② 取展式中关于的线性部分即代替,将方程替换为近似方程,有
(2.10)
③ 从方程(2.10)中求出解,记为,得迭代关系式
(2.11)
迭代式(2.11)称为Newton迭代公式,用此公式求方程根的方法称为Newton迭代法。
分析
Newton迭代公式虽然是从近似方程(2.10)推导出的一种求根方法,但它本质上是一种简单迭代法。实际上,由式(2.11)可得出Newton迭代法的不动点方程
(2.12)
只要,方程(2.12)可由等价变形得出。因此有关简单迭代法的结果可以用于Newton迭代法中。因为,可知Newton迭代法具有超线性收敛速度,但实际上它具有平方收敛速度。
所以有
说明Newton迭代法在时至少是平方收敛的。
Newton迭代法不仅给出了一种构造求非线性方程根迭代公式的方法,而且是采用近似
处理获得满意结果的典范,这种近似处理不仅没有背离原问题,而且获得了高阶的收敛方法。Newton迭代法使用的线性化技术是目前求非线性问题最常用的方法之一。
Newton迭代法具有很形象的几何意义。注意到直线是在处的切线方程,可知Newton迭代法是由过点的切线与x轴的交点得到下一个迭代点的,这也是称Newton迭代法为切线法的原因。
应该注意的是Newton迭代法的平方敛速在的条件下才有的,当时,Newton迭代法的收敛速度只能是线性的(留作习题)。
由于Newton迭代法是局部收敛的,故初值应充分靠近根才能保证收敛,这在一般情况下不容易做到。实用中可先用二分法做求根预处理,二分若干次后得到较靠近根的近似根,再用此根作为Newton迭代法的初值求根,这可以达到取长补短的作用。
数学实验
3. Newton迭代法
Newton迭代法算法:
1.输入初值x0、迭代精度eps、函数f(x) 和迭代最大次数Nmax
2.For k=1,2,…,Nmax
如果|f?(x0)|
x ?x0-f (x0)/f? (x0)
如果|x-x0|
x0 ? x
输出迭代失败,终止。
Newton迭代法程序:
Clear[x,f,g];
f[x_]=Input["f[x]="];
g[x_]=D[f[x],x];
x0=Input["输入迭代初值"];
eps1=0.00000000001;
nmax=500;
eps=Input["输入精度控制eps="];
Do[u1=g[x0];
If[Abs[u1//N]
x=x0-f[x0]/u1;
u1=Abs[x-x0]//N;
Print["x=",x," n=",n," eps=",u1];
If[u1
{n,1,nmax}];
If[u1>eps,Print["迭代失败 "]]
说明:本程序用于求非线性方程f(x)=0在x0附近的根。程序执行后,先通过键盘输入迭代函数f(x)和迭代初值x0及根的