《计算方法作业2》由会员分享,可在线阅读,更多相关《计算方法作业2(12页珍藏版)》请在人人文库网上搜索。
1、计算方法上机指导书欢迎下载实验1 MATLAB基本命令1掌握MATLAB的程序设计实验内容:对以下问题,编写M文件。(1) 生成一个55矩阵,编程求其最大值及其所处的位置。(2) 编程求 。(3) 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹有多高?2掌握MATLAB的绘图命令实验内容:对于自变量的取值属于0,在同一图形窗口画出如下图形。(1);(2);实验2 插值方法与数值积分1. 研究人口数据的插值与预测实验内容:下表给出了从1940年到1990年的美国人口,用插值方法推测1930年、1965年、2010年人口的近似值。。
2、美国人口数据年194019501960197019801990人口(千人)132,165151,326179,323203,302226,542249,6331930年美国的人口大约是123,203千人,你认为你得到的1965年和2010年的人口数字精确度如何?2最小二乘法拟合经验公式实验内容:某类疾病发病率为和年龄段(每五年为一段,例如05岁为第一段,610岁为第二段)之间有形如的经验关系,观测得到的数据表如下1234567890.8982.383.071.842.021.942.222.774.02101112131415161718194.765.466.5310.916.522.535。
3、.750.661.681.8(1)用最小二乘法确定模型中的参数和。(2)利用MATLAB画出离散数据及拟合函数图形。3. 复化求积公式实验内容:对于定积分。(1)分别取利用复化梯形公式计算,并与真值比较。再画出计算误差与之间的曲线。(2)取0,1上的9个点,分别用复化梯形公式和复化辛普森公式计算,并比较精度。实验3 非线性方程与线性方程组1矩阵的范数与条件数实验内容:已知矩阵求,和。2研究高斯消去法的数值稳定性实验内容:设方程组,其中(1),(2),分别对以上两个方程组(1)计算矩阵的条件数,判断系数矩阵是良态的还是病态的?(2)用列主元消去法求得L和U及解向量;(3)用不选主元的高斯消去法求。
4、得L和U及解向量;(4)观察小主元并分析对计算结果的影响。3. 求解非线性方程,比较不同方法的计算量实验内容:比较求的根到三位小数所需的计算量:(1)在区间0,1内用二分法;(2)用迭代法,初值;(3)用牛顿迭代法,取初值。计算方法上机实验报告姓名: 陶成川 学号: U201410820 班级: 机械09 一、 问题1. 研究人口数据的插值与预测实验内容:下表给出了从1940年到1990年的美国人口,用插值方法推测1930年、1965年、2010年人口的近似值。美国人口数据年194019501960197019801990人口(千人)132,165151,326179,323203,30222。
5、6,542249,6331930年美国的人口大约是123,203千人,你认为你得到的1965年和2010年的人口数字精确度如何?2最小二乘法拟合经验公式实验内容:某类疾病发病率为和年龄段(每五年为一段,例如05岁为第一段,610岁为第二段)之间有形如的经验关系,观测得到的数据表如下1234567890.8982.383.071.842.021.942.222.774.02101112131415161718194.765.466.5310.916.522.535.750.661.681.8(1)用最小二乘法确定模型中的参数和。(2)利用MATLAB画出离散数据及拟合函数图形。3. 复化求积公式。
6、实验内容:对于定积分。(1)分别取利用复化梯形公式计算,并与真值比较。再画出计算误差与之间的曲线。(2)取0,1上的9个点,分别用复化梯形公式和复化辛普森公式计算,并比较精度。二、 Matlab程序1. %构造lagrange插值函数function y1=lagrange(x,y,x1)m=length(x);n=length(y);p=length(x1);if m=n error;ends=0;for k=1:nt=ones(1,p);for j=1:nif j=k,t=t.*(x1-x(j)/(x(k)-x(j);endends=s+t*y(k);endy1=s;%在界面中运行x=19。
7、40 1950 1960 1970 1980 1990;y=132.165 151.326 179.323 203.302 226.542 249.633;y1930=lagrange(x,y,1930);y1965=lagrange(x,y,1965);y2010=lagrange(x,y,2010);fprintf(the population in 1930 is %fn,y1930)fprintf(the population in 1965 is %fn,y1965)fprintf(the population in 2010 is %fn,y2010)2.x=1 2 3 4 5 6。
8、 7 8 9 10 11 12 13 14 15 16 17 18 19;y=0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8;yi=log(y);a=polyfit(x,yi,1);ai=exp(a(2);xm=1:0.05:19;ym=ai*exp(a(1).*xm);plot(x,y,*k,xm,ym,-y)fprintf(a is %fn,ai)fprintf(b is %fn,a(1)3.(1)%构造复合梯形积分公式function I=tqu。
9、ad(x,y)n=length(x)m=length(y)if n=merrorendh=(x(n)-x(1)/(n-1)a=1 2*ones(1,n-2) 1I=h/2*sum(a.*y)End%用梯形公式计算积分format longx=0:0.1:1;y=x./(4+x.2);I1=tquad(x,y)%计算积分format longf=inline(x./(4+x.2);I=quadl(f,0,1)%作误差与n的关系曲线%构造函数function I=tq(k)x=0:0.9/k:1;y=x./(4+x.2);n=length(x);m=length(y);if n=merror;en。
10、dh=(x(n)-x(1)/(n-1);a=1 2*ones(1,n-2) 1;I=h/2*sum(a.*y);end%计算并作图n=1:100;t1=ones(1,100);for k=1:100t1(k)=t1(k)*tq(k);endf=inline(x./(4+x.2);I=quadl(f,0,1);t2=I-t1;plot(n,t2,*k,n,t2,-y)(2)%构造复合辛普森积分公式function I=simpsion(x,y)m=length(x);n=length(y);if m=nerror;endif rem(n-1,2)=0I=tquad(x,y);return;end。
11、;N=(n-1)/2;h=(x(n)-x(1)/N;a=zeros(1,n);for k=1:Na(2*k-1)=a(2*k-1)+1;a(2*k)=a(2*k)+4;a(2*k+1)=a(2*k+1)+1;endI=h/6*sum(a.*y); End%分别计算积分format longx=0:0.1:1;y=x./(4+x.2);isimosion=simpsion(x,y)itquad=tquad(x,y)三、 结果通过Matlab程序运行结果如下:1.the population in 1930 is 169.649000the population in 1965 is 191.767359the population in 2010 is 171.351000由于lagrange插值不能准确估计范围外的数值,因此1930年和2010年的误差较大。2.a is 0.681361b is 0.2306203.(1)I1 =0.111463380815167I =0.111571775612031(2)isimosion =0.111572023176794itquad =0.111463380815167积分值为 0.111571775612031显然simpsion公式精度更高。