MATLAB实验报告第八次.docx
- 文档编号:16895411
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:105
- 大小:1.87MB
MATLAB实验报告第八次.docx
《MATLAB实验报告第八次.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告第八次.docx(105页珍藏版)》请在冰点文库上搜索。
MATLAB实验报告第八次
MATLAB学实验报告
姓名:
李犁
学号:
指导老师:
易昆南
专业班级:
统计1203
1循环矩阵的性质…………………………3
2航线连接问题……………………………6
3生物群体模型…………………………….8
4学生成绩管理系统……………………….11
5调和级数问题……………………………14
63N+1问题……………………….….......17
7航程与起点……………………………...20
8ε-δ图的动画绘制……………….……27
9求π………………………………………32
10求函数f的一阶泰勒展式………………33
11蛛网模型的动画显示…………………..36
12音乐制作……..…………………………40
13用matlab做插值计算…………………49
14以g(x)为例作三种插值的比较………...53
15函数
的拟合………………...60
16函数
的拟合…...62
172011年数模竞赛A题的作图…………64
18混沌现象……….……………………….77
19分形图案的绘制………………………..79
20古典概型与随机问题的模拟问题……..84
21抽取小球问题……...…………………...86
22追赶火车问题………………………….89
23Galton钉板模型………………………..91
学号
班级
统计1203
姓名
李犁
指导教师
易昆南
实验题目
循环矩阵的性质
评分
1、设计(实习)目的:
探究可逆循环矩阵的性质,运用matlab,初步了解程序的编写,再根据结果自行进行证明。
2、实验内容:
编写一个可逆循环矩阵程序,实现矩阵的随机性,在用随机产生的矩阵进行研究,从而研究任意一个可逆循环矩阵的性质,包括矩阵的和、积、逆的性质。
3.详细设计:
此程序只有一个主函数,储存在一个M文件中,实验时调用函数完成。
主函数(matrixrand)
functionoutput=matrixrand(n,a,b)
%UNTITLED2Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
r=fix(a+(b-a)*rand(1,n));%r向量是一组随机数
N=zeros(n);%把矩阵N初始为一个n阶零矩阵
whilerank(N)~=n%判定是否可逆
N(1,:
)=r;%矩阵第一行是随机向量r
fori=2:
n%以下为循环矩阵的实现,从第二行到第n行
r=[r(1,n)r(1,1:
n-1)];
N(i,:
)=r;
end
end
output=N;%输出可逆循环矩阵
end
4:
实验结果:
在命令窗口输入
>>A=matrixrand(5,1,5)
输出
A=
12344
41234
44123
34412
23441
1.在命令窗口输入
>>B=inv(A)
输出
B=
-0.2412-0.0776-0.00480.24970.1406
0.1406-0.2412-0.0776-0.00480.2497
0.24970.1406-0.2412-0.0776-0.0048
-0.00480.24970.1406-0.2412-0.0776
-0.0776-0.00480.24970.1406-0.2412
2.在命令窗口输入
>>C=matrixrand(5,1,5);
>>D=matrixrand(5,1,5);
>>F=C+D
输出
F=
74442
27444
42744
44274
44427
3.在命令窗口输入
>>G=C*D
输出
G=
2420212217
1724202122
2217242021
2122172420
2021221724
5:
实验总结
从实验所得矩阵,再用观察的方法可以得知一个可逆循环矩阵的逆、方幂、两个可逆循环矩阵的和、积,都是一个循环矩阵
姓名:
李犁
学号
班级
统计1203
姓名
李犁
指导教师
易昆南
实验题目
航线连接问题
评分
1、设计(实习)目的:
探究航线链接问题,初步接触图论问题,探究矩阵中各个位置元素的意义,从而使实际问题简化处理。
2、实验内容:
编写一个航线问题程序,从而研究是否有航线能够使两次到达目的地,起点与终点可以是任意两个点。
3.详细设计:
此程序只有一个主函数成,存储在一个的M文件中,使用时进行调用
主函数(airline.A)
functionoutput=airline(A,a,b)
%UNTITLED2Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
n=rank(A);%把矩阵A的秩定义给n
fori=1:
n%对i进行1到n的循环
ifA(a,i)==1&A(i,b)==1%当这两个元素都是1时,便可到达
output=i;%输出连接点
end
end
end
4:
实验结果:
在命令窗口输入
>>A=[01000001
00000100
10010000
00000010
00100000
00010000
00000001
10001000];
>>airline(A,2,4)
输出
ans=
6
在命令窗口输入
airline(A,5,1)
输出
ans=
3
在命令窗口输入
>>B=A*A
输出
B=
10001100
00010000
01000011
00000001
10010000
00000010
10001000
01100001
在命令窗口输入
>>C=A+A*A+A*A*A
输出
C=
12111102
00010110
21011112
10001011
11110011
00010011
11101002
31112101
5:
实验总结
1.有恰好两个航班有可能从C2到达C4(C2到C6到C4);
2.有恰好两个航班有可能从C5到达C1(C5到C3到C1);
3.在矩阵B(即A*A)中,(i,j)元素为1,说明有恰好两个航班有可能从Ci到达Cj;
4.在矩阵C(即A+A*A+A*A*A)中,(i,j)元素的数字表示有恰好一个或两个或三个航班有可能从Ci到达Cj的总数。
从结果中可以预见矩阵的数字可以表示航线的可行性,这对实际问题进行了简化。
姓名:
李犁
学号
班级
统计1203
姓名
李犁
指导教师
易昆南
实验题目
生物群体模型
评分
1、设计(实习)目的:
初次建立数学模型,来探究问题,学习怎样把matlab运用到数学建模中,来研究复杂的问题。
2、实验内容:
编写一个程序,从而研究狐狸和鸡能稳定发展的临界值以及能看到效果的观察次数。
3.详细设计:
此程序只有一个主函数,存储在一个的M文件中,实验时进行调用。
主函数(linjiezhi.)
functionoutput=linjiezhi()
%UNTITLEDSummaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
s=0;
fork=0.01:
0.01:
0.2%临界值的判定范围为0.01到0.2
fori=1:
1000%假设一共实验1000次,因为根据计算,1000次以内就可看出结果
t=s;%t始终表示上一次循环之后狐狸和鸡数值的差
x0=[100;1000];
A=[0.60.5
-k1.2];
xi=A^i*x0;%题中所给的方法
s=xi(2,1)-xi(1,1);%计算当前循环狐狸和鸡数值的差
ift-s==0%当前后两次数值的差稳定时即可,也就是所求的临界值和观察次数
output=[ki];%输出临界值和观察次数
break;
end
end
end
end
主函数二(cishu)
functionoutput=cishu()
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
s=0;
fori=1:
200
t=s;
x0=[100;1000];
A=[0.60.5
-0.161.2];
xi=A^i*x0;
plot(i,xi(1,1)-xi(2,1));
holdon;
end
end
4:
实验结果:
在命令窗口输入
>>linjiezhi
输出
ans=
0.1600161.0000
在命令窗口输入
>>haha
输出
5:
实验总结
临界值为0.16能看到效果的观察次数为161次,但经检验,大概在四十次就可看出结果,这是因为精确值的原因,次数多了之后出现了小数点的问题。
也由此验证了(k=0.1),鸡的群体将无限发展,这使得狐狸的群体也无限发展;而捕杀率较大(k=0.18),鸡将被消灭,那么狐狸也将自行消灭。
证明:
Fi=0.6Fi-1+0.5Ci-1;
当数量稳定时,Fi=Fi-1;
得:
Fi-1=1.25Ci-1;
带入Ci=1.2Ci-1-kFi-1;
得:
Ci=(1.2-k*1.25)Ci-1;
当数量稳定时,同理Ci=Ci-1;
所以k=0.16,也即是实验结果。
姓名:
李犁
学号
班级
统计1203
姓名
李犁
指导教师
易昆南
实验题目
学生成绩管理系统
评分
2、设计(实习)目的:
运用matlab的各个流程控制来完成程序,如顺序结构,if语句,switch语句,for语句,输出语句等等,充分了解每个语句的作用以及用法;运用求最大值,最小值,平均值,标准差,排序的函数来求相应数据。
2、实验内容:
编写一个学生成绩管理系统,来帮助老师进行成绩的分类,排序等步骤。
3.详细设计:
此程序只有一个主函数,储存在一个M文件中,实验时调用函数完成。
主函数(studentmark)
functiony=studentmark()
%UNTITLEDSummaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clear;
fori=1:
10%对每一个分数段进行划分
a{i}=89+i;
b{i}=79+i;
c{i}=69+i;
d{i}=59+i;
end
c=[dc];%c、d都为及格,进行合并
[numstr]=xlsread('e:
\students.xls');%读取在E盘中的excel数据
[snumv]=size(num);
fori=1:
snum%定义名字和分数的单元数组
Name{i}=str(i+1,1);
Mark{i}=num(i,1);
end
Rank=cell(1,snum);
s=struct('Name',Name,'Marks',Mark,'Rank',Rank);
nful=0;
nexc=0;
ngoo=0;
npas=0;
nfai=0;
fori=1:
snum%对每一个学生的成绩进行划分类别
switchs(i).Marks
case100
s(i).Rank='fullmarks';
nful=nful+1;
casea
s(i).Rank='excellent';
nexc=nexc+1;
caseb
s(i).Rank='good';
ngoo=ngoo+1;
casec
s(i).Rank='pass';
npas=npas+1;
otherwise
s(i).Rank='fail';
nfai=nfai+1;
end
end
Markmat=cell2mat(Mark);%把数组变为矩阵
[Maxnstmax]=max(Markmat);%求最高分
[Minnstmin]=min(Markmat);%求最低分
ave=num2str(mean(Markmat));%求平均分
stdev=num2str(std(Markmat,0));%求标准差
rful=nful/snum;
rexc=nexc/snum;
rgoo=ngoo/snum;
rpas=npas/snum;
rfai=nfai/snum;
passratio=1-rfai;
[sortnumsortid]=sort([s.Marks]);%进行排序
disp([blanks(6),'Name',blanks(16),'Marks',blanks(16),'Rank']);disp('');
fori=sortid%以下为输出
disp([s(i).Name,blanks(6),num2str(s(i).Marks),
blanks(6),s(i).Rank]);
end
disp(['average',blanks
(2),ave,blanks(4),'standarddeviation',
blanks
(2),stdev,blanks(4),'passratio',blanks
(2),
num2str(passratio)]);
disp('');
disp(['MaxMark',s(nstmax).Name,num2str(Max),blanks(4),
'MinMark',s(nstmin).Name,num2str(Min)]);
disp([blanks(8),'FullMark',blanks(9),'Excellent',blanks(6),
'Good',blanks(9),'Pass',blanks(12),'Fail']);
disp(['number',blanks
(2),num2str(nful),blanks(18),
num2str(nexc),blanks(18),num2str(ngoo),blanks(15),
num2str(npas),blanks(18),num2str(nfai)]);
disp(['ratio',blanks
(2),num2str(rful),blanks(8),
num2str(rexc),blanks(8),num2str(rgoo),blanks(8),
num2str(rpas),blanks(8),num2str(rfai)]);
end
4:
实验结果:
在命令窗口输入
>>studentmark
输出
NameMarksRank
'Tony''''36''''fail'
'Reter''''56''''fail'
'Jom''''65''''pass'
'Hebe''''65''''pass'
'Jack''''72''''pass'
'John''''79''''pass'
'Marry''''83''''good'
'Sheldon''''86''''good'
'Harry''''89''''good'
'Rose''''94''''excellent'
'Sweet''''96''''excellent'
'Tom''''100''''fullmarks'
average76.75standarddeviation18.7768passratio0.83333
'MaxMark''Tom''100''''MinMark''Tony''36'
FullMarkExcellentGoodPassFail
number12342
ratio0.0.166670.250.333330.16667
5:
实验总结
编程得到了一个成绩管理系统,能够表格式输出所求数据。
这个实验帮助我了解了更多的关于matlab的编程方法,合理应用各个语句来完成实验目的,来解答实际应用中的难题。
姓名:
李犁
学号
班级
统计1203
姓名
李犁
指导教师
易昆南
实验题目
调和级数问题
评分
3、设计(实习)目的:
探究调和级数和的极限以及其性质,说明其收敛性。
2、实验内容:
=
,
=
-
,做
以及
的图像,从而研究其性质,以及它们的极限
3.详细设计:
此程序只有一个主函数和两个分函数,储存在三个M文件中,实验时分别调用函数完成。
主函数一(daoshuhe.n)
functionoutput=daoshuhe(n)
%UNTITLEDSummaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
s=0;%定义一个求倒数和的函数,其结果就是
fori=1:
n
s=s+1/i;
end
output=s;
end
分函数一(Sn)
functionoutput=Sn
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
fort=1:
1:
100;%此函数为求S1到S100的和
y(t)=daoshuhe(t);
end
x=1:
100;
plot(x,y(x),'b');
end
分函数二(Hn.n)
functionoutput=Hn(n)
%UNTITLED2Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
forj=1:
n%此函数为画出n为某一固定值时
的函数图象
fork=1:
2*j
s(k)=daoshuhe(k);
end
t(j)=s(2*j)-s(j);
end
x=1:
n;
plot(x,t,'b');
end
4:
实验结果:
1.在命令窗口输入
>>Sn
输出
2.在命令窗口输入
>>Hn(100)
输出
5:
实验总结
与
都存在极限,且随着n的增大,
与
都趋向平缓
姓名:
李犁
学号
班级
统计1203
姓名
李犁
指导教师
易昆南
实验题目
3N+1问题
评分
1、设计(实习)目的:
探究3N+1问题,用matlab的方法证明其正确性,并研究其规律
2、实验内容:
问题:
任给自然数n,如果n是偶数,则将n除2;如果n是奇数,则将n乘3加1。
重复上述过程得到一个无穷数列。
例如,
上述数列可递归地定义为如果n为偶
如果n为奇
编写程序,来研究是否在有限次数中其保持正确性。
3.详细设计:
此程序有两个主函数成,存储在两个的M文件中,使用时进行调用
主函数一(Syracuse.n)
functionoutput=Syracuse(n)
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
s=1;
fori=2:
n
whilei~=1%当i不等于1时进行以下循环
ifmod(i,2)==0%判断i是否为偶数
i=i/2;
else
i=3*i+1;
end
end
ifi==1%i到1时便跳出循环
s=s+1;%计算到达1的数字的个数
end
output=s;%输出结果来探究是否每一个数是否都会落于4→2→1的循环中
end
主函数二(Syracusetu.m)
functionoutput=Syracusetu(m)
%UNTITLED6Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
n
(1)=m;%作出当m为某一固定值时的图像
i=2;
while
(1)
switch(mod(n(i-1),2))
case0
n(i)=n(i-1)/2;
case1
n(i)=3*n(i-1)+1;
end
ifn(i)==1
break;
end
i=i+1;
end
j=1:
i;
plot(j,n(j),'k');
end
4:
实验结果:
在命令窗口输入
>>Syracuse()
输出
ans=
在命令窗口输入
Syracusetu(27)
输出
5:
实验总结
对1到中任意一个数n,从n开始产生的数列最后都落于4→2→1的循环中,因为只有这一种可能才能使结果为1,否则不会出现1。
从而推测对任意正整数n,从n开始产生的数列最后都落于4→2→1的循环中。
根据n=27的图像可以看出出列变化的幅度很大,但总会落到1上。
数列在落于4→2→1循环之前,其规律为总会出现5,16,32,8这些数字,若出现一次,则不会出现第二次。
姓名:
李犁
学号
班级
统计1203
姓名
李犁
指导教师
易昆南
实验题目
航程与起点
评分
1、设计(实习)目的:
初次建立数学模型,来探究问题,学习怎样把matlab运用到数学建模中,来研究复杂的问题。
2、实验内容:
编写一个程序,从而研究航程与起点问题,探索其1)航程与起点的关系;2)保持高度航程与起点关系;3)最大飞行高度与起点的关系;4)偶变换与奇变换的关系。
更进一步研究它们各自有何规律。
3.详细设计:
此程序有四个主函数,存储在四个的M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 实验 报告 第八