資源描述:
《數(shù)值計算方法上機實習題》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、........數(shù)值計算方法上機實習題1.設,(1)由遞推公式,從I0=0.1824,出發(fā),計算;(2),,用,計算;(1)由I0計算I20遞推子程序:functionf=fib(n,i)ifn>=1f=fib(n-1,i)*(-5)+(1/(n));elseifn==0f=i;end計算和顯示程序:I=0.1824;I1=0.1823;fib1=fib(20,I);fib2=fib(20,I1);fprintf('I_0=0.1824時,I_20=%d',fib1);fprintf('I_0=0.1823時,I_20=%d',fib2);計算結(jié)果顯示:I_0=0.1824時
2、,I_20=7.480927e+09I_0=0.1823時,I_20=-2.055816e+09(2)由I20計算I0程序:n=21;i1=0;i2=10000;f1=i1;f2=i2;whilen~=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.8f',f1);fprintf('I_20=10000時,I_0=%4.8f',f2);計算結(jié)果顯示:I_20=0時,I_0=0.18232156I_20=10000時,I_0=0.18232156(3)分析結(jié)果的可靠
3、性及產(chǎn)生此現(xiàn)象的原因(重點分析原因)。答:第一個算法可得出e0=I0-I0*en=In-In*=5ne0易知第一個算法每一步計算都把誤差放大了5倍,n次計算后更是放大了5n倍,可靠性低。第二個算法可得出.專業(yè)學習資料.........en=In-In*e0=15nen可以看出第二個算法每一步計算就把誤差縮小5倍,n次后縮小了5n倍,可靠性高。1.求方程的近似根,要求,并比較計算量。(1)在[0,1]上用二分法;(1)[0,1]上的二分法二分法子程序:function[root,n]=EFF3(f,x1,x2)%第二題(1)二分法f1=subs(f,symvar(f),x1);%函數(shù)在
4、x=x1的值f2=subs(f,symvar(f),x2);%x=x2n=0;%步數(shù)er=5*10^-4;%誤差if(f1==0)root=x1;return;elseif(f2==0)root=x2;return;elseif(f1*f2>0)disp('兩端點函數(shù)值乘積大于0!');return;elsewhile(abs(x1-x2)>er)%循環(huán)x3=(x1+x2)/2;f3=subs(f,symvar(f),x3);n=n+1;計算根與步數(shù)程序:fplot(@(x)exp(x)+10*x-2,[0,1]);gridon;symsx;f=exp(x)+10*x-2;[root
5、,n]=EFF3(f,0,1);fprintf('root=%6.8f,n=%d',root,n);計算結(jié)果顯示:root=0.09057617,n=11.專業(yè)學習資料.........if(f3==0)root=x3;break;elseif(f1*f3>0)x1=x3;elsex2=x3;endendroot=(x1+x2)/2;%while循環(huán)少一步需加上end(1)取初值,并用迭代;(1)初值x0=0迭代迭代法子程序:function[root,n]=DDF(g,x0,err,max)(接下頁)%root根,n+1步數(shù),g函數(shù),x0初值,err誤差,max最大迭代次數(shù)X(
6、1)=x0;forn=2:maxX(n)=subs(g,symvar(g),X(n-1));c=abs(X(n)-X(n-1));root=X(n);if(c7、結(jié)果;(2)加速迭代加速迭代計算程序:程序函數(shù)設置:functiong=f(x)g=(2-exp(x))/10;.專業(yè)學習資料.........x0=0;err=5*10^(-4);max=100;symsx;g=x-(f(x)-x)^2/(f(f(x))-2*f(x)-x);[root,n]=DDF(g,x0,err,max);fprintf('root=%6.8f,n=%d',root,n);計算結(jié)果顯示:root=0.09048375,n=2(1)取