收藏 分销(赏)

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

上传人:s4****5z 文档编号:8888769 上传时间:2025-03-06 格式:DOCX 页数:13 大小:91.25KB 下载积分:10 金币
下载 相关 举报
Matlab上机题代码及结果4题.docx_第1页
第1页 / 共13页
Matlab上机题代码及结果4题.docx_第2页
第2页 / 共13页


点击查看更多>>
资源描述
例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为: 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 矩阵A^5为: 2 5 5 5 3 1 2 4 4 3 2 0 2 3 5 5 2 1 0 2 1 3 2 1 2 6 4 5 4 1 1 4 4 7 4 2 矩阵A^5最大值7的位置在: 6 4 矩阵A+A^2+A^3+A^4为: 2 6 5 6 4 2 1 4 4 6 3 1 2 5 4 5 4 1 1 3 3 3 1 0 3 5 6 6 4 2 3 6 6 5 4 1 矩阵A+A^2+A^3+A^4零元素的位置在: 4 6 从计算结果中可以看出,矩阵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 close all 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, '*');% 绘制四次多项式函数、已知五点及插值点 axis square; % 使坐标轴为正方形 axis([-1 9 -400 100]) % 确定x轴和y轴范围 grid on; % 显示网格 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'); % 绘制二次多项式函数及已知五点 axis square; axis([-1 5 -150 50]) grid on; 在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为: 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 矩阵A^4为: 52 51 51 51 51 51 52 51 51 51 51 51 52 51 51 51 51 51 52 51 51 51 51 51 52 传4次后回到第一个人的传法: 260 矩阵A+A^2+A^3为: 16 17 17 17 17 17 16 17 17 17 17 17 16 17 17 17 17 17 16 17 17 17 17 17 16 传到第二个人的传法 : 340>> 题目2: % 多项式插值和函数逼近 clear close all 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, '*');% 绘制四次多项式函数、已知五点及插值点 axis square; % 使坐标轴为正方形 axis([-1 9 -400 100]) % 确定x轴和y轴范围 grid on; % 显示网格 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'); % 绘制二次多项式函数及已知五点 axis square; axis([-1 5 -150 50]) grid on; 结果: >> 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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服