实验三MATLAB的基本语法二.docx

上传人:b****5 文档编号:6012905 上传时间:2023-01-03 格式:DOCX 页数:17 大小:269.25KB
下载 相关 举报
实验三MATLAB的基本语法二.docx_第1页
第1页 / 共17页
实验三MATLAB的基本语法二.docx_第2页
第2页 / 共17页
实验三MATLAB的基本语法二.docx_第3页
第3页 / 共17页
实验三MATLAB的基本语法二.docx_第4页
第4页 / 共17页
实验三MATLAB的基本语法二.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验三MATLAB的基本语法二.docx

《实验三MATLAB的基本语法二.docx》由会员分享,可在线阅读,更多相关《实验三MATLAB的基本语法二.docx(17页珍藏版)》请在冰豆网上搜索。

实验三MATLAB的基本语法二.docx

实验三MATLAB的基本语法二

实验三:

MATLAB的基本语法实验

(二)

一、实验目的

1、掌握基本绘图方法;

2、掌握M文件的编写;

二、实验仪器

1、计算机

2、MATLAB软件环境

三、实验内容

1、画出课本图2-4至2-7、图2-10、2-12至2-14;练习例题2-6-1/2-6-2以及函数文件mean.m/logspace.m/humps.m;

2、利用plot()将函数:

y=x,y=sin(x),y=x+sin(x)画在同一画面上;

3、画函数y=sin(x)图。

要求:

用subplot()将画面分成四个,并且绘制的形式不同;

4、利用plot3()画空间曲线:

x=sin(t),y=cos(t),z=cos(2t);

5、分别用mesh和surf画空间曲面:

z=x*exp(-x*x-y*y);

6、编写主程序文件:

计算1+2+…+n<2000时的最大n值;

7、编写函数文件:

计算数列的和、均值。

四、实验过程

1、画出课本图2-4至2-7、图2-10、2-12至2-14;练习例题2-6-1/2-6-2以及函数文件mean.m/logspace.m/humps.m;

课本2-4过程及图示:

输入如下指令:

>>clear

>>t=0:

0.5:

4*pi

t=

Columns1through12

00.50001.00001.50002.00002.50003.00003.50004.00004.50005.00005.5000

Columns13through24

6.00006.50007.00007.50008.00008.50009.00009.500010.000010.500011.000011.5000

Columns25through26

12.000012.5000

>>y=exp(-0.1*t).*sin(t);

>>y1=exp(-0.1*t).*sin(t+1);

>>plot(t,y),holdon

