数值分析上机作业Word格式文档下载.docx
- 文档编号:13084882
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:35
- 大小:340.21KB
数值分析上机作业Word格式文档下载.docx
《数值分析上机作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数值分析上机作业Word格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。
g1=exp(g0)-4
usetheinitialnumberas1
Thecode:
g0=1;
g1=exp(g0)-4;
whileabs(g1-g0)>
0.00001
g0=g1;
end
g1
theresults:
>
w1_fixed_point
g1=
2
-3.9813
结果分析
通过控制迭代式的形式可以决定收敛到正跟或负根。
Fixedpointconvergetopositiveroot
Wecanchangeanewfixedpointformtoproduceapositiveroot
g1=log(4+g0);
useinitialnumberas-3.9
g0=-3.9;
g1=log(g0+4);
w1_fixed_point_positive
1.7490
Newton’smethodtofindnegativeroots
3
WederiveNewton’smethod,basedontaylorpolynomials.newton’s
methodisakindoffixedpointmethodwhichhastwoorderconvergence.
g1=g0-(g0-exp(g0)+4)/(1-exp(g0))
useinitialnuberas-3
g0=-3;
g1=g0-(g0-exp(g0)+4)/(1-exp(g0));
g1=g0-(g0-exp(g0)+4)/(1-exp(g0))
w1_newton
-3.981342639636226
-3.981339370911418
结果分析:
收敛速度明显快于不动点(结果太长没打出)。
Newton’smethodtofindpositiveroots
Useinitialnumberas1
4
1.749031386012702
Multipleroots
通过确定初始值得正负来控制收敛到哪个根。
2.p100#9题
题目:
Useeachofthefollowingmethodstofindasolutionin[0.1,1]accurateto
within10^-4for
600*x^4-550*x^3+200*x^2-20*x-1=0
a.bisectionb.newton’smethod
c.secantmethodd.methodoffalseposition
e.mullers’smethed
5
a.Bisection
原理:
Themethodcallsforarepeatedhalvingofsubintervalsof[a,b]and,artificialeachstep,locating
thehalfcontainingtherootofequation.
代码:
%bisection
functionanser=Bisection(f,a,b)
tol=1.0e-3;
fa=subs(f,a);
fmeans=subs(f,(a+b)/2);
if(fa*fmeans>
0)
t=(a+b)/2;
anser=Bisection(f,t,b);
else
if(fa*fmeans==0)
anser=(a+b)/2;
if(abs(b-a)<
=tol)
anser=(b+3*a)/4;
6
s=(a+b)/2;
anser=Bisection(f,a,s);
运行结果:
Bisection('
600*x^4-550*x^3+200*x^2-20*x-1'
-5,5)
ans=
-0.035858154296875
b.newton’smethod
原理:
X=(600*x^4-550*x^3+200*x^2-1)/20
g1=(600*g0^4-550*g0^3+200*g0^2-1)/20;
7
结果:
c.secant
Useinterval[-5,5]
functionanser=Secant(f,a,b)
tol=1.0e-5;
error=0.1;
fa=subs(sym(f),a);
fb=subs(sym(f),b);
anser=a-(b-a)*fa/(fb-fa);
while(error>
tol)
x1=anser;
fx=subs(sym(f),x1);
8
s=fx*fa;
if(s>
anser=b-(x1-b)*fb/(fx-fb);
anser=a-(x1-a)*fa/(fx-fa);
error=abs(anser-x1);
Secant('
0.277662174145539
d.methodoffalseposition
%methodofFalsePosition
functionanser=Position(f,a,b)
f1=subs(sym(f),findsym(sym(f)),a);
f2=subs(sym(f),findsym(sym(f)),b);
9
if(f1==0)
anser=a;
if(f2==0)
anser=b;
tol1=1;
r1=a;
r2=b;
fv=subs(sym(f),findsym(sym(f)),a);
while(tol1>
f2=subs(sym(f),findsym(sym(f)),r2);
anser=r2-(r2-r1)*f2/(f2-fv);
fr=subs(sym(f),findsym(sym(f)),anser);
if(f2*fr<
tol1=abs(anser-r2);
r1=r2;
r2=anser;
fv=subs(sym(f),findsym(sym(f)),r1);
10
fv=0.5*subs(sym(f),findsym(sym(f)),r1);
Position('
牛顿法的收敛速度一般较快。
3.
应用newton法求f(x)的零点,e=10^-6
f(x)=x-sin(x)
再用求重根的方法求零点
1.
Newton'smethod
Theiterativeequation
g1=g0-(g0-sin(g0))/(1-cos(g0));
use1asinitialnumber
11
clear;
0.000001
g1=g0-(g0-sin(g0))/(1-cos(g0))
w3_newton
1.4990e-006
牛顿法在重根是为一介收敛,失去速度优势。
2.Mutiplerootsmethods1
becausegisazerooff(x)ofmultiplicity3
sotheiterationequationis
12
g1=g0-3*(g0-sin(g0))/(1-cos(g0))
w3_mutiple_root
-0.0095
2.8751e-008
6.3996e-009
3.Mutiplerootsmethods2
g(x)=x–u(x)/u’(x)
=x–f(x)*f’(x)/f’(x)^2–f(x)*f’’(x)
13
functionanser=multiple(f,x0)
df=diff(sym(f));
df2=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 上机 作业