当前位置:文档之家› 数值计算方法实验报告

数值计算方法实验报告

差值法实验日志实验题目:插值法实验目的:1.掌握拉格朗日插值、牛顿插值、分段低次插值和样条插值的方法。

2.对四种插值结果进行初步分析。

实验要求:(1)写出算法设计思想;(2)程序清单;(3)运行的结果;(4)所得图形;(5)四种插值的比较;(6)对运行情况所作的分析以及本次调试程序所取的经验。

如果程序未通过,应分析其原因。

实验主要步骤:1.已知函数)f满足:(xx0.0 0.1 0.195 0.3 0.4010.5f(0.39894 0.39695 0.39142 0.38138 0.36812x)0.35206(1)用分段线性插值;打开MATLAB,按以下程序输入:x0=-5:5;y0=1./(1+x0.^2);x=-5:0.1:5;y=1./(1+x.^2);y1=lagr(x0,y0,x);y2=interp1(x0,y0,x);y3=spline(x0,y0,x);for k=1:11xx(k)=x(46+5*k);yy(k)=y(46+5*k);yy1(k)=y1(46+5*k);yy2(k)=y2(46+5*k);yy3(k)=y3(46+5*k); end[xx;yy;yy2;yy3]'z=0*x;plot(x,z,x,y,'k--',x,y2,'r') plot(x,z,x,y,'k--',x,y1,'r') pauseplot(x,z,x,y,'k--',x,y3,'r') 回车得以下图形:(2) 拉格朗日插值。

创建M 文件,建立lagr 函数:function y=lagr1(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end新建一个M 文件,输入:x0=[0.0 0.1 0.195 0.3 0.401 0.5];y0=[0.39894 0.39695 0.39142 0.38138 0.36812 0.35206];x=0.0:0.01:0.5;y1=lagr1(x0,y0,x);00.10.20.30.40.50.60.70.80.91[x',y1'];plot(x0,y0,'k+',x,y1,'r')得以下图形:矩阵的特征值和特征向量实验日志实验题目:矩阵的特征值和特征向量实验目的:1..掌握乘幂法、反幂法、雅可比方法和QR方法。

2.分析、比较四中求解矩阵特征值和特征向量的方法实验要求:(1)写出算法设计思想;(2)程序清单;(3)运行的结果;(4)所得图形;(5)四种插值的比较;(6)对运行情况所作的分析以及本次调试程序所取的经验。

如果程序未通过,应分析其原因。

实验主要步骤:1.用乘幂法求矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=131********A 的按模最大的特征值及相应的特征向量,取T X )1,5.0,5.0(0=,要求至少迭代6次。

用MATLAB 实现,程序如下:A=[4,-1,1;16,-2,-2;16,-3,-1];X=[0.5,0.5,1]';for k=1:10;Y=A*X;m=max(abs(Y));dc=abs(lambda-m);Y=(1/m)*Y;dv=norm(X-Y);err(k)=max(dc,dv)X=Y;lambda=m;endmax_lamdba=m ;V=X;plot(err);结果:err =5.5000err =5.5000 1.9545err =5.5000 1.9545 1.1469err =5.5000 1.9545 1.1469 1.2442err =5.5000 1.9545 1.1469 1.2442 1.2033err =5.5000 1.9545 1.1469 1.2442 1.2033 1.2091err =5.5000 1.9545 1.1469 1.2442 1.2033 1.2091 1.2066 err =Columns 1 through 75.5000 1.9545 1.1469 1.2442 1.2033 1.2091 1.2066 Column 81.2069err =Columns 1 through 75.5000 1.9545 1.1469 1.2442 1.2033 1.2091 1.2066 Columns 8 through 91.2069 1.2068err =Columns 1 through 75.5000 1.9545 1.1469 1.2442 1.2033 1.20911.2066Columns 8 through 101.2069 1.2068 1.2068max_lamdba = 3.4419V =0.54051.00001.0000图形:2.用反幂法计算矩阵 1234567891011.522.533.544.555.5⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=410131012A 相应于特征值1.2679的特征向量。

用MATLAB 实现,程序如下:y=[1,1,1]';z=y;d=0;A=[2,1,0;1,3,1;0,1,4];for k=1:100;AA=A-1.2679*eye(3);y=AA\z;[c,i]=max(abs(y));if y(i)<0,c=-c;endz=y/c;if abs(c-d)<0.0001,break;endd=c;endd=1.2679+1/c;d =6.7764e+003;d =2.0327e+004;d =2.0328e+004;d =1.2679;曲线拟合的最小二乘法 实验日志实验题目:插曲线拟合的最小二乘法实验目的:1.掌握拉格朗日插值、牛顿插值、分段低次插值和样条插值的方法。

2.对四种插值结果进行初步分析。

实验要求:(1)写出算法设计思想;(2)程序清单;(3)运行的结果;(4)所得图形;(5)对运行情况所作的分析以及本次调试程序所取的经验。

如果程序未通过,应分析其原因。

实验主要步骤:1.试用最小二乘法求形如2=的多项式,使以下列数据拟合y+abxx 19 25 31 38 44y 19.0 32.4 49.1 73.3 97.5 用MATLAB实现,程序如下:x=[19,25,31,38,44];y=[19.0,32.4,49.1,73.3,97.5];p=polyfit(x,y,2);y6to10=polyval(p,[6:10]);plot(x,y,'o',[x 6:10],polyval(p,[1:10]))结果图:2.用最小二乘法求形如xy ln=的经验公式,使其与数据+abx 1 2 3 4y 2.5 3.4 4.1 4.4相拟合。

(计算取4位小数)。

用MATLAB实现,程序如下:x=[1,2,3,4];y=[2.5,3.4,4.1,4.4];p=polyfit(x,y,1);y6to10=polyval(p,[5:10]);plot(x,y,'o',[x 5:10],polyval(p,[1:10]))得结果如图:数值积分实验日志实验题目:数值积分一、实验目的:1.掌握几种数值积分方法。

2.掌握几种数值求导方法。

实验要求:1.题目;2.写出算法设计思想;3.程序清单;4.运行的结果;5.所得图形;6.对运行情况所作的分析以及本次调试程序所取的经验。

如果程序未通过,应分析其原因。

实验主要步骤:e x,并估计误差。

(计算取5位小1.用梯形公式和辛浦生公式计算积分⎰-10dx数)。

解:主要步骤:用MATLAB实现,程序如下:function zinta=0;b=1;d=0.05;x=a:d:b;y=func(x);format long;y_trapz=trapz(y)*d;y_simps=quad(@func,a,b);y_accurt=eval(int('exp(-t)',a,b));y_trapz_error=y_trapz-y_accurt;y_simps_error=y_simps-y_accurt;plot(x,exp(-x),'o-');function y=func(x);y=exp(-x);所得结果如下:y_trapz =0.63225224512482y_simps =0.63212056020538y_accurt =0.63212055882856y_trapz_error =1.316862962581489e-004y_simps_error =1.376819436238463e-009所得图形为:2. 用龙贝格法求积分⎰-=102dx e I x π,要求误差不超过510-。

(计算取6位小数)用MATLAB 实现,程序如下:format long ;it=int('(2/sqrt(pi))*exp(-x)',0,1); Accurate=eval(it);y=inline('(2/sqrt(pi))*exp(-x)');得答案:y_trapz =0.63225224512482y_simps =0.63212056020538y_accurt =0.63212055882856y_trapz_error =1.316862962581489e-004y_simps_error =1.376819436238463e-009it =-2*(exp(-1)-1)/pi^(1/2)Accurate =0.71327166967492y =Inline function:y(x) = (2/sqrt(pi))*exp(-x)。

相关主题