>>plot(t,y1,':

'),holdon

>>

得到的图形窗口为:

图2-4两根曲线画在同一图上

课本2-5过程及图示:

程序如下

>>clear

>>t=0:

.2:

2*pi;

>>y=exp(-0.1*t).*sin(t);

>>y2=exp(-0.5*t).*sin(5*t+1);

>>plot(t,y,'+g',t,y2,':

r')

>>title('线型、点型和颜色')

>>xlabel('时间'),ylabel('Y')

>>

图2-5两组长度不同的【t,y】画在同一图上

课本2-6过程及图示:

程序如下

>>clear

>>t=0:

.5:

4*pi;

>>t2=0:

.2:

2*pi;

>>y=exp(-0.1*t).*sin(t);

>>y2=exp(-0.5*t2).*sin(5*t2+1);

>>y3=5*y2;

>>plotyy(t,y,t2,y3)

>>grid

>>gtext('t,t2')

>>gtext('y'),gtext('y3')

>>

>>

图2-6双纵坐标绘图

课本2-7过程及图示:

程序如下

>>clear

>>t=0:

.5:

4*pi;

>>y=exp(-0.1*t).*sin(t);

>>subplot(2,2,1),stem(t,y)

>>title('stem(t,y)'),pause

>>subplot(2,2,2),stairs(t,y)

>>title('stairs(t,y)'),pause

>>subplot(2,2,3),bar(t,y)

>>title('bar(t,y)'),pause

>>subplot(2,2,4),fill(t,y,'r')

>>title('fill(t,y,''r'')')

图2-7同一函数的几种不同的绘制形式

课本2-10过程及图示:

程序如下

>>clear

>>z=0:

0.1:

4*pi;

>>x=cos(z);

>>y=sin(z);

>>plot3(x,y,z)

>>

图2-10空间螺旋线

课本2-12、13过程及图示:

程序如下

>>clear

>>x=-8:

0.5:

8;

>>y=x';

>>X=ones(size(y))*x;Y=y*ones(size(x));

>>R=sqrt(X.*Y+Y.*X);

>>z=sin(R)./R;

Warning:

Dividebyzero.

(Type"warningoffMATLAB:

divideByZero"tosuppressthiswarning.)

>>mesh(z),pause

>>R=sqrt(X.*X+Y.*Y)+eps;z=sin(R)./R;figure

(1),mesh(z)

>>R=abs(X)+abs(Y)+eps;z1=sin(R)./R;figure

(2),surf(z1)

>>

图2-12z=sin(R)./(R)的三维曲面图

图2-13当R取一范数时z=sin(R)./(R)的三维曲面图

课本2-14过程及图示:

程序如下

>>clear

>>[X,Y]=meshgrid(-8:

0.5:

8,-8:

0.5:

8);

>>subplot(2,2,1),R=sqrt(X.^2+Y.*Y);z=sin(R)./(R);meshc(z),pause

Warning:

Dividebyzero.

(Type"warningoffMATLAB:

divideByZero"tosuppressthiswarning.)

>>title('meshc(z),shadingflat'),shadingflat

>>subplot(2,2,2),R=sqrt(X.^2+Y.*Y)+eps;z=sin(R)./(R);meshz(z),pause

>>title('meshz(z),shadinginterp'),shadinginterp

>>subplot(2,2,3),R=abs(X)+abs(Y)+eps;z1=sin(R)./(R);surfc(z1),pause

>>title('meshc(z1),shadingflat'),shadingflat,%colormap(gray)

>>subplot(2,2,4),surfl(z1),view(20,0)

>>title('surfl(z1),view(20,0)')

>>

图2-14mesh和surf命令的其它形式

课本2-6-1及2-6-2程序:

程序如下

%求fibonacci.m文件的程序

clear,closeall

R=input('输入fibonacci数的最大范围R='),f=[11];i=1;

whilef(i)+f(i+1)

end

f,plot(f)

%求素数prime.m文件的程序

disp('求素数(primenumber)的程序'),pause

N=input('输入素数的最大范围N='),x=2:

N;

foru=2:

sqrt(N)

n=find(rem(x,u)==0&x~=u);

x(n)=[];

end,x

panse,x=rand(4,4),

pause,mean(x)

>>

%mean.m文件的程序

functiony=mean(x,dim)%函数定义行

ifnargin==1,%函数主体

dim=min(find(size(x)~=1));

ifisempty(dim),dim=1;end

y=sum(x)/size(x,dim);

else

y=sum(x,dim)/size(x,dim);

end

>>

%logspace.m文件的程序

functiony=logspace(a1,a2,n)

%logspace对数的均分数组

%logspace(a1,a2)在10^a1与10^a2之间生成长度为50的对数数组

%如果a2为pi,则这些点在10^a1和pi之间

%logspace(a1,a2,n)的数组长度为n

ifnargin==2%输入变量分析及n的默认值设置

n=50;

end;

ifa2==pi%a2为pi时的设置

a2=log10(pi);

end

y=(10).^[a1+(0:

n-2)*(a2-a1)/(n-1),a2];%将结果返回到输出变量

>>

%humps.m文件的程序

function[out1,out2]=humps(x)

ifnargin==0

x=0:

0.05:

1;

end

y=1./((x-0.3).^2+0.1)+1./((x-0.9).^2+0.4)-6;

ifnargout==2

out1=x;

out2=y;

else

out1=y;

end

2、利用plot()将函数:

y=x,y=sin(x),y=x+sin(x)画在同一画面上的过程如下:

程序如下所示:

>>clear

>>x=0:

0.5:

4*pi;

>>y1=x;y2=sin(x);y3=x+sin(x);

>>plot(x,[y1;y2;y3])

>>title('y=x,y=sin(x),y=x+sin(x)的图像')

>>xlabel('x'),ylabel('Y')

>>gridon

>>gtext('y1'),gtext('y2'),gtext('y3')

>>

图2y=x,y=sin(x),y=x+sin(x)在同一个图上面显示

 

3、画函数y=sin(x)图。

要求:

用subplot()将画面分成四个,并且绘制的形式不同;

程序如下所示:

>>clear

>>x=0:

0.5:

4*pi;

>>y=sin(x);

>>subplot(2,2,1),stem(x,y)

>>title('抽样图stem(x,y)'),pause

>>subplot(2,2,2),stairs(x,y)

>>title('梯形图stair(x,y)'),pause

>>subplot(2,2,3),bar(x,y)

>>title('条状图bar(x,y)'),pause

>>subplot(2,2,4),fill(x,y,'r')

>>title('填充图fill(x,y)')

>>

图3y=sin(x)几种不同形式的图在同一个图上面显示

 

4、利用plot3()画空间曲线:

x=sin(t),y=cos(t),z=cos(2t);

程序如下所示:

>>clear

>>t=0:

0.5:

4*pi;

>>x=sin(t);y=cos(t);z=cos(2*t);

>>plot3(x,y,z)

>>

图4画空间曲线x=sin(t),y=cos(t),z=cos(2*t)的图像

5、分别用mesh和surf画空间曲面:

z=x*exp(-x*x-y*y);

程序如下所示:

>>clear

>>x=-10:

0.5:

10;y=x';

>>X=ones(size(y))*x;Y=y*ones(size(x));

>>z=X.*exp(-X.*X-Y.*Y);

>>subplot(2,1,1),mesh(z)

>>title('mesh(z)网格图')

>>subplot(2,1,2),surf(z)

>>title('surf(z)曲面图')

>>

图5分别用mesh和surf画z=x*exp(-x*x-y*y)的图像

6、编写主程序文件:

计算1+2+…+n<2000时的最大n值;

写出的函数命名为fsumx.m文件,意思是求求和的逆函数,写好后只要在命令窗口(commandwindows)中输入fsumx(2000)即可得到最大的n值。

程序如下所示:

functionfsumx(q)

n=0;p=0;

whilep

n=n+1;

p=p+n;

end

n=n-1

然后再命令窗口中输入以下指令即可得出结果:

>>clear

>>fsumx(2000)

n=

62

>>

7、编写函数文件:

计算数列的和、均值。

等差求和函数如下所示:

命名为shulie_sum.m文件(求等差数列)

说明:

函数中a0是首项,d是公差,n是等差数列的项数。

程序如下所示:

functionshulie_sum(a0,d,n)

p=a0;ax=a0;n=n-1;

whilen>0

n=n-1;

ax=ax+d;

p=p+ax;

end

p

可以试几个例子,知道结果

>>clear

>>shulie_sum(0,1,4)

p=

6

>>shulie_sum(2,3,5)

p=

40

>>

写完求和函数后,很容易就可以写出求均值函数,命名为shulie_junzhi.m

程序如下所示:

functionshulie_junzhi(a0,d,n)

p=a0;ax=a0;m=n;m=m-1;

whilem>0

m=m-1;

ax=ax+d;

p=p+ax;

end

p=p/n

这里很容易验证其正确性,我就不给出运行的实例了。

等比求和函数如下所示:

命名为dengbi_shulie_sum.m文件(求等差数列)

说明:

函数中a0是首项,q是公比,n是等比数列的项数。

程序如下所示:

functiondengbi_shulie_sum(a0,q,n)

p=a0;ax=a0;n=n-1;

whilen>0

n=n-1;

ax=ax*q;

p=p+ax;

end

p

等比数列求平均值函数如下所示:

functiondengbi_shulie_junzhi(a0,q,n)

p=a0;ax=a0;m=n;m=m-1;

whilem>0

m=m-1;

ax=ax*q;

p=p+ax;

end

p=p/n

五、实验的收获、心得、问题、困难和建议

本次实验的题目很适合入门的我们训练,花了大概4、5个小时,终于做完了,感觉就是不很熟练,以后会去多阅读些程序,并且实时运用,多读、多练才能达到融会贯通的境界!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1