版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数值计算方法上机实习作业上海电力学院数值计算方法上机实习(报告) 院系: 电力与自动化工程学院 专业年级: 电力系统及其自动化一班 学生姓名: 学 号: 指导教师: 年 月 日1 设, (1) 由递推公式,从的几个近似值出发,计算;(2) 粗糙估计,用,计算;(3) 分析结果的可靠性及产生此现象的原因。(1)因为由积分可以得到=1/6,所以取的两个近似值I1=0.1667和I2=0.167程序:I1=0.1667;I2=0.167;for n=1:20 I1=-5*I1+1/n; I2=-5*I2+1/n; fprintf(%.1d %.4f %.4fn,n,I1,I2)end 运行结果:1
2、0.1665 0.16502 -0.3325 -0.32503 1.9958 1.95834 -9.7292 -9.54175 48.8458 47.90836 -244.0625 -239.37507 1220.4554 1197.01798 -6102.1518 -5984.96439 30510.8700 29924.932510 -152554.2502 -149624.562711 762771.3419 748122.904412 -3813856.6262 -3740614.438713 19069283.2078 18703072.270314 -95346415.9675 -
3、93515361.280015 476732079.9042 467576806.466716 -2383660399.4583 -2337884032.270817 11918301997.3502 11689420161.412718 -59591509986.6956 -58447100807.008019 297957549933.5305 292235504035.092420 -1489787749667.6023 -1461177520175.4116(2) 因为 所以取程序:I=0.0095;for n=20:-1:1 I=-1/5*I+1/(5*n); fprintf(%.1
4、d %.4fn,n,I)end运行结果:20 0.008119 0.008918 0.009317 0.009916 0.010515 0.011214 0.012013 0.013012 0.014111 0.015410 0.01699 0.01888 0.02127 0.02436 0.02855 0.03434 0.04313 0.05802 0.08841 0.1823(3)首先分析两种递推式的误差;设第一递推式中开始时的误差为,递推过程的舍入误差不计。并记,则有。因为,所此递推式不可靠。而在第二种递推式中,误差在缩小,所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过
5、程中,应考虑误差是否得到控制,即算法是否数值稳定。2.求方程的近似根,要求误差不超过,并比较计算量。(1) 在0,1上用二分法;(2) 取初值,并用迭代;(3) 取初值,并用牛顿迭代法。x2345678910111213141516y6.428.29.589.59.7109.939.9910.4910.5910.6010.810.610.910.76先在命令窗口中输入命令: fplot(exp(x)+10*x-2,0 1);grid得到如下图形,可以看到曲线与X轴的交点,并且能够从图中大致估算到近似根的位置。(1)在0,1上用二分法; 编写Matlab函数M文件bisect如下:functio
6、n x=bisect(fname,a,b,e)if nargin0,error(函数在两端点值必须异号 );endx=(a+b)/2while(b-a)(2*e), fx=feval(fname,x); if fa*fx fname=inline(exp(x)+10*x-2); bisect(fname,0,1,5*10-4)x = 0.5000x = 0.2500x = 0.1250x = 0.0625x = 0.0938x = 0.0781x = 0.0859x = 0.0898x = 0.0918x = 0.0908x = 0.0903ans = 0.0903(2)取初值,并用迭代; 编
7、写Matlab函数M文件diedai如下:k=0;x=0;fprintf(n=%2d x%2d=%f n,k,k,x)for k=1:10 if abs(2-exp(x)/10)5*10-4 break else x=(2-exp(x)/10; fprintf(n=%2d x%2d=%f n,k,k,x) endend在命令窗口中编写内嵌函数表达式,并调用函数M文件diedai:n= 0 x 0=0.000000 n= 1 x 1=0.100000 n= 2 x 2=0.089483 n= 3 x 3=0.090639 n= 4 x 4=0.090513 n= 5 x 5=0.090526 n
8、= 6 x 6=0.090525 n= 7 x 7=0.090525 n= 8 x 8=0.090525 n= 9 x 9=0.090525 n=10 x10=0.090525ans = 0.0905(3)取初值,并用牛顿迭代法。 编写Matlab函数M文件newton如下:function x = newton(fname,dfname,x0,e,N)if nargin 5,N=500;endif nargin e&k fun=inline(exp(x)+10*x-2); dfun=inline(exp(x)+10); newton(fun,dfun,0,0.5e-4)n= 0 x 0= 0
9、.000000000n= 1 x 1= 0.090909091n= 2 x 2= 0.090525109n= 3 x 3= 0.090525101ans = 0.0905小结:我们可以看到,在运算要求到同一精度的情况下,采用(1)的二分法运算了11次,采用(2)的方法运算了6次,采用(3)的加速迭代法运算了3次,采用(4)的牛顿迭代法也需运算3次。3钢水包使用次数多以后,钢包的容积增大,数据如下:x23456789y6.428.29.589.59.7109.939.991011121314151610.4910.5910.6010.810.610.910.76试从中找出使用次数和容积之间的关系
10、,计算均方差。(注:增速减少,用何种模型)(1)由数据点分布图可知,拟合曲线y=f(x)随着x的增加而上升,但上升速度由快到慢,当x趋于无穷大时,y趋于某个常数,故曲线有一水平渐进线。根据上述特征很容易想到用Logistic人口模型来拟合该曲线。设y=f(x)具有指数形式(a0,b0)。对此式两边取对数,得。记A=lna,B=b,并引入新变量z=lny,t=1/x。引入新变量后的数据表如下x23456789t=1/x0.50000.33330.25000.20000.16670.14290.12500.1111z=lny1.85942.10412.25972.25132.27212.30262
11、.29562.3016X10111213141516t=1/x0.10000.09090.08330.07690.07140.06670.0625z=lny2.35042.35992.36092.37952.36092.38882.3758程序:t=0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.1000 0.0909 0.0833 0.0769 0.0714 0.0667 0.0625;z=1.8594 2.1041 2.2597 2.2513 2.2721 2.3026 2.2956 2.3016 2.3504 2.359
12、9 2.3609 2.3795 2.3609 2.3888 2.3758;polyfit(t,z,1)运行结果:ans = -1.1107 2.4578由此可得 A=2.4578,B=-1.1107,b=B=-1.1107方程即为 (2)程序:x=2 3 4 5 6 7 8 9 10 11 12 13 14 15 16;y=6.42 8.20 9.58 9.50 9.70 10.00 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76;sum=(11.6791*exp(-1.1107/x(1)-y(1)2;for i=1:14 sum=sum
13、+(11.6791*exp(-1.1107/x(i+1)-y(i+1)2 ; d=sum0.5; endd运行结果:d =0.9441所以均方差为0.9441结论与分析:本题也可用表达式来拟合,也可以得到较小的均方差,但与Logistic相比均方差稍大些。在编译程序中用到polyfit函数拟合,它其实就是利用了最小二乘法的原理。4设,分析下列迭代法的收敛性,并求的近似解及相应的迭代次数。(1) JACOBI迭代;(2) GAUSS-SEIDEL迭代;(3) SOR迭代()。因为系数矩阵是严格对角占优,所以用JACOBI迭代和GAUSS-SEIDEL迭代都是收敛的;又因系数矩阵对称正定,且(0,
14、2),所以SOR迭代也收敛。(1)程序:function tx=jacobi(A,b,imax,x0,tol) %jacobi迭代 %初始值x0,次数imax,精度toldel=10-10;tx=x0;n=length(x0);for i=1:n dg=A(i,i); if abs(dg)del disp(对角元太小); return endendfor k=1:imax %jacobi循环 for i=1:n sm=b(i); for j=1:n if j=i sm=sm-A(i,j)*x0(j); end end x(i)=sm/A(i,i); end tx=tx;x; if norm(x
15、-x0)tol return else x0=x; end endA=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 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0 5 -2 5 -2 6;x0=0 0 0 0 0 0;imax=100;tol=10-4;tx=jacobi(A,b,imax,x0,tol);for j=1:size(tx,1) fprintf(%d %f %f %f %f %f %fn,j,tx(j,1),tx(j,2),tx(j,3),tx(j,4),tx(j,5),tx(j,6)end
16、运行结果:1 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000002 0.000000 1.250000 -0.500000 1.250000 -0.500000 1.5000003 0.625000 1.000000 0.500000 1.000000 0.500000 1.2500004 0.500000 1.656250 0.312500 1.656250 0.312500 1.7500005 0.828125 1.531250 0.765625 1.531250 0.765625 1.6562506 0.765625 1.83984
17、4 0.679688 1.839844 0.679688 1.8828137 0.919922 1.781250 0.890625 1.781250 0.890625 1.8398448 0.890625 1.925293 0.850586 1.925293 0.850586 1.9453139 0.962646 1.897949 0.948975 1.897949 0.948975 1.92529310 0.948975 1.965149 0.930298 1.965149 0.930298 1.97448711 0.982574 1.952393 0.976196 1.952393 0.9
18、76196 1.96514912 0.976196 1.983742 0.967484 1.983742 0.967484 1.98809813 0.991871 1.977791 0.988895 1.977791 0.988895 1.98374214 0.988895 1.992415 0.984831 1.992415 0.984831 1.99444815 0.996208 1.989639 0.994820 1.989639 0.994820 1.99241516 0.994820 1.996462 0.992923 1.996462 0.992923 1.99741017 0.9
19、98231 1.995167 0.997583 1.995167 0.997583 1.99646218 0.997583 1.998349 0.996699 1.998349 0.996699 1.99879219 0.999175 1.997745 0.998873 1.997745 0.998873 1.99834920 0.998873 1.999230 0.998460 1.999230 0.998460 1.99943621 0.999615 1.998948 0.999474 1.998948 0.999474 1.99923022 0.999474 1.999641 0.999
20、282 1.999641 0.999282 1.99973723 0.999820 1.999509 0.999755 1.999509 0.999755 1.99964124 0.999755 1.999832 0.999665 1.999832 0.999665 1.99987725 0.999916 1.999771 0.999886 1.999771 0.999886 1.99983226 0.999886 1.999922 0.999844 1.999922 0.999844 1.99994327 0.999961 1.999893 0.999947 1.999893 0.99994
21、7 1.99992228 0.999947 1.999964 0.999927 1.999964 0.999927 1.99997329 0.999982 1.999950 0.999975 1.999950 0.999975 1.999964(2)程序:function tx=gseidel(A,b,imax,x0,tol) % gseidel迭代 %初始值x0,次数imax,精度toldel=10-10;tx=x0;n=length(x0);for i=1:n dg=A(i,i); if abs(dg)del disp(对角元太小); return endend for k=1:imax
22、%G-S循环 x=x0; for i=1:n sm=b(i); for j=1:n if j=i sm=sm-A(i,j)*x(j); end end x(i)=sm/A(i,i); end tx=tx;x; if norm(x-x0)tol return else x0=x; endendA=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 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0 5 -2 5 -2 6;x0=0 0 0 0 0 0;imax=100;tol=10-4;tx=gseidel(A,b,
23、imax,x0,tol);for j=1:size(tx,1)fprintf(%d %f %f %f %f %f %fn,j,tx(j,1),tx(j,2),tx(j,3),tx(j,4),tx(j,5),tx(j,6)end运行结果:1 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000002 0.000000 1.250000 -0.187500 1.203125 0.113281 1.4814453 0.613281 1.384766 0.517334 1.560974 0.606796 1.7810334 0.736435 1.715
24、141 0.764287 1.776880 0.818263 1.8956385 0.873005 1.863889 0.884102 1.893843 0.913342 1.9493616 0.939433 1.934219 0.944356 1.949283 0.958216 1.9756437 0.970875 1.968362 0.973322 1.975603 0.979902 1.9883068 0.985991 1.984804 0.987178 1.988268 0.990344 1.9943819 0.993268 1.992698 0.993837 1.994362 0.9
25、95360 1.99729910 0.996765 1.996490 0.997038 1.997291 0.997770 1.99870211 0.998445 1.998313 0.998577 1.998698 0.998928 1.99937612 0.999253 1.999189 0.999316 1.999374 0.999485 1.99970013 0.999641 1.999610 0.999671 1.999699 0.999752 1.99985614 0.999827 1.999813 0.999842 1.999855 0.999881 1.99993115 0.9
26、99917 1.999910 0.999924 1.999931 0.999943 1.99996716 0.999960 1.999957 0.999964 1.999967 0.999973 1.999984(3)W=1.334程序:function tx=sor(A,b,imax,x0,tol,w) %sor迭代 %初始值x0,次数imax,精度tol,松弛因子wdel=10-10;tx=x0;n=length(x0);for i=1:n dg=A(i,i); if abs(dg)del disp(对角元太小); return endend for k=1:imax % SOR循环 x=
27、x0; for i=1:n sm=b(i); for j=1:n if j=i sm=sm-A(i,j)*x(j); end end x(i)=sm/A(i,i); x(i)=w*x(i)+(1-w)*x0(i); end tx=tx;x; if norm(x-x0)tol return else x0=x; end endA=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 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0 5 -2 5 -2 6;x0=0 0 0 0 0 0;imax=100;tol=10-
28、4;w=1.334;tx=sor(A,b,imax,x0,tol,w);for j=1:size(tx,1)fprintf(%d %f %f %f %f %f %fn,j,tx(j,1),tx(j,2),tx(j,3),tx(j,4),tx(j,5),tx(j,6)end运行结果:1 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000002 0.000000 1.667500 -0.110889 1.630519 0.432889 2.1083873 1.099889 1.584755 1.145478 2.016105 1.092449 2
29、.0431474 0.833524 2.162521 1.025372 1.978394 1.030507 2.0042245 1.102598 1.998570 0.985252 2.046688 1.006313 1.9957766 0.980826 1.991270 1.016176 1.985512 0.988740 2.0030507 0.998661 2.004109 0.992153 1.998020 1.005488 1.9981948 1.001157 1.998227 1.000767 2.003133 0.998018 2.0001989 1.000067 2.00021
30、0 1.000925 1.998623 1.000339 2.00035510 0.999588 2.000214 0.999422 2.000243 1.000158 1.99974111 1.000290 1.999885 1.000149 2.000118 0.999862 2.00009012 0.999904 2.000010 1.000023 1.999890 1.000043 1.99999213 0.999999 2.000018 0.999959 2.000037 1.000001 1.99999014 1.000019 1.999987 1.000018 2.000000
31、0.999992 2.000007W=0.95程序:function tx=sor(A,b,imax,x0,tol,w) %sor迭代 %初始值x0,次数imax,精度tol,松弛因子wdel=10-10;tx=x0;n=length(x0);for i=1:n dg=A(i,i); if abs(dg)del disp(对角元太小); return endend for k=1:imax % SOR循环 x=x0; for i=1:n sm=b(i); for j=1:n if j=i sm=sm-A(i,j)*x(j); end end x(i)=sm/A(i,i); x(i)=w*x(i
32、)+(1-w)*x0(i); end tx=tx;x; if norm(x-x0)tol return else x0=x; end endA=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 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0 5 -2 5 -2 6;x0=0 0 0 0 0 0;imax=1000;tol=10-4;w=0.95;tx=sor(A,b,imax,x0,tol,w);for j=1:size(tx,1) fprintf(%d %f %f %f %f %f %fn,j,tx(j,1
33、),tx(j,2),tx(j,3),tx(j,4),tx(j,5),tx(j,6)end运行结果:1 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000002 0.000000 1.187500 -0.192969 1.141670 0.078178 1.3977373 0.553178 1.350992 0.439321 1.498869 0.537714 1.7269334 0.704501 1.654414 0.706017 1.725149 0.764678 1.8606375 0.837871 1.818505 0.843820 1
34、.854770 0.877538 1.9268546 0.914297 1.904393 0.917620 1.923734 0.935685 1.9615037 0.954895 1.949667 0.956671 1.959909 0.966165 1.9797498 0.976269 1.973521 0.977213 1.978912 0.982201 1.9893489 0.987516 1.986072 0.988015 1.988907 0.990638 1.99439710 0.993433 1.992674 0.993696 1.994165 0.995076 1.99705
35、311 0.996546 1.996146 0.996684 1.996931 0.997410 1.99845012 0.998183 1.997973 0.998256 1.998386 0.998637 1.99918513 0.999044 1.998934 0.999082 1.999151 0.999283 1.99957114 0.999497 1.999439 0.999517 1.999553 0.999623 1.99977415 0.999736 1.999705 0.999746 1.999765 0.999802 1.99988116 0.999861 1.99984
36、5 0.999866 1.999876 0.999896 1.99993817 0.999927 1.999918 0.999930 1.999935 0.999945 1.99996718 0.999962 1.999957 0.999963 1.999966 0.999971 1.999983 结论分析:比较三种迭代方法,jaccobi迭代法迭代次数是29次,gauss-seidel迭代法迭代次数是16,速度要比jaccobi迭代法快。而在sor迭代中选取不同的松弛因子w迭代的次数各不相同且可能会相差很大,在w=1.95时迭代次数有242次。所以改变松弛因子w的值,不仅会影响迭代过程的收敛速度,也会影响其收敛性。5用逆幂迭代法求最接近于11的特征值和特征向量,准确到。程序:A=6 3 1;3 2 1;1 1 1;x,lamda=eig(A), v=1 1 1;q=11,B=inv(A-q*eye(3);for k=1:20 z=B*v; m=max1(z); v=z/m; fprintf(%6d %f %f %f %fn,k,v(1),v(2),v(3),m-1+q), if abs(m-1+q-lamda(3,3)0.001 break endend运行结果:x = -0.3065 -0.4082 -0.8599 0.7812 0.4082 -0.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026个人与公司劳动合同模板及签订流程
- 2026广东建设职业技术学院第二批招聘6人备考题库附答案详解(研优卷)
- 2026浙江台州市临海市市属国有企业招聘49人备考题库含答案详解(培优)
- 2026甘肃平凉市崆峒区第三批城镇公益性岗位工作人员招聘备考题库及答案详解(历年真题)
- 2026泰信基金管理有限公司社会招聘备考题库含答案详解(培优)
- 2026中煤华利新疆炭素科技有限公司招聘13人备考题库及答案详解(典优)
- 2026广东惠州市惠城区国有资产监督管理局所属一级企业副总经理招聘2人备考题库含答案详解(巩固)
- 2026宁波农商发展集团有限公司招聘1人备考题库附答案详解(达标题)
- 2026财达证券股份有限公司上海分公司总经理招聘1人备考题库附答案详解(研优卷)
- 2026北京航空航天大学人工智能学院聘用编软件开发工程师、F岗招聘2人备考题库带答案详解(完整版)
- UNESCO -全球教育监测报告 引领教育技术发展 东亚篇 2025
- 第四十九章骨肿瘤病人的护理
- 2024广西金融职业技术学院辅导员招聘笔试真题
- 2025年湖北省中考生物、地理合卷试卷真题(含答案解析)
- 2025年广西专业技术人员继续教育公需科目(二)答案
- 网络与信息安全管理员(网络安全管理员)三级理论提纲练习试题附答案
- 2025质量工程师笔试题库及答案
- 2025年江苏南通市通州区广播电视广告有限公司招聘笔试参考题库含答案解析
- 2025年中国干细胞医疗行业发展前景预测与投资战略规划分析报告
- 2025年河南机电职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 冠脉介入并发症曾繁芳
评论
0/150
提交评论