计算方法作业2.docx

上传人:b****3 文档编号:27153671 上传时间:2023-06-27 格式:DOCX 页数:14 大小:146.61KB
下载 相关 举报
计算方法作业2.docx_第1页
第1页 / 共14页
计算方法作业2.docx_第2页
第2页 / 共14页
计算方法作业2.docx_第3页
第3页 / 共14页
计算方法作业2.docx_第4页
第4页 / 共14页
计算方法作业2.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

计算方法作业2.docx

《计算方法作业2.docx》由会员分享,可在线阅读,更多相关《计算方法作业2.docx(14页珍藏版)》请在冰豆网上搜索。

计算方法作业2.docx

计算方法作业2

计算方法作业2

 

实验1MATLAB基本命令

1.掌握MATLAB的程序设计

实验内容:

对以下问题,编写M文件。

(1)生成一个5×5矩阵,编程求其最大值及其所处的位置。

(2)编程求

(3)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。

求它在第10次落地时,共经过多少米?

第10次反弹有多高?

2.掌握MATLAB的绘图命令

实验内容:

对于自变量

的取值属于[0,

],在同一图形窗口画出如下图形。

(1)

(2)

实验2插值方法与数值积分

1.研究人口数据的插值与预测

实验内容:

下表给出了从1940年到1990年的美国人口,用插值方法推测1930年、1965年、2010年人口的近似值。

美国人口数据

1940

1950

1960

1970

1980

1990

人口(千人)

132,165

151,326

179,323

203,302

226,542

249,633

1930年美国的人口大约是123,203千人,你认为你得到的1965年和2010年的人口数字精确度如何?

2.最小二乘法拟合经验公式

实验内容:

某类疾病发病率为

‰和年龄段

(每五年为一段,例如0~5岁为第一段,6~10岁为第二段……)之间有形如

的经验关系,观测得到的数据表如下

1

2

3

4

5

6

7

8

9

0.898

2.38

3.07

1.84

2.02

1.94

2.22

2.77

4.02

10

11

12

13

14

15

16

17

18

19

4.76

5.46

6.53

10.9

16.5

22.5

35.7

50.6

61.6

81.8

(1)用最小二乘法确定模型

中的参数

(2)利用MATLAB画出离散数据及拟合函数

图形。

3.复化求积公式

实验内容:

对于定积分

(1)分别取利用复化梯形公式计算,并与真值比较。

再画出计算误差与

之间的曲线。

(2)取[0,1]上的9个点,分别用复化梯形公式和复化辛普森公式计算,并比较精度。

实验3非线性方程与线性方程组

1.矩阵的范数与条件数

实验内容:

已知矩阵

2.研究高斯消去法的数值稳定性

实验内容:

设方程组

,其中

(1)

(2)

分别对以上两个方程组

(1)计算矩阵的条件数,判断系数矩阵是良态的还是病态的?

(2)用列主元消去法求得L和U及解向量

(3)用不选主元的高斯消去法求得L和U及解向量

(4)观察小主元并分析对计算结果的影响。

3.求解非线性方程,比较不同方法的计算量

实验内容:

比较求

的根到三位小数所需的计算量:

(1)在区间[0,1]内用二分法;

(2)用迭代法

,初值

(3)用牛顿迭代法,取初值

《计算方法》上机实验报告

姓名:

陶成川学号:

U201410820班级:

机械09

一、问题

1.研究人口数据的插值与预测

实验内容:

下表给出了从1940年到1990年的美国人口,用插值方法推测1930年、1965年、2010年人口的近似值。

美国人口数据

1940

1950

1960

1970

1980

1990

人口(千人)

132,165

151,326

179,323

203,302

226,542

249,633

1930年美国的人口大约是123,203千人,你认为你得到的1965年和2010年的人口数字精确度如何?

2.最小二乘法拟合经验公式

实验内容:

某类疾病发病率为

‰和年龄段

(每五年为一段,例如0~5岁为第一段,6~10岁为第二段……)之间有形如

的经验关系,观测得到的数据表如下

1

2

3

4

5

6

7

8

9

0.898

