太原理工大学计算方法上机题.docx
- 文档编号:26052236
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:23
- 大小:112.93KB
太原理工大学计算方法上机题.docx
《太原理工大学计算方法上机题.docx》由会员分享,可在线阅读,更多相关《太原理工大学计算方法上机题.docx(23页珍藏版)》请在冰豆网上搜索。
太原理工大学计算方法上机题
上机练习题
一、求非线性方程的根。
Xk屮-xk<10」.(牛顿切线
1、求方程f(X)=x-cosx=0在Xo=1.5附近的是根,要求精度满足
法)
>>NewtonIteration
x0=1.5
del=0.001
N=20
kx(k)
01.500000
10.784472
结果:
0.739519
2、求方程f(X)=X3-X2-0.8=0在X0=1附近的是根,求出具有四位有效数字的根近似值..(简单
迭代法)
Xn+=®(Xn)
1
®(x)=(x2+0.8)3
程序
clear
clc
phi=inline(
'(x^2+0.8
x0=input(
'x0=');
del=input(
'del=')
N=input(
'N=');n=1;
fprintf(
'\n%2d%f'
whilen 0,x0); );%迭代函数 x=phi(x0); ifabs(x-x0) 运行结果 x0=1 N=20 1 1.216440 2 1.316116 3 1.363004 4 1.385180 5 1.395688 6 1.400671 7 1.403034 8 1.404155 9 1.404687 10 1.404939 11 1.405059 12 1.405116 13 1.405143 14 1.405155 0 1.000000 近似解=1.405162 二、求解线性方程组 「221-3' 「X1〕 f '8■ -21-1-3 X2 1 8-138 X3 -1 L10443■ Lx仁 L 8. (直接法或迭代法) 1、 使用高斯-赛德尔迭代法求解代码 -1 L-2J n=input( 'n=' );%矩阵的阶数 A=input( 'A=' );%系数矩阵 b=input( 'b=' ); x=input( 'x=' );%自变量 epsilon=input( '\n精度='); N=input( '\n 最大迭代次数N=' ); clear cic fprintf('\n%d: ',0);fori=1: n %以下是迭代过程 fork=1: N %这是第k步迭代,迭代前的向量在x0[]中,迭代后的向量在x[]中;normal=0; fori=1: n t=x(i); x(i)=b(i); forj=1: nifj~=ix(i)=x(i)-A(i,j)*x(j);end end %求范数于迭代在同一个循环中; %这里用的是无穷范数 x(i)=x(i)/A(i,i); temp=abs(x(i)-t); iftemp>normalnormal=temp; end end fprintf( for %第i不迭代结束; '\n%d: ' i=1: n fprintf( end end fprintf( 结果 n=4 k); '%f',x(i)); ifnormal return end %输出迭代过程 '\n\n迭代%d次后仍未求得满足精度的解\n',N); A=[2,2,1,-3;-2,1,-1,-3;8,-1,3,8;10,4,4,3] b=[8,1,-1,8] x=[1,-1,2,-2] 精度=0.001 最大迭代次数N=10 0: 1.000000-1.0000002.000000-2.000000 故原方程的解为x= 「11 -1 2、 Ax=b. [17.031 -0.615 -2.991 1.007 -1.006 0 -1 34.211 -1 -2.1 6.3 -1.7 0 0.5 13 -0.5 1 -1.5 4.501 3.11 -3.907 -61.705 12.17 8.999 0.101 -0.812 -0.017 -0.91 4.918 0.1 L1 2 3 4.5 5 21.803 ■0.23 I r 11 -22.322 -2 54 精确解x= 3 240.236 -4 29.304 5 L—117.818. [ -6. E=1E-6(误差限)。 高斯-赛德尔 结果 n=6 A=[17.031,-0.615,-2.991,1.007,-1.006,0;-1,34.211,-1,-2.1,6.3,-1.7;0,0.5,13,-0.5,1,-1.5;4.501,3.11,-3.907,-6 1.705,12.17,8.99;0.101,-0.812,-0.017,-0.91,4.918,0.1;1,2,3,4.5,5,21.803]b=[0.23,-22.322,54,240.236,29.304,-117.818] x=[0,0,0,0,0,0] 精度=0.000001 最大迭代次数N=30 0: 0.0000000.0000000.0000000.0000000.0000000.000000 1: 0.013505 -0.652085 4.178926 -4.189778 5.089769 -6.222032 2: 1.272242 -1.996795 2.960053 -3.991219 5.000939 -6.009312 3: 0.992637 -2.001480 2.999248 -4.000860 4.999934 -5.999230 4: 0.999861 -2.000029 3.000062 -3.999041 5.000160 -6.000234 5: 0.999963 -1.999982 2.999997 -3.999129 5.000170 -6.000218 6: 0.999959 -1.999990 2.999995 -3.999125 5.000169 -6.000218 7: 0.999958 -1.999990 2.999995 -3.999126 5.000169 -6.000218>> 「17 1 4 3 -1 2 3 -7" f ■71■ 2 10 -1 7 -2 1 1 -4 43 -1 1 -8 2 -5 2 -1 1 -11 2 4 1 -11 1 3 4 -1 b= -37 1 3 1 7 -15 1 -2 4 -61 -2 1 7 -1 2 12 -1 8 52 3 4 5 1 2 8 -19 2 -73 L5 1 1 1 -1 1 -7 10- 1[ .21」 精确解x=(4.1992, 其中E=1E-4 高斯-赛德尔迭代 n=8 A=[17,1,4,3,-1,2,3,-7;2,10,-1,7,-2,1,1,-4;-1,1,-8,2,-5,2,-1,1;2,4,1,-11,1,3,4,-1;1,3,1,7,-15,1,-2,4;-2,1,7,-1,2, 12,-1,8;3,4,5,1,2,8,-19,2;5,1,1,1,-1,1,-7,10] b=[71,43,-11,-37,-61,52,-73,21] x=[0,0,0,0,0,0,0,0] 精度=0.0001 最大迭代次数N=30 0: 0.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000 1: 4.176471 3.464706 1.286029 5.499799 7.690348 3.167094 8.001875 5.040349 2: 3.442633 2.327529 -1.774322 8.689077 9.186612 2.247744 7.310071 5.265392 3: 4.077717 0.212368 -2.371181 7.594406 8.346243 2.719182 6.884098 4.899157 4: 4.355225 0.544336 -1.987484 7.731030 8.511038 2.706525 7.079433 4.829654 5: 4.169398 0.511124 -2.073517 7.766224 8.457273 2.803014 7.049963 4.895318 6: 4.203109 0.479954 -2.003211 7.772152 8.488612 2.719258 7.042482 4.880229 7: 4.194158 0.493981 -2.040334 7.750908 8.469822 2.749049 7.042112 4.884021 8: 4.202833 0.498221 -2.026488 7.761224 8.480032 2.738663 7.045662 4.881388 9: 4.197617 0.495100 -2.033397 7.758138 8.475292 2.744669 7.043954 4.883037 10: 4.199966 0.495381 -2.029543 7.759454 8.477443 2.741298 7.044448 11: 4.198909 0.495447 -2.031426 7.758645 8.476373 2.742914 7.044238 4.882592 12: 4.199429 0.495516 -2.030539 7.759078 8.476920 2.742155 7.044368 4.882414 13: 4.199165 0.495456 -2.030974 7.758875 8.476650 2.742527 7.044298 4.882503 14: 4.199296 0.495480 -2.030757 7.758971 8.476781 2.742342 7.044331 4.882458 15: 4.199232 0.495471 -2.030864 7.758923 8.476717 2.742433 7.044316 4.882480 16: 4.199264 0.495475 -2.030812 7.758947 8.476749 2.742388 7.044323 4.882469>> 精确解X=(5,—10,10,-5,1)t,E=1E-6. n=5 A=[1,1,1,1,1;1,2,3,4,5;1,3,6,10,15;1,4,10,20,35;1,5,15,35,70] b=[1,0,0,0,0] x=[5,5,5,5,5] 精度=0.000001 最大迭代次数N=30 三、用追赶法求解下列方程组(6位有效数字)。 1、 2、 「4 -1 0 0 -1 4 -1 0 0 -1 4 -1 0 0 -1 4 L0 0 0 -1 r-2 1 1 -2 1 0I「X1 -1 -2 X2 X3 X4 Lx5J 「100 0 「xj X2 X9 「27.0513- 8.20513 5.76923 14.8718 [53.7179 「-0.5] -1.5 -1.5 LX— =(6.5,12.5,17,20,21.5,21.5,20,17,12.5,6.5)T a=[0,-1,-1,-1,-1];c=[-1,-1,-1,-1];b=[4,4,4,4,4];d=[100,0,0,0,200] 1、 %复化的Simpson公式计算定积分 );%函数表达式可以更换; %积分区间左端点 b=input(n=input(h=(b-a)/(2*n); 'b='); 'n='); %积分区间右端点 %区间n等分; temp=0; x1=a;x2=a+h;x3=a+2*h;y1=f(x1);y2=f(x2);y3=f(x3); fori=0: n-1 temp=temp+h*(f(x1)+4*f(x2)+f(x3))/3; x1=x1+2*h; x2=x2+2*h; x3=x3+2*h; end x1=x1+2*h; x2=x2+2*h; 代码及结果 >>a=[2,0.5,0,0,0,0;0.5,2,0.5,0,0,0;0,0.5,2,0.6,0,0;0,0,0.6,2,0.7,0;0,0,0,0.7,2,0.8;0,0,0,0,0.8,2] 2.0000 0.5000 0.5000 2.0000 0.5000 0.5000 2.0000 0.6000 0.6000 2.0000 0.7000 0.7000 2.0000 0.8000 0.8000 2.0000 >>[v,d]=eig(a) 0.0791 -0.4130 0.5685 -0.5685 -0.4130 0.0791 -0.1858 0.6036 -0.3181 -0.3181 -0.6036 0.1858 0.3569 -0.4692 -0.3905 0.3905 -0.4692 0.3569 -0.5434 0.0685 0.4472 0.4472 -0.0685 0.5434 0.6053 0.3307 0.1559 -0.1559 0.3307 0.6053 -0.4125 -0.3620 -0.4459 -0.4459 0.3620 0.4125 0.8263 1.2692 1.7202 2.2798 2.7308 3.1737 0.8263对应的特征向量为 0.0791,-0.1858,0.3569,-0.5434,0.6053,-0.4125) 2、>>clear>>a=[-2,1,0,0,0;1,-2,1,0,0;0,1,-2,1,0;0,0,1,-2,1;0,0,0,1,-2] -2 -2 -2 -2 >>[v,d]=eig(a) -0.2887 -0.5000 0.5774 0.5000 -0.2887 0.5000 0.5000 -0.0000 0.5000 -0.5000 -0.5774 -0.0000 -0.5774 -0.0000 -0.5774 0.5000 -0.5000 -0.0000 -0.5000 -0.5000 -0.2887 0.5000 0.5774 -0.5000 -0.2887 -3.7321 -3.0000 -2.0000 -1.0000 -0.2679 1 即10等分区间[0,1],.求函数f(x)=—关于分割 1+25X2 点的插值多项式在x=0.9处的值,并与f(0.9)比较。 代码 clear cic x=0: 0.1: 1; y=1./(1+25*xA2); xx=0.9; yy=0; fori=1: 11 temp=y(i); forj=1: 11 ifj~=i temp=temp*(xx-x(j))/(x(i)-x(j)); end end yy=yy+temp;end fprintf( '\n2? ? 卩? a? ? e ? ? ux=%f卩? 卩? ? 卩? a%f,',xx,yy); fprintf( '\n? ? f(%f)=%f\n' xx,1/(1+25*xx*xx)); 结果 点的值为0.047059, 插值多项式在x=0.900000 而f(0.900000)=0.047059 七、设f(x)=eX,插值点为 X=1,1.5,2,2.5,3,用三次插值多项式求f(1.2)的近似值。 cic n=input(x=input(y=input(x0=input(N=zeros(n);fori=1: n 'n=');% 'x='); 'y='); 'x0=');%x0士? ? U? ? ? ? [x (1),x(n)]? ? ? ? £? %‘? "6? ? ? nDDna? a? ? ? ? o N(i,1)=y(i); end forj=2: n fori=j: n N(i,j)=(N(i,j-1)-N(i-1,j-1))/(x(i)-x(i-j+1)); end end yy=0;temp=1;fori=1: n yy=yy+N(i,i)*temp;temp=temp*(x0-x(i)); end fprintf('%f' yy) 结果 n=4x=[1,1.5,2,2.5]y=exp(x)x0=1.2 3.333865>> 八、用欧拉法、 预估-校正法和四阶龙格-库塔方法求解初值问题: Iy’=x+y ry在区间[0,1]上的数值解, ly(o)=o a=0 h=0.1, 并与精确解y=-X-1+2eX相比较(取5位有效数字)。 b=1 h=0.1 y0=0 精确解 Euler方法 预估校正方法 4阶Runge-Kutta方法 ye[k] |ye[k]-y| ym[k]|ym[m]-y| yr[k] |yr(k]-y| 0.0000000.0000000.000000 0.0000000.0000000.000000 1.1103420.0000001.110342 1.1053420.0051711.105171 1.2428060.0100001.232806 1.2217810.0214031.221403 1.3997180.0310001.368718 1.3504850.0498581.349859 1.5836490.0641001.519549 1.4927470.0918241.491825 1.7974430.1105101.686933 1.6499960.1487211.648722 2.0442380.1715611.872677 1.8238090.2221181.822120 2.3275050.2487172.078788 2.0159320.3137522.013754 2.6510820.3435892.307493 2.2282930.4255402.225542 3.0192060.4579482.561259 2.4630240.5596012.459605 3.4365640.5937422.842821 2.7224830.7182802.718284
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 太原 理工大学 计算方法 上机