matlab实验报告

  • 格式:doc
  • 大小:1.83 MB
  • 文档页数:30

下载文档原格式

  / 30
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB

数学实验报告

指导老师:

班级:

小组成员:

时间:201_/_/_

Matlab第二次实验报告

小组成员:

1题目:实验四,MATLAB选择结构与应用实验

目的:掌握if选择结构与程序流程控制,重点掌握break,return,pause语句的应用。

问题:问题1:验证“哥德巴赫猜想”,即:任何一个正偶数(n>=6)均可表示为两个质数的和。要求编制一个函数程序,输入一个正偶数,返回两个质数的和。

问题分析:由用户输入一个大于6的偶数,由input语句实现。由if判断语句判断是否输入的数据符合条件。再引用质数判断函数来找出两个质数,再向屏幕输出两个质数即可。

编程:function [z1,z2]=gede(n);

n=input('please input n')

if n<6

disp('data error');

return

end

if mod(n,2)==0

for i=2:n/2

k=0;

for j=2:sqrt(i)

if mod(i,j)==0

k=k+1;

end

end

for j=2:sqrt(n-i)

if mod(n-i,j)==0

k=k+1;

end

end

if k==0

fprintf('two numbers are')

fprintf('%.0f,%.0f',i,n-i)

break

end

end

end

结果分析:

如上图,用户输入了大于6的偶数返回两个质数5和31,通过不断试验,即可验证哥德巴赫猜想。

纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰,更快的解决问题。

2题目:实验四,MATLAB选择结构与应用实验

目的:用matlab联系生活实际,解决一些生活中常见的实际问题。

问题:问题四:在一边长为1的四个顶点上各站有一个人,他们同时开始以等速顺时针沿跑道追逐下一人,在追击过程中,每个人时刻对准目标,试模拟追击路线,并讨论。(1)四个人能否追到一起?

(2)若能追到一起,每个人跑过多少路程?

(3)追到一起所需要的时间(设速率为1)

问题分析:由正方形的几何对称性和四个人运动的对称性可知,只需研究2个人的运动即可解决此问题。

编程:

hold on

axis([0 1 0 1]);

a=[0,0];

b=[0,1];

k=0;

dt=0.001;

v=1;

while k<10000

d=norm(a-b);

k=k+1;

plot(a(1),a(2),'r.','markersize',15);

plot(b(1),b(2),'b.','markersize',15);

fprintf('k=%.0f b(%.3f,%.3f) a(%.3f,%.3f) d=%.3f\n',k,b(1),b(2),a(1),a(2),d)

a=a+[(b(1)-a(1))/d*dt,(b(2)-a(2))/d*dt];

b=b+[(b(2)-a(2))/d*dt,-(b(1)-a(1))/d*dt];

if d<=0.001

break

end

end

fprintf('每个人所走的路程为:%.3f',k*v*dt)

fprintf('追到一起所需要的时间为%.3f',k*dt)

结果分析:

上图为2人的模拟运动路线,有对称性可解决所提问题。-

上图为运算过程和运算结果。四个人可以追到一起,走过的路程为1.003,时间也为1.003.

纪录:此题利用正方形和运动的对称性可以简便运算。

3题目:实验八,河流流量估计与数据插值

目的:由一些测量数据经过计算处理,解决一些生活实际问题。

问题:实验八上机练习题第三题:瑞士地图如图所示,为了算出他的国土面积,做以下测量,由西向东为x轴,由南向北为y轴,从西边界点到东边界点划分为若干区域,测出每个分点的南北边界点y1和y2,得到以下数据(mm)。已知比例尺1:2222,计算瑞士国土面积,精确值为41288平方公里。

测量数据如下:

x=[7.0 10.5 13.0 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91 96 101 104 106 111.5 118 123.5 136.5 142 146 150 157 158] ;

y1=[44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68];

y2=[44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68];

问题分析:先由题目给定的数据作出瑞士地图的草图,再根据梯形法,使用trapz语句,来估算瑞士国土的面积。

编程:x=[7.0 10.5 13.0 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91 96 101 104 106 111.5 118 123.5 136.5 142 146 150 157 158];

y1=[44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68];

y2=[44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68];

plot(x,y1,'r.','markersize',15);

plot(x,y2,'r.','markersize',15);

axis([0 160 0 135])

grid;hold on

t=7:158;

u1=spline(x,y1,t);

u2=spline(x,y2,t);

plot(t,u1)