2.38

3.07

1.84

2.02

1.94

2.22

2.77

4.02

10

11

12

13

14

15

16

17

18

19

4.76

5.46

6.53

10.9

16.5

22.5

35.7

50.6

61.6

81.8

(1)用最小二乘法确定模型

中的参数

(2)利用MATLAB画出离散数据及拟合函数

图形。

3.复化求积公式

实验内容:

对于定积分

(1)分别取利用复化梯形公式计算,并与真值比较。

再画出计算误差与

之间的曲线。

(2)取[0,1]上的9个点,分别用复化梯形公式和复化辛普森公式计算,并比较精度。

 

二、Matlab程序

1.%构造lagrange插值函数

functiony1=lagrange(x,y,x1)

m=length(x);

n=length(y);

p=length(x1);

ifm~=nerror;

end

s=0;

fork=1:

n

t=ones(1,p);

forj=1:

n

ifj~=k,

t=t.*(x1-x(j))/(x(k)-x(j));

end

end

s=s+t*y(k);

end

y1=s;

%在界面中运行

x=[194019501960197019801990];

y=[132.165151.326179.323203.302226.542249.633];

y1930=lagrange(x,y,1930);

y1965=lagrange(x,y,1965);

y2010=lagrange(x,y,2010);

fprintf('thepopulationin1930is%f\n',y1930)

fprintf('thepopulationin1965is%f\n',y1965)

fprintf('thepopulationin2010is%f\n',y2010)

2.

x=[12345678910111213141516171819];

y=[0.8982.383.071.842.021.942.222.774.024.765.466.5310.916.522.535.750.661.681.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('ais%f\n',ai)

fprintf('bis%f\n',a

(1))

3.

(1)

%构造复合梯形积分公式

functionI=tquad(x,y)

n=length(x)

m=length(y)

ifn~=m

error

end

h=(x(n)-x

(1))/(n-1)

a=[12*ones(1,n-2)1]

I=h/2*sum(a.*y)

End

%用梯形公式计算积分

formatlong

x=0:

0.1:

1;

y=x./(4+x.^2);

I1=tquad(x,y)

%计算积分

formatlong

f=inline('x./(4+x.^2)');

I=quadl(f,0,1)

%作误差与n的关系曲线

%构造函数

functionI=tq(k)

x=0:

0.9/k:

1;

y=x./(4+x.^2);

n=length(x);

m=length(y);

ifn~=m

error;

end

h=(x(n)-x

(1))/(n-1);

a=[12*ones(1,n-2)1];

I=h/2*sum(a.*y);

end

%计算并作图

n=1:

100;

t1=ones(1,100);

fork=1:

100

t1(k)=t1(k)*tq(k);

end

f=inline('x./(4+x.^2)');

I=quadl(f,0,1);

t2=I-t1;

plot(n,t2,'*k',n,t2,'-y')

(2)

%构造复合辛普森积分公式

functionI=simpsion(x,y)

m=length(x);

n=length(y);

ifm~=n

error;

end

ifrem(n-1,2)~=0

I=tquad(x,y);

return;

end;

N=(n-1)/2;

h=(x(n)-x

(1))/N;

a=zeros(1,n);

fork=1:

N

a(2*k-1)=a(2*k-1)+1;

a(2*k)=a(2*k)+4;

a(2*k+1)=a(2*k+1)+1;

end

I=h/6*sum(a.*y);

End

%分别计算积分

formatlong

x=0:

0.1:

1;

y=x./(4+x.^2);

isimosion=simpsion(x,y)

itquad=tquad(x,y)

三、结果

通过Matlab程序运行结果如下:

1.

thepopulationin1930is169.649000

thepopulationin1965is191.767359

thepopulationin2010is171.351000

由于lagrange插值不能准确估计范围外的数值,因此1930年和2010年的误差较大。

2.

ais0.681361

bis0.230620

3.

(1)I1=

0.111463*********

 

I=

0.111571775612031

(2)

isimosion=

0.111572023176794

 

itquad=

0.111463*********

积分值为0.111571775612031

显然simpsion公式精度更高

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1