数值计算方法上机实习题(共13页).docx





《数值计算方法上机实习题(共13页).docx》由会员分享,可在线阅读,更多相关《数值计算方法上机实习题(共13页).docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数值计算方法上机实习题1 设,(1) 由递推公式,从I0=0.1824, 出发,计算;(2) ,, 用,计算;(1)由I0计算I20递推子程序:function f=fib(n,i)if n=1 f=fib(n-1,i)*(-5)+(1/(n);elseif n=0 f=i;end计算和显示程序:I=0.1824;I1=0.1823;fib1=fib(20,I);fib2=fib(20,I1);fprintf(I_0=0.1824时,I_20=%dn,fib1);fprintf(I_0=0.1823时,I_20=%dn,fib2);计算结果显示:I_0=0.1824时
2、,I_20=7.e+09I_0=0.1823时,I_20=-2.e+09(2)由I20计算I0程序:n=21;i1=0;i2=10000;f1=i1;f2=i2;while n=0; f1=f1*(-1/5)+(1/(5*n); f2=f2*(-1/5)+(1/(5*n); n=n-1;endfprintf(I_20=0 时,I_0=%4.8fn,f1);fprintf(I_20=10000时,I_0=%4.8fn,f2);计算结果显示:I_20=0 时,I_0=0.I_20=10000时,I_0=0.(3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。答:第一个算法可得出e0=I0-
3、I0*en=In-In*=5ne0易知第一个算法每一步计算都把误差放大了5倍,n次计算后更是放大了5n倍,可靠性低。 第二个算法可得出en=In-In*e0=15nen可以看出第二个算法每一步计算就把误差缩小5倍,n次后缩小了5n倍,可靠性高。2 求方程的近似根,要求,并比较计算量。(1) 在0,1上用二分法;(1) 0,1上的二分法二分法子程序:function root,n=EFF3(f,x1,x2)%第二题(1)二分法f1=subs(f,symvar(f),x1);%函数在x=x1的值f2=subs(f,symvar(f),x2);%x=x2n=0;%步数er=5*10-4;%误差if(
4、f1=0) root=x1; return;elseif(f2=0) root=x2; return;elseif(f1*f20) disp(两端点函数值乘积大于0!); return;else while(abs(x1-x2)er)%循环 x3=(x1+x2)/2; f3=subs(f,symvar(f),x3); n=n+1; if(f3=0) root=x3; break; elseif(f1*f30) x1=x3; else x2=x3; end end root=(x1+x2)/2;%while循环少一步需加上end计算根与步数程序:fplot(x) exp(x)+10*x-2,0,
5、1);grid on;syms x;f=exp(x)+10*x-2;root,n=EFF3(f,0,1);fprintf(root=%6.8f ,n=%d n,root,n);计算结果显示:root=0. ,n=11 (2) 取初值,并用迭代;(2) 初值x0=0迭代迭代法子程序:function root,n=DDF(g,x0,err,max) (接下页)%root根,n+1步数,g函数,x0初值,err误差,max最大迭代次数X(1)=x0;for n=2:max X(n)=subs(g,symvar(g),X(n-1); c=abs(X(n)-X(n-1); root=X(n); if(
6、cerr) break; end if n=max disp(超出预设迭代次数); endendn=n-1;%步数减1计算根与步数程序:syms x;f=(2-exp(x)/10; (接下页)x0=0; err=5*10(-4);max=100;root,n=DDF(f,x0,err,max);fprintf(root=%6.8f ,n=%d n,root,n);计算结果显示:root=0. ,n=4(3) 加速迭代的结果;(3) 加速迭代加速迭代计算程序:x0=0;err=5*10(-4);max=100;syms x;g=x-(f(x)-x)2/(f(f(x)-2*f(x)-x);root
7、,n=DDF(g,x0,err,max);fprintf(root=%6.8f, n=%d,root,n);程序函数设置:function g=f(x)g=(2-exp(x)/10;计算结果显示:root=0., n=2(4) 取初值,并用牛顿迭代法;(4) 牛顿迭代法牛顿迭代法子程序:function root,n=NDDDFx(g,x0,err,max)%root根,n+1步数,g函数,x0初值,err误差,max最大迭代次数X(1)=x0;for n=2:max X(n)=subs(g,symvar(g),X(n-1); c=abs(X(n)-X(n-1); root=X(n); if(
8、cerr)|(root=0) break; end if n=max disp(超出预设迭代次数); (接下页) endendn=n-1;%步数减1牛顿迭代法计算程序:x0=0;err=5*10(-4);max=100;syms x;g=exp(x)+10*x-2;g=x-(g/diff(g);root,n=NDDDFx(g,x0,err,max);fprintf(root=%6.8f, n=%d n,root,n);计算结果显示:root=0., n=2(5) 分析绝对误差。答:可以看到,在同一精度下,二分法运算了11次,题设迭代算式下运算了4次,加速迭代下运算了2次,牛顿迭代下运算了2次。
9、因不动点迭代法和二分法都是线性收敛的,但二分法压缩系数比题设迭代方法大,收敛速度较慢。加速迭代速度是超线性收敛,牛顿法是二阶,收敛速度快。3钢水包使用次数多以后,钢包的容积增大,数据如下:x23456789y6.428.29.589.59.7109.939.991011121314151610.4910.5910.6010.810.610.910.76试从中找出使用次数和容积之间的关系,计算均方差。(用拟合)拟合曲线程序:x=2:16;y=6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.8 10.6 10.9 10.76;f,fv
10、al=fminsearch(delta1,0,0,0,optimset,x,y);%fminsearch为求解多元函数的最小值函数%f为多元函数初值x0附近的极小值点%fval为极小值k=2:100;y1=(f(1).*k+f(2)./(f(3)+k);figure1=figure(Color,1 1 1);gxt=plot(x,y,xr,k,y1,k-);legend(原数据,拟合曲线,Location,northwest); %y为数据点连接曲线,y1为拟合曲线title(函数y=(ax+b)/(x+c)的拟合,FontSize,14,FontWeight,Bold);xlabel(次数,
11、FontSize,14,FontWeight,Bold);ylabel(容积,FontSize,14,FontWeight,Bold);set(gxt,LineWidth,1.5);grid on;%计算均方差for i=1:15y2(i)=(f(1).*x(i)+f(2)./(f(3)+x(i); (接下页)endj=0;for i=1:15j=j+(y(i)-y2(i)2;endjfc=sqrt(j/15);fprintf(拟合出的方程为:(x+%4.4f)y=%4.4fx+%4.4f n均方差为:%4.8f n,f(3),f(1),f(2),jfc);构造函数子程序:function d
12、elta=delta1(f,x,y)a=f(1);b=f(2);c=f(3);delta=0;for k=1:15 delta=delta+(x(k)+c)*y(k)-(a*x(k)+b)2;end计算结果显示:拟合出的方程为:(x+-0.7110)y=11.2657x+-15.5024 均方差为:0.总结:指标选择,因题设方程为非线性的,要转化为线性方程故需提指标为:其驻点方程为:计算结果显示:4设,分析下列迭代法的收敛性,并求的近似解及相应的迭代次数。(1) JACOBI迭代;(1) Jacobi迭代Jacobi迭代子程序:function x,k=Jacobifl2(A,b,x0,eps
13、,max1)%jacobi按矩阵的分量算法%x0初值,eps误差,max1最大迭代次数n=length(x0);for k=1:max1 x(1)=(b(1)-A(1,2:n)*x0(2:n)/A(1,1); for i=2:n x(i)=(b(i)-A(i,1:i-1)*x0(1:i-1)-A(i,i+1:n)*x0(i+1:n)/A(i,i); end if norm(x-x0,2)eps return else x0=x; endendJacobi迭代计算程序:A=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1; -1 0 -1 4 -1 0; 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算方法 上机 实习 13

限制150内