xxxx大学
姓名:学号:专业:数学实验
x x xxxxxxxxxx 电子信息工程
学院:通信与信息工程学院
一. 实验目的:
1.掌握Matlab软件中基本的语言及函数功能,熟悉Matlab的运行环境及能进行基本的操作。
2.能够和所学知识联系,比如运用Matlab解决积分,矩阵及图像等问题。 3.为以后学习数学建模等同其他科目打好基础。
二. 实验内容:(题号1,2,4)
1.用起泡法对10个数由小到大排序,即将相邻俩个数比较,将小的调到前头。
代码如下: function myfun()
fprintf('请输入10个要排序的数:\\n');%此处为显示内容
for k=1:1:10 %此处为输入环节 a(k)=input('');
end
for j=9:-1:1 %此处为排序环节 for i=1:j
if(a(i)>a(i+1)) t=a(i);a(i)=a(i+1);a(i+1)=t; end end end
for k=1:1:10 %此处为输出环节 fprintf('%d\',a(k)) end
调用myfun:
请输入10个要排序的数:
5
36 19 77 32 94 0 62 48 15
运行结果如下:
0 5 15 19 32 36 48 62 77 94
2.有一个4*5矩阵,编程求出其最大值及其最大值所处的位置?
代码如下: function jz45()
a=input('输入一个4*5矩阵'); %显示环节 max=a(1,1); %打擂台法求出最大值 for i=1:4 for j=1:5 if a(i,j)>max
max=a(i,j);
maxi=i;maxj=j; %记录最大值的行列 end end end
max %是指最大值 maxi %是指记录最大值的行 maxj %是指记录最大值的列
调用jz45
请输入一个4*5矩阵:
[5,6,8,9,11;41,23,51,,14;2,8,63,41,25;36,84,25,99,3]; 运行结果如下:
max = 99 maxi = 4 maxj = 4
3、%一球从100米高度自由落下,每次落地后反跳会原高度的一半,再落下,求它在 第10次落地时,共经过多少米?第十次反弹有多高?
代码如下: function hignandsum h = zeros(11,1); h(1) = 100; for i = 2:11 h(i) = h(i-1)/2; end
high10=h(11) %第10次反弹的高度
sumheight=2*sum(h(1:10))-h(1) %此处表示它在第10次落地时,共经过多少路程? 调用hignandsum 结果如下: high10 = 0.0977 sumheight =
299.6094
三.实验心得:
本次实验对我受益匪浅,它让我学会了理论知识
和实际相结合,并且之前都没有接触过Matlab。通过本次试验,我学会了如何用Matlab解决学习中的有些问题,它不仅可以用来计算微积分,还可以计算线性代数,另外,还可以像C语言一样自己编写函数来解决问题。虽然我们之前都不会用这款软件,但通过本次的三个题目的测试,我们学会了它的基本使用方法。本次实验考察了matlab软件中基本语法语句的运用,以及各种语句之间的配合, 体现了软件灵活丰富的编程功能。本次实验锻炼了我们分析实际问题、并用所学解决问题的能力。并且,通过实践我们发现了自己的许多问题,因而我们也有了改正错误和缺点的机会,我们一定会在今后通过学习实践努力改进。 总而言之,Matlab是一个非常庞大的计算处理软件,我相信我们此次学习的内容犹如九牛一毛,这也体现出了知识的无穷无尽,而且,为了以后的数学建模和专业课还有充实自己的能力,我一定会好好学习的!
2013年12月 30日