Matlab上机题代码及结果4题.docx

上传人:b****5 文档编号:4394693 上传时间:2022-12-01 格式:DOCX 页数:12 大小:132.46KB
下载 相关 举报
Matlab上机题代码及结果4题.docx_第1页
第1页 / 共12页
Matlab上机题代码及结果4题.docx_第2页
第2页 / 共12页
Matlab上机题代码及结果4题.docx_第3页
第3页 / 共12页
Matlab上机题代码及结果4题.docx_第4页
第4页 / 共12页
Matlab上机题代码及结果4题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Matlab上机题代码及结果4题.docx

《Matlab上机题代码及结果4题.docx》由会员分享,可在线阅读,更多相关《Matlab上机题代码及结果4题.docx(12页珍藏版)》请在冰豆网上搜索。

Matlab上机题代码及结果4题.docx

Matlab上机题代码及结果4题

例1下图描述了六个城市之间的航空航线图,其中1、2、……、6表示六个城市,带箭头线段表示两个城市之间的航线。

用MATLAB软件完成以下操作:

(1)构造该图的邻接矩阵A;

(2)若某人连续乘坐五次航班,那么他从哪一个城市出发到达哪一个城市的方法最多?

(3)若某人可以乘坐一次、二次、三次或四次航班,那么他从哪一个城市出发总是不能达到哪一个城市?

航空航线图(六城市)

解:

(1)构造邻接矩阵

(2)计算矩阵可达矩阵

,找出该矩阵的最大元素,并确定它所在的位置;

(3)计算可达矩阵

,找出该矩阵中零元素的位置。

在MATLAB软件的M编辑器中编写m文件:

%图与矩阵

clear

A=[0,1,0,0,0,1;0,0,1,1,0,0;0,0,0,1,1,0;0,1,0,0,0,0;1,0,1,0,0,0;0,1,0,0,1,0];%构造邻接矩阵

B=A^5;

C=A+A^2+A^3+A^4;

