数值分析上机实习题答案.docx
- 文档编号:511041
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:15
- 大小:402.70KB
数值分析上机实习题答案.docx
《数值分析上机实习题答案.docx》由会员分享,可在线阅读,更多相关《数值分析上机实习题答案.docx(15页珍藏版)》请在冰豆网上搜索。
数值分析上机实习题答案
[数值分析]
2017-2018第二学期上机实习题
1:
编程计算
,其中c=4.494210307,给出并观察计算结果,若有问题,分析之。
解:
matlab编程如下:
图一:
编程图二:
运行结果
Matlab中,formatlongg对双精度,显示15位定点或浮点格式,由上图可知,当输入较小的n值(n分别取10,100,1000,100000,100000000)的时候,结果后面的指数中总是含有e-308,这和题目中的C值很相似,我认为是由于分母中的C值相对于n值过大,出现了“大数吃小数”的现象,这是不符合算法原则的。
2:
利用牛顿法求方程
于区间
的根,考虑不同初值下牛顿法的收敛情况。
解:
牛顿法公式为:
利用matlab编程
当输入初值=3的时候并不能收敛。
输入2.8依旧不能收敛。
考虑利用plot函数绘制函数f=x-lnx-2的图像,发现其在区间[2,4]内并无根。
3:
给出
在xk=0+0.25k处的值yk,k=0,1,2,3,4.请给出由节点xk确定的三次样条插值函数S(x),使其满足条件:
S/(0)=0,S/
(1)=-0.074,分析逼近效果如何?
解:
根据李庆扬《数值分析》第五版Page43的公式可以计算得到三次样条插值。
根据6.11和6.12式解得系数。
d0
58.5366
d1
17.15728
d2
8.67705
d3
2.0934
d4
0.905136
列方程A*M=B;
A=
B=
解得M为
M=
由此和6.8式可得其三次样条函数如下:
得到最终的插值结果如下:
总的来说,利用三次样条插值的精度还是比较高的。
4:
给出一个通用多项式拟合程序,
输入部分:
数据组个数为n,拟合的误差限
输出部分:
多项式次数、系数向量、拟合的实际误差。
function[Aceff]=zxec()
x=input('请输入变量x:
');
y=input('请输入变量y:
');
e=input('请输入拟合限差:
');
fori=1:
10
A=polyfit(x,y,i);%A为拟合多项式系数向量
Y=polyval(A,x);%Y为拟合多项式
ifsum((Y-y).^2) c=i;%c为拟合多项式次数 eff=sum((Y-y).^2);%eff为拟合实际误差 disp(c); disp(A); disp(eff); break; end end 解: 程序代码: 例: 已知一组实验数据如下,求其多项式拟合 x 1 2 3 4 5 6 7 8 9 10 y 1.3 3.5 4.2 5.0 7.0 8.8 10.1 12.5 13.0 15.6 >>[A,c,eff]=zxec 请输入变量x: [12345678910] 请输入变量y: [1.33.54.25.07.08.810.112.513.015.6] 请输入拟合限差: 2.50 1 1.5382-0.3600 2.3447 A= 1.5382-0.3600 c= 1 eff= 2.3447 >> 实例拟合结果如下图所示: 由以上拟合结果可知,在给定的限差的情况下,拟合结果为一次,得到的实际误差达到2.3447,可见拟合效果并不是很理想。 如果继续缩小误差限差值,那么拟合次数将会增加,拟合的结果也将会更加趋近于真实结果。 5: 已知 ,利用复化梯形公式、复化Simpson公式和Romberg算法求 的近似值;并观察实际计算结果,比较它们的收敛速度。 解: ①复化梯形公式计算结果 分析: 从结果中不断改进等分点的个数,可以看出复化梯形公式的结果需要等分至少20点才能开始收敛,若想收敛到精确值,则需要增加区间等分点数。 function[Y]=fhdx() n=input('请输入要等分x区间的个数: '); h=1/n; s=0; fork=1: n-1 x=k*h; y=4/(1+x^2); s=2*y+s; Y=h/2*(6+s); holdon; plot(x,Y,'r*'); gridon; end 程序代码: ②复化Simpson公式计算结果 function[Y]=fhsimpson() n=input('请输入将x区间等分的个数: '); h=1/n; s1=0; s2=0; fork=1: 2*n-1 x=k*h/2; y=4/(1+x^2); ifmod(k,2)==0 s1=s1+2*y; else s2=s2+4*y; end Y=h/6*(6+s1+s2); holdon; plot(x,Y,'r*'); end 分析: 从结果图中可以看出对于复化Simpson公式,只需要对区间等分两次(即n=2)就可以得到非常理想的结果,说明复化Simpson公式的收敛速度非常快。 程序代码: ③Romberg算法 分析: Romberg算法根据给定的限差可以直接得出收敛值,收敛速度快。 functions=romberg1(a,b,eps) ifnargin==2 eps=1.0^-6; elseifnargin<2 error return end t1=10000; t2=-10000; n=2; t(1,1)=0.5*(b-a)*(rombergff(a)+rombergff(b)); whileabs(t2-t1)>=eps area=0.0; h=(b-a)/2^(n-1); fori=1: (2^(n-1)) area=area+0.5*h*(rombergff(a+h*(i-1))+rombergff(h*i+a)); end t(n,1)=area; forj=2: n fori=1: (n-j+1) t(i,j)=(4^(j-1)*t(i+1,j-1)-t(i,j-1))/(4^(j-1)-1); end end t1=t(1,n); t2=t(1,n-1); n=n+1; end s=t1; return functiony=rombergff(x) y=4/(1+x^2); 程序代码: 6: 用Runge-Kutta4阶算法对初值问题y/=-20*y,y(0)=1按不同步长求解,用于观察稳定区间的作用。 注: 此方程的精确解为: y=e-20x 解: 结果分析: 便于比较的直观性,将龙格库塔值求出并与精确值一同绘制出来,在步长h分别取0.1,0.025,0.01时,显示如下: h=0.1 h=0.025 h=0.01 结果图中,虚线为龙格库塔值所成,小圆圈为真实值。 从以上三幅图中可以清晰地看到,当步长取大了,误差较大,取小了,误差较少。 龙格库塔法尽管可以达到较高的精度,但由于计算较为复杂,如在4阶算法中,每计算一步就要调用4次f(x,y),固运算量大。 程序代码: clear; h=0.01;%步长 x0=0; x1=1;%x的范围 x=x0: h: x1;y=zeros(1,length(x)); y (1)=1;%y(0);Fxy=@(t,y)(-20*y); fori=1: (length(x)-1) k1=Fxy(x(i),y(i)); k2=Fxy(x(i)+0.5*h,y(i)+0.5*k1*h); k3=Fxy((x(i)+0.5*h),(y(i)+0.5*k2*h)); k4=Fxy((x(i)+h),y(i)+k3*h); y(i+1)=y(i)+(1/6)*(k1+2*k2+2*k3+k4)*h; end%龙格库塔 fori=1: length(x) g=x0+i*h; yr(i)=exp(-20*g);%精确解 end plot(x,y,': ',x,yr,'o')%作出精确值与龙格库塔值的图像
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 上机 实习 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)