MATLAB 程序设计-实验报告3-4
姓名: 学号:[**************]
年级:2011 专业: 物理学
实验目的:
1、 掌握MATLAB 绘图方法
2、 掌握MATLAB m文件编写、编译方法
实验内容:
1、 P146-147,习题3、4、5、7、8、9、10 第3题: x=1:.1:10;
y=exp(x+5)+x.^3; figure(1)
plot(x,y,'r-' ),grid on
legend('\ity=e^(x+5)+x^3') title('y=exp(x+5)+x^3') xlabel('x' ),ylabel('y'
)
第4题:
[X,Y]=meshgrid(-2:.1:2); Z=peaks(X,Y); meshc(X,Y,Z);
axis([-3 3 -3 3 -10 10]) title(' 多峰函数的网格曲线' )
x=0:pi/50:2*pi;
y1=sin(x),y2=cos(x); figure(1)
plot(x,y1,'k-' ,x,y2, 'r.' ),grid on
text(pi,0.05,'\leftarrow sin(\alpha)')
text(pi/4-0.05,0.05,'cos(\alpha)\rightarrow') title('sin(\alpha)和cos(\alpha)')
xlabel('\alpha'),ylabel('sin(\alpha)和cos(\alpha)')
第5题:
x=-3:.1:3; y1=2*x+5;
y2=x.^2-3*x+1; figure(1)
subplot(1,2,1)
plot(x,y1,'k-' ),grid on axis([-3 3 -2 2]) subplot(1,2,2)
plot(x,y2,'r.' ),grid on axis([-3 3 -2 2])
第7题:
x=[190 33 45 42 45]; explode=[0 1 0 0 0]; figure(1) colormap hsv
pie(x,explode,{' 生活费' , ' 资料费' , ' 电话费' , ' 购买衣服' , ' 其他费用' }) title(' 饼图' )
第8题:
(1)三维曲线:
x=linspace(0,1,100);
y=x./2;
z=(x-2).^2+(y-1.2).^2; plot3(x,y,z),grid on view(-25,30),box off
(2)网格曲线:
x=linspace(0,1,100); y=x./2;
[X,Y]=meshgrid(x,y); Z=(X-2).^2+(Y-1.2).^2; mesh(X,Y,Z)
view(-25,30),box off
第9题:
x=linspace(0,1,100); y=x./2;
[X,Y]=meshgrid(x,y); Z=X.^2+Y.^2+sin(X*Y); surfc(X,Y,Z),grid on title(' 曲面及等高示意图' ) view(-25,30)
第10题:
(1)半径为一的球 sphere
axis
equal
(2)以(1,2,3)为中心,以(2,4,3)为半径的椭圆 [x,y,z]=ellipsoid(1,2,3,2,4,3,30) surf(x,y,z),grid on figure(1)
(3)复杂曲面图 t=0:pi/10:2*pi; figure(1)
[X,Y,Z]=cylinder(2+cos(t)) surf(X,Y,Z),axis
square
2、 P184-185,习题5、6、7、8、9 第5题:
x1=-3:.01:-1;
y=(-x1.^2-4*x1-3)/2; figure(1) plot(x1,y) hold on x2=-1:.01:1; y=(-x2.^2+1) plot(x2,y) hold on x3=1:.01:3;
y=(-x3.^2+4*x3-3)/2; plot(x3,y)
第6题:
ch=menu('selection' , '1' , '2' , '3' , '4' ) switch ch case 1
r1=10-20*rand(2,3) case 2
r2=5-10*rand(2,3) case 3
r3=1-2*rand(2,3)
case 4
r4=randn(2,3) end 结果:
ch =
3
r3 =
-0.6294 0.7460 -0.2647 -0.8116 -0.8268 0.8049 第7题:
x=zeros(4,6);
x(1,:)=[87 88 76 90 89 87] x(2,:)=[45 67 90 78 87 98] x(3,:)=[78 90 89 76 89 90] x(4,:)=[98 78 67 98 75 78] y=[2 3 2 4 2.5 1] z1=x(1,:).*y sum(z1)/14.5 z2=x(2,:).*y sum(z2)./14.5 z3=x(3,:).*y sum(z3)/14.5 z4=x(4,:).*y sum(z4)/14.5
结果:z1 =
174.0000 264.0000 152.0000 360.0000
222.5000 87.0000
ans =
86.8621
z2 =
90.0000 201.0000 180.0000 312.0000 217.5000 98.0000
ans =
75.7586
z3 =
156.0000 270.0000
ans =
84.1724
z4 =
196.0000 234.0000
ans =
84.2414
第8题:
I=250000;
n=250000/100000
if (n>4)
n=4
elseif (n>2)
n=3
elseif (n>1)
n=2
else
n=1 178.0000 134.0000 304.0000 392.0000 222.5000 187.5000 90.0000 78.0000
end
switch n
case 1
z1=I*0.1
case 2
z2=(I-100000)*0.05+100000*0.1
case 3
z3=(I-200000)*0.02+(200000-100000)*0.05+100000*0.1
case 4
z4=(I-400000)*0.01+(400000-200000)*0.02+(200000-100000)*0.05+100000*0.1
end
结果:
n =
2.5000
n =
3
z3 =
16000
第9题:
s=1;t=2;sum=0;
x=t/s;
sum=sum+x;
for i=1:15
z=t;t=s+t;s=z;
x=t/s;
sum=sum+x;
end
sum
结果:
sum =
26.1881
总结:
本次实验实在李老师的指导下完成了,非常感谢李老师的精心指导,让我学会了很多MATLAB 的专业知识以及掌握了一定的技能。 本次实验着重训练我们的学以致用,举一反三的能力。学会把学过的只是联系起来解决新的问题,MATALAB 与C 语言有着相似又不同的地方,由于MATALAN 没有键盘输入的功能,所以不能直接定义一个变量然后通过键盘输入来实现函数的运算,不过也可以通过fun 函数来实现其功能。不过MATLAB 确实比C 语言更加的强大与随意,就算出错软件会自动提醒我们哪儿出了问题,这对于在编程过程中寻找出错的问题是非常方便的,也方便我们修改编写的程序,非常灵活与方便。MATLAB 中还包含大量可以直接调用的函数,这对于我们编程也是非常方便的。用一句非常文艺的话说,MATLAB 给了我一种相见恨晚的感觉,它强大的功能深深的吸引了我,我希望在以后的学习中,我能学到更多更深入的MATLAB 的专业知识,并且用我学过的知识解决我遇到的难题。
每次做完实验,都让我增加了对MATLAB 的喜爱,我想它不仅是一个强大的数学工具,它也是我们的好朋友,开发我们脑力的好朋友,通过MATLAB 知识的学习,我们的逻辑推理能力得到了锻炼,得到了提高。
MATLAB 程序设计-实验报告3-4
姓名: 学号:[**************]
年级:2011 专业: 物理学
实验目的:
1、 掌握MATLAB 绘图方法
2、 掌握MATLAB m文件编写、编译方法
实验内容:
1、 P146-147,习题3、4、5、7、8、9、10 第3题: x=1:.1:10;
y=exp(x+5)+x.^3; figure(1)
plot(x,y,'r-' ),grid on
legend('\ity=e^(x+5)+x^3') title('y=exp(x+5)+x^3') xlabel('x' ),ylabel('y'
)
第4题:
[X,Y]=meshgrid(-2:.1:2); Z=peaks(X,Y); meshc(X,Y,Z);
axis([-3 3 -3 3 -10 10]) title(' 多峰函数的网格曲线' )
x=0:pi/50:2*pi;
y1=sin(x),y2=cos(x); figure(1)
plot(x,y1,'k-' ,x,y2, 'r.' ),grid on
text(pi,0.05,'\leftarrow sin(\alpha)')
text(pi/4-0.05,0.05,'cos(\alpha)\rightarrow') title('sin(\alpha)和cos(\alpha)')
xlabel('\alpha'),ylabel('sin(\alpha)和cos(\alpha)')
第5题:
x=-3:.1:3; y1=2*x+5;
y2=x.^2-3*x+1; figure(1)
subplot(1,2,1)
plot(x,y1,'k-' ),grid on axis([-3 3 -2 2]) subplot(1,2,2)
plot(x,y2,'r.' ),grid on axis([-3 3 -2 2])
第7题:
x=[190 33 45 42 45]; explode=[0 1 0 0 0]; figure(1) colormap hsv
pie(x,explode,{' 生活费' , ' 资料费' , ' 电话费' , ' 购买衣服' , ' 其他费用' }) title(' 饼图' )
第8题:
(1)三维曲线:
x=linspace(0,1,100);
y=x./2;
z=(x-2).^2+(y-1.2).^2; plot3(x,y,z),grid on view(-25,30),box off
(2)网格曲线:
x=linspace(0,1,100); y=x./2;
[X,Y]=meshgrid(x,y); Z=(X-2).^2+(Y-1.2).^2; mesh(X,Y,Z)
view(-25,30),box off
第9题:
x=linspace(0,1,100); y=x./2;
[X,Y]=meshgrid(x,y); Z=X.^2+Y.^2+sin(X*Y); surfc(X,Y,Z),grid on title(' 曲面及等高示意图' ) view(-25,30)
第10题:
(1)半径为一的球 sphere
axis
equal
(2)以(1,2,3)为中心,以(2,4,3)为半径的椭圆 [x,y,z]=ellipsoid(1,2,3,2,4,3,30) surf(x,y,z),grid on figure(1)
(3)复杂曲面图 t=0:pi/10:2*pi; figure(1)
[X,Y,Z]=cylinder(2+cos(t)) surf(X,Y,Z),axis
square
2、 P184-185,习题5、6、7、8、9 第5题:
x1=-3:.01:-1;
y=(-x1.^2-4*x1-3)/2; figure(1) plot(x1,y) hold on x2=-1:.01:1; y=(-x2.^2+1) plot(x2,y) hold on x3=1:.01:3;
y=(-x3.^2+4*x3-3)/2; plot(x3,y)
第6题:
ch=menu('selection' , '1' , '2' , '3' , '4' ) switch ch case 1
r1=10-20*rand(2,3) case 2
r2=5-10*rand(2,3) case 3
r3=1-2*rand(2,3)
case 4
r4=randn(2,3) end 结果:
ch =
3
r3 =
-0.6294 0.7460 -0.2647 -0.8116 -0.8268 0.8049 第7题:
x=zeros(4,6);
x(1,:)=[87 88 76 90 89 87] x(2,:)=[45 67 90 78 87 98] x(3,:)=[78 90 89 76 89 90] x(4,:)=[98 78 67 98 75 78] y=[2 3 2 4 2.5 1] z1=x(1,:).*y sum(z1)/14.5 z2=x(2,:).*y sum(z2)./14.5 z3=x(3,:).*y sum(z3)/14.5 z4=x(4,:).*y sum(z4)/14.5
结果:z1 =
174.0000 264.0000 152.0000 360.0000
222.5000 87.0000
ans =
86.8621
z2 =
90.0000 201.0000 180.0000 312.0000 217.5000 98.0000
ans =
75.7586
z3 =
156.0000 270.0000
ans =
84.1724
z4 =
196.0000 234.0000
ans =
84.2414
第8题:
I=250000;
n=250000/100000
if (n>4)
n=4
elseif (n>2)
n=3
elseif (n>1)
n=2
else
n=1 178.0000 134.0000 304.0000 392.0000 222.5000 187.5000 90.0000 78.0000
end
switch n
case 1
z1=I*0.1
case 2
z2=(I-100000)*0.05+100000*0.1
case 3
z3=(I-200000)*0.02+(200000-100000)*0.05+100000*0.1
case 4
z4=(I-400000)*0.01+(400000-200000)*0.02+(200000-100000)*0.05+100000*0.1
end
结果:
n =
2.5000
n =
3
z3 =
16000
第9题:
s=1;t=2;sum=0;
x=t/s;
sum=sum+x;
for i=1:15
z=t;t=s+t;s=z;
x=t/s;
sum=sum+x;
end
sum
结果:
sum =
26.1881
总结:
本次实验实在李老师的指导下完成了,非常感谢李老师的精心指导,让我学会了很多MATLAB 的专业知识以及掌握了一定的技能。 本次实验着重训练我们的学以致用,举一反三的能力。学会把学过的只是联系起来解决新的问题,MATALAB 与C 语言有着相似又不同的地方,由于MATALAN 没有键盘输入的功能,所以不能直接定义一个变量然后通过键盘输入来实现函数的运算,不过也可以通过fun 函数来实现其功能。不过MATLAB 确实比C 语言更加的强大与随意,就算出错软件会自动提醒我们哪儿出了问题,这对于在编程过程中寻找出错的问题是非常方便的,也方便我们修改编写的程序,非常灵活与方便。MATLAB 中还包含大量可以直接调用的函数,这对于我们编程也是非常方便的。用一句非常文艺的话说,MATLAB 给了我一种相见恨晚的感觉,它强大的功能深深的吸引了我,我希望在以后的学习中,我能学到更多更深入的MATLAB 的专业知识,并且用我学过的知识解决我遇到的难题。
每次做完实验,都让我增加了对MATLAB 的喜爱,我想它不仅是一个强大的数学工具,它也是我们的好朋友,开发我们脑力的好朋友,通过MATLAB 知识的学习,我们的逻辑推理能力得到了锻炼,得到了提高。