disp('邻接矩阵A为:

');

disp(A);

disp('矩阵A^5为:

');

disp(B);

m=max(max(B));%计算矩阵B的最大值

[m_i,m_j]=find(B==m);%寻找矩阵B中元素等于m的位置

fprintf('矩阵A^5最大值%d的位置在:

\n',m);

disp([m_i,m_j]);

disp('矩阵A+A^2+A^3+A^4为:

');

disp(C);

[z_i,z_j]=find(C==0);%寻找矩阵C中零元素的位置

disp('矩阵A+A^2+A^3+A^4零元素的位置在:

');

disp([z_i,z_j]);

在MATLAB命令窗口中输入m文件名称,

计算结果为:

邻接矩阵A为:

010001

001100

000110

010000

101000

010010

矩阵A^5为:

255531

244320

235521

021321

264541

144742

矩阵A^5最大值7的位置在:

64

矩阵A+A^2+A^3+A^4为:

265642

144631

254541

133310

356642

366541

矩阵A+A^2+A^3+A^4零元素的位置在:

46

从计算结果中可以看出,矩阵A^5最大值出现在矩阵的第六行第四列,说明:

这个人如果从城市6出发连续乘坐五次航班后到达城市4,他可以选择的乘机路线最多,共有7种不同的方法。

矩阵A+A^2+A^3+A^4的零元素出现在第四行第六列,说明:

这个人如果从城市4出发他乘坐一次、二次、三次或四次航班,都无法到达城市6。

实验习题

5个小朋友玩传球游戏。

游戏规则:

任意两个人之间都可以相互传球,但自己不能给自己传。

请用MATLAB完成以下操作:

(1)把五个小朋友看成五个节点,构造这五个节点的邻接矩阵A;

(2)假设从第一个小朋友开始传球,经过四次传球后,球又传回到第一个小朋友手里。

问共有多少种不同的传法。

(3)假设从第一个小朋友开始传球,经过一次,或者二次,或者三次传球,球传给了第二个小朋友。

问共有多少种传法。

例2下表给出了平面坐标系中五个点的坐标。

五点数据表

x

0

1

2

3

4

y

-27

0

21

0

-75

(1)请过这五个点作一个四次多项式函数

,并求当

时的函数值

用MATLAB绘制多项式函数

曲线、已知点及插值点(5,

)。

(2)请根据这五个点,拟合一个二次多项式函数

,并用MATLAB绘制多项式函数

曲线及已知的五个点。

解:

(1)根据已知条件,把五个点的坐标值分别代入四次多项式函数,可以得到如下线性方程组:

对应矩阵等式为:

,其中

系数矩阵A的行列式为范德蒙行列式,且五个坐标点的横坐标各不相同,则该行列式不等于零,所以方程组有唯一解。

(2)根据已知条件,把五个点的坐标值分别代入二次多项式函数,可以得到如下线性方程组:

对应矩阵等式为:

,其中

该方程组有三个未知数,但有五个方程,进一步分析可以得到该方程组无解,即不存在一个二次多项式曲线刚好能过已知的五个点。

MATLAB软件提供了一个利用最小二乘法解决超定方程组近似解的方法。

即可以找到一条二次曲线来近似地描述已知5点的变化情况。

在MATLAB软件M文件编辑器中编写程序m:

%多项式插值和函数逼近

clear

closeall

x=[0;1;2;3;4];%输入已知点坐标

y=[-27;0;21;0;-75];

A=[x.^0,x.^1,x.^2,x.^3,x.^4];%构造范德蒙矩阵

a=A\y;%得到适定方程组的唯一解a,即确定了多项式函数

%或p=polyfit(x,y,4)%p是按从高次幂到低次幂排列的系数向量;

disp('四次多项式系数为:

')

disp(a);

xi=linspace(-1,9.5,100);%构造数组xi,从-1到9.5均匀取100个值

yi=a

(1)+a

(2)*xi+a(3)*xi.^2+a(4)*xi.^3+a(5)*xi.^4;

%计算对应xi的多项式函数值yi

x0=5;

y0=a

(1)+a

(2)*x0+a(3)*x0^2+a(4)*x0^3+a(5)*x0^4;

%计算插值点函数值

disp('四次多项式函数插值点p(5)=');

disp(y0);

subplot(1,2,1);

plot(xi,yi,x,y,'o',x0,y0,'*');%绘制四次多项式函数、已知五点及插值点

axissquare;%使坐标轴为正方形

axis([-19-400100])%确定x轴和y轴范围

gridon;%显示网格

A=[x.^0,x.^1,x.^2];

a=A\y;%根据最小二乘法得到超定方程组的近似解a

%或p=polyfit(x,y,2)%p是按从高次幂到低次幂排列的系数向量;

disp('二次多项式系数为:

')

disp(a);

xi=linspace(-1,5,100);%构造数组xi,从-1到5均匀取100个值

yi=a

(1)+a

(2)*xi+a(3)*xi.^2;%计算对应xi的多项式函数值yi

subplot(1,2,2);

plot(xi,yi,x,y,'o');%绘制二次多项式函数及已知五点

axissquare;

axis([-15-15050])

gridon;

在MATLAB命令窗口输入m文件名称,

计算结果为:

四次多项式系数为:

-27

12

26

-12

1

四次多项式函数插值点p(5)=

-192

二次多项式系数为:

-32.1429

60.6857

-17.5714

下图给出了MATLAB绘制的图形。

从图中可以形象地看出插值和拟合的区别。

插值和拟合的示意图

实验习题

下表给出了平面坐标系中六个点的坐标。

表六点数据表

x

0

1

2

3

4

5

y

-750

0

840

1344

1134

0

(1)请过这六个点作一个五次多项式函数

,并求当

时的函数值

用MATLAB绘制多项式函数

曲线、已知点及插值点(-1,

)。

(2)请根据这六个点,拟合一个三次多项式函数

并用MATLAB绘制多项式函数

曲线及已知点。

习题答案:

题目1:

clear;

A=[0,1,1,1,1;1,0,1,1,1;1,1,0,1,1;1,1,1,0,1;1,1,1,1,0];%构造邻接矩阵

B=A^4;

C=A+A^2+A^3;

disp('邻接矩阵A为:

');

disp(A);

disp('矩阵A^4为:

');

disp(B);

m=sum(diag(B));%计算B对角线元素之和

fprintf('传4次后回到第一个人的传法:

%d\n',m);

disp('矩阵A+A^2+A^3为:

');

disp(C);

n=sum(sum(C))-sum(diag(C));%计算除对角线之外的元素之和

fprintf('传到第二个人的传法:

%d',n);

 

>>ti1

邻接矩阵A为:

01111

10111

11011

11101

11110

矩阵A^4为:

5251515151

5152515151

5151525151

5151515251

5151515152

传4次后回到第一个人的传法:

260

矩阵A+A^2+A^3为:

1617171717

1716171717

1717161717

1717171617

1717171716

传到第二个人的传法:

340>>

 

题目2:

%多项式插值和函数逼近

clear

closeall

x=[0;1;2;3;4];%输入已知点坐标

y=[-27;0;21;0;-75];

A=[x.^0,x.^1,x.^2,x.^3,x.^4];%构造范德蒙矩阵

a=A\y;%得到适定方程组的唯一解a,即确定了多项式函数

%或p=polyfit(x,y,4)%p是按从高次幂到低次幂排列的系数向量;

disp('四次多项式系数为:

')

disp(a);

xi=linspace(-1,9.5,100);%构造数组xi,从-1到9.5均匀取100个值

yi=a

(1)+a

(2)*xi+a(3)*xi.^2+a(4)*xi.^3+a(5)*xi.^4;

%计算对应xi的多项式函数值yi

x0=5;

y0=a

(1)+a

(2)*x0+a(3)*x0^2+a(4)*x0^3+a(5)*x0^4;

%计算插值点函数值

disp('四次多项式函数插值点p(5)=');

disp(y0);

subplot(1,2,1);

plot(xi,yi,x,y,'o',x0,y0,'*');%绘制四次多项式函数、已知五点及插值点

axissquare;%使坐标轴为正方形

axis([-19-400100])%确定x轴和y轴范围

gridon;%显示网格

A=[x.^0,x.^1,x.^2];

a=A\y;%根据最小二乘法得到超定方程组的近似解a

%或p=polyfit(x,y,2)%p是按从高次幂到低次幂排列的系数向量;

disp('二次多项式系数为:

')

disp(a);

xi=linspace(-1,5,100);%构造数组xi,从-1到5均匀取100个值

yi=a

(1)+a

(2)*xi+a(3)*xi.^2;%计算对应xi的多项式函数值yi

subplot(1,2,2);

plot(xi,yi,x,y,'o');%绘制二次多项式函数及已知五点

axissquare;

axis([-15-15050])

gridon;

结果:

>>ti2

四次多项式系数为:

-750.0000

575.0000

230.0000

-48.0000

-8.0000

1.0000

四次多项式函数插值点p(-1)=

-1.0560e+003

二次多项式系数为:

-757.2381

647.8254

187.6190

-57.4444

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

当前位置:首页 > 医药卫生 > 中医中药

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

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