当前位置:首页 > 数值分析实验五 非线性方程的求根3
数值分析实验五 非线性方程的求根
组号 班级 学号 姓名 分数
一:实验目的
1. 利用数学软件用一般迭代法、牛顿迭代法求解非线性方程和方程组的根,并对结果作出初步的分析。 二:实验内容及基本知识介绍
一般迭代法的原理: 1. 基本思想:
首先给定一个粗糙的初始值,然后一个迭代公式,反复校正这个初值,将已有近似值逐步精确化,一直到满足精度要求为止。具体地,将方程f?x??0改写成x的表达式
。 x???x? (1) 若
x*???x?*,称
x*为??x?的一个不动点,求f?x?的零点就等价于求的??x?不
*动点。在?a,b?上任取一点
x0,代入??x?求得
x1???x0?,又将x1代入??x?求得:
x2???x1?,如此反复迭代下去。一般地,xk?1???xk?,k?0,1,2... (2)称为迭代
函数,x???x?为迭代公式。若迭代序列(2)收敛,这时
?x?有极限,即limx?xk*k??k,则称迭代方程
x*显然是x???x?的不动点。
?
?x?**?????limxk??lim??xk??limxk?1?x
k???k???k??2. 几何解释:方程x???x?的求根问题,可归结于直线y?x与曲线y???x?的交点的
横坐标。取
x*的近似值
x0。
牛顿迭代法的原理:
1. 基本思想:
将非线性方程 f?x??0逐步转化为某种线性方程来求解。 设已知f?x??0的一个近似根
x0,则函数f?x?在
x0附近可以用一阶泰勒是来近似。
f?x??f?x??f?x??x?x??0。若f?x??0,解得:x?x0000\\?0?x? f?x?f0\0得此根为原方程的近似根
x。然后按上式迭代计算,使形成一种新的迭代公式。
1xk?1?xk?2. 几何意义
?x? k=0,1,… 称为牛顿法或切线法。 f?x?fk\k??y?f?x?f?x??0??,曲线y???y?0f??x与x轴交点的横坐标。
?x?x0?线。x?f\?x0??ff0\0?x0??0,y?f?x??x?x??f?x??过点?x,f?x??的切
\00000x0??x?为切线y?f?x??x?x??f?x?与x轴交点的横坐标。
f?x?\000另外从非线性方程很容易能推广到非线性方程组。 下面就以非线性方程组为例。
三:实验问题及方法、步骤
1. 用一般迭代法求解非线性方程组
?x?0.7sinx?0.2cosy?0 ??y?0.7cosx?0.2siny?0编程如下:
function y=eps f1(x)
y(1)=0.7*sin(x(1))+0.2*cos(x(2)); y(2)=0.7*cos(x(1))-0.2*sin(x(2)); function y=epsiterate(x) y=epsf1(x); n=1;
while (norm(y-x)>=1.0e-6)&(n<=1000) x=y;
y=epsf1(x); n=n+1; end n y
epsiterate([0.5 0.5]) 所得结果为: n= 23
y=0.52652152000860 0.50792019082765
ans=
0.52652152000860 0.50792019082765 epsiterate(-150 30]) n= 23
y=0.52652121822306 0.50792032003913 ans=
0.52652121822306 0.50792032003913 2.用牛顿迭代法求解非线性方程组
?x?0.7sinx?0.2cosy?0 ??y?0.7cosx?0.2siny?0
编程如下:
Function y=fc(x)
y(1)=x(1)-0.7*sin(x(1))+0.2*cos(x(2)); y(2)= x(2)-0.7*cos(x(1))-0.2*sin(x(2)); y=[y(1) y(2)]; function y=df2(x)
y=[1-0.7*cos(x(1)) 0.2*sin(x(2)); 0.7*sin(x(1)) 1+0.2*cos(x(2))]; function y=newtoneqs(x0) x1=x0-fc(x0)*inv(df2(x0)); n=1;
while(norm(x1-x0)>=1.0e-6)&(n<=10000000000) x0=x1;
x1=x0-fc(x0)*inv(df2(x0)); n=n+1; end n x1
x0=[5 10]; 所得结果为: newtoneqs(x0) n= 18 x1=
0.52652329993137 0.50791951627242 x0=[0.5 0.5]; newtoneqs(x0) n= 12 x1=
0.52652301348344 0.50791962157383
四 计算结果分析
实验结果表明,上述迭代法解非线性方程组时,初始值的选取对算法的迭代步骤都有影响,有时甚至不会收敛,但相比较而言,牛顿迭代法的收敛性较好。
五思考与提高
一般迭代法的效果并不是总能令人满意的。有时迭代下去已经没有必要,因为结果显然会越来越大,不可能趋于某个极限。这种不收敛的迭代过程称作是发散的。一个发散的迭代过程,总是进行了千百次迭代,其结果也是毫无价值的。
在迭代法中以牛顿法最实用,它在单根附近具有2阶收敛,但应用时要选取较好的初始近似才能保证迭代收敛。
非线性方程组的解法和理论是当今数值分析研究的重要课题之一,新方法不断出现,它也是科学计算经常遇到的。
共分享92篇相关文档