Matlab 实验指导书.docx

上传人:b****8 文档编号:29356162 上传时间:2023-07-22 格式:DOCX 页数:28 大小:580.11KB
下载 相关 举报
Matlab 实验指导书.docx_第1页
第1页 / 共28页
Matlab 实验指导书.docx_第2页
第2页 / 共28页
Matlab 实验指导书.docx_第3页
第3页 / 共28页
Matlab 实验指导书.docx_第4页
第4页 / 共28页
Matlab 实验指导书.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

Matlab 实验指导书.docx

《Matlab 实验指导书.docx》由会员分享,可在线阅读,更多相关《Matlab 实验指导书.docx(28页珍藏版)》请在冰豆网上搜索。

Matlab 实验指导书.docx

Matlab实验指导书

Matlab实验指导书

 

实验一MATLAB工作环境熟悉及简单命令的执行

 

一、实验目的:

熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。

二、实验内容:

MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单(Menu)、工具条(Toolbar)、命令窗口(CommandWindow)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。

三、实验步骤:

1、启动MATLAB,熟悉MATLAB的桌面。

2、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。

(1)(365-522-70)3

答案:

>>(365-52*2-70)/3

ans=

63.6667

(2)>>area=pi*2.5^2

答案:

area=pi*2.5^2

area=

19.6350

(3)已知x=3,y=4,在MATLAB中求z:

答案:

>>x=3;

>>y=4;

>>z=(x^2*y^3)/(x-y)^2

z=

576

(4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。

m1=

执行以下命令

>>m1(2,3)

>>m1(11)

>>m1(:

3)

>>m1(2:

3,1:

3)

>>m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)

答案:

>>m1(2,3)

ans=

10

>>m1(11)

ans=

6

>>m1(:

3)

ans=

3

10

6

15

>>m1(2:

3,1:

3)

ans=

51110

976

>>m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)

ans=

34

(5)执行命令>>helpabs

查看函数abs的用法及用途,计算abs(3+4i)

>>abs(3+4i)

ans=

5

(6)执行命令

>>x=0:

0.1:

6*pi;

>>y=5*sin(x);

>>plot(x,y)

答案

>>x=0:

0.1:

6*pi;

>>y=5*sin(x);

>>plot(x,y)

(6)运行MATLAB的演示程序,>>demo,以便对MATLAB有一个总体了解。

四、思考题

1、以下变量名是否合法?

为什么?

(1)x2

(2)3col

(3)_row

(4)for

答案

(1)>>x2=0

x2=

0

合法

(2)不合法

(3)不合法

(4)不合法

2、求以下变量的值,并在MATLAB中验证。

(1)a=1:

2:

5;

(2)b=[a'a'a'];

(3)c=a+b(2,:

答案

>>a=1:

2:

5;

>>b=[a'a'a'];

>>c=a+b(2,:

c=

468

实验二MATLAB语言矩阵运算

一、实验目的:

掌握基本的矩阵运算及常用的函数。

二、实验内容:

1、下列运算是否合法,为什么?

如合法,结果是多少?

(1)result1=a'

(2)result2=a*b

(3)result3=a+b

(4)result4=b*d

(5)result5=[b;c']*d

(6)result6=a.*b

(7)result7=a./b

(8)result8=a.*c

(9)result9=a.\b

(10)result10=a.^2

(11)result11=a^2

(12)result11=2.^a

答案

(1)result1=

14

25

36

(2)不合法

(3)result3=

362

5811

(4)result4=

312222

404913

(5)result5=

312222

404913

-5-87

(6)result6=

28-3

41530

(7)result7=

0.500000000000000.50000000000000-3.00000000000000

4.000000000000001.666666666666671.20000000000000

(8)不合法

(9)result9=

2.000000000000002.00000000000000-0.33333333333333

0.250000000000000.600000000000000.83333333333333

(10)result10=

149

162536

(11)不合法

(12)result11=

248

163264

 

2、用MATLAB求下面的的方程组。

(1)

答案

>>A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13]

A=

721-2

9153-2

-2-2115

13213

>>B=[4;7;-1;0]

B=

4

7

-1

0

>>X=inv(A)*B

X=

0.49793125397836

0.14449395289624

0.06285805219605

.0813********

(2)

答案

>>A=[1,1,1,0;1,2,1,-1;2,-1,0,-3;3,3,5,-6]

A=

1110

121-1

2-10-3

335-6

>>B=[1;8;3;5]

B=

1

8

3

5

>>X=inv(A)*B

X=

1.00000000000000

5.00000000000000

-5.00000000000000

-2.00000000000000

3、已知

(1)求矩阵A的秩(rank)

(2)求矩阵A的行列式(determinant)

(3)求矩阵A的逆(inverse)

(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)

答案

(1)rank(a)

ans=

4

(2)det(a)

ans=

12568

(3)inv(a)

ans=

0.17441120305538-0.03031508593253-0.012492043284530.02697326543603

-0.105028644175680.07893061744112-0.012094207511140.00063653723743

0.008274984086570.017266072565250.09110439210694.0311********

0.00954805856143-0.01853914704010-0.01026416295353.0794********

(4)[V,D]=eig(a)

V=

-0.762912867358420.09191514382113+0.06402192916720i0.09191514382113-0.06402192916720i-0.02994302517216

0.622344337345540.60869676339167+0.02757207496609i0.60869676339167-0.02757207496609i0.26373648270307

0.08068079671255-0.74742565682047-0.747425656820470.64344846716961

-0.155377255847590.03419444783041-0.23741621070323i0.03419444783041+0.23741621070323i0.71799759960046

 

D=

4.85542484194312000

012.64598520809016+1.83331820265823i00

0012.64598520809016-1.83331820265823i0

00015.85260474187659

4、关系运算与逻辑运算

已知a=20,b=-2,c=0,d=1

(1)r1=a>b

(2)r2=a>b&c>d

(3)r3=a==b*(-10)

(4)r4=~b|c

答案

(1)r1=

1

(2)r2=

0

(3)r3=

1

(4)r4=

0

三、思考题

求y=?

(用formatlong查看y的值)

y=0;

forn=-10:

10

y=y+2^n;

end

y

y=

2.047999023437500e+003

实验三程序的编辑及调试

一、实验目的:

掌握MATLAB程序编辑、运行及调试方法。

二、实验内容:

1、启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。

点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。

注:

数论中一个有趣的题目:

任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:

21

3105168421

63105168421

运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

%classic"3n+1"problemfromnumbertheory.

while1

n=input('Entern,negativequits:

');

ifn<=0

break

end

a=n;

whilen>1

ifrem(n,2)==0

n=n/2;

else

n=3*n+1;

end

a=[a,n];

end

a

end

答案

Entern,negativequits:

1

a=

1

Entern,negativequits:

2

a=

21

Entern,negativequits:

3

a=

3105168421

Entern,negativequits:

5

a=

5168421

Entern,negativequits:

7

a=

7221134175226134020105168421

2、编程求满足

的最小m值。

答案

s=0;

form=1:

20

s=s+2^m;

if(s>10000)

break;

end

end

m

输出结果

m=

13

三、思考题

用对分法求解方程

在[0,1]内的解,并验证,在程序中统计出对分次数。

提示:

先将原方程转化成

的形式。

对分法的基本思想是:

一个一元方程f(x)=0,若f(x1)*f(x2)<0,则在[x1,x2]区间内有实数解。

取该区间的中点xm=(x1+x2)/2,判定f(x1)和f(x2)二者中哪一个与f(xm)异号,若f(x1)*f(xm)<0,则解存在的区间缩小为[x1,xm],否则解存在的区间缩小为[xm,x2]。

重复这样的步骤,直到区间的长度小于一个可以接受的小数(比如1e-10),则认为中点即是原方程的解。

;

实验四函数的编写及调试

一、实验目的:

掌握MATLAB函数的编写及调试方法。

二、实验内容:

1、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。

function[y]=myfun1(x)

选择一些数据测试你编写的函数。

x=input('Enterthexcoefficient:

');

ifx<=0;

fun=sin(x);

elseifx>0&x<=3;

fun=x;

elsex>3

fun=-x+6;

end

disp(['Thevlaueofthefuntionis:

',num2str(fun)]);

Enterthexcoefficient:

-2

Thevlaueofthefuntionis:

-0.9093

Enterthexcoefficient:

2

Thevlaueofthefuntionis:

2

Enterthexcoefficient:

8

Thevlaueofthefuntionis:

-2

2、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。

function[m_x,max_x,min_x,rms_x]=myfun2(x)

方均根值(RootMeanSquare)的计算公式为:

用下面数据测试你写的函数:

(1)x=sin(0:

0.01:

6*pi)

(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。

functiony=myfun2(x)

x=input('x=');

sum_x=sum(x);

[m,n]=size(x);

m_x=sum_x/n;

max_x=max(x);

min_x=min(x);

rms_x=sqrt(sum(x.^2)/n);

disp(['m_x=',num2str(m_x)]);

disp(['max_x=',num2str(max_x)]);

disp(['min_x=',num2str(min_x)]);

disp(['rms_x=',num2str(rms_x)]);

>>x=sin(0:

0.01:

6*pi)

m_x=-1.1256e-007

max_x=1

min_x=-1

rms_x=0.7071

>>x=rand(1,200)

m_x=0.4969

max_x=0.9943

min_x=0.0098613

rms_x=0.57074

3、编写一个函数,给出一个向量

,生成如下范德蒙矩阵。

function[v]=myvander(x)

例如:

>>v=myvander([2345])

得v=

生成一些数据测试你写的函数。

x=input('x=');

v1=vander(x);

v2=v1';

v=flipud(v2);

disp(['vander=']);

disp(v);

输出结果

>>x=(2:

5)

vander=

1111

2345

491625

82764125

三、思考题

编写程序,用如下迭代公式求

,a的值分别为:

3,17,113。

迭代的终止条件为

,迭代初值

迭代次数不超过100次。

分别对迭代结果和准确值进行比较,并统计迭代次数。

a=input('a=');

x=1.0;

fork=1:

100

m=x;

x=x/2+a/(2*x);

ifabs(x-m)<=10^-5

break

end

end

x

n=k

s=(x-sqrt(a))

if(s<=10^-5)

disp('right');

else

disp('error');

end

输出结果

>>a=3

x=

1.73205080756888

n=

5

s=

0

right

>>a=17

x=

4.12310562561781

n=

6

s=

1.447730824111204e-013

right

>>a=113

x=

10.63014581273465

n=

8

s=

0

right

实验五MATLAB的绘图

1、在同一坐标系下绘制下面三个函数在t[0,4]的图象。

t=linspace(0,4*pi,200);

y1=t;

y2=sqrt(t);

y3=4*pi*exp(-0.1*t).*sin(t);

plot(t,y1,'b',t,y2,'g',t,y3,'r')

2、编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图象。

x=linspace(-6,6,100);

y=[];

forx0=x

ifx0<=0

y=[y,sin(x0)];

elseifx0<=3

y=[y,x0];

else

y=[y,-x0+6];

end

end

plot(x,y);

axis([-77-24]);

title('分段函数曲线');

text(-3*pi/2,1,'y=sin(x)');

text(2,2,'y=x');

text(4,2,'y=-x+6')

3、用compass函数画下面相量图

ua=1;ub=cos(-2*pi/3)+sin(-2*pi/3)*i;uc=cos(2*pi/3)+sin(2*pi/3)*i;

compass([ua,ub,uc,ua-ub,ub-uc,uc-ua])

ua=1;

ub=cos(-2*pi/3)+sin(-2*pi/3)*i;

uc=cos(2*pi/3)+sin(2*pi/3)*i;

compass([ua,ub,uc,ua-ub,ub-uc,uc-ua])

title('向量图');

4、三维空间曲线绘制

z=0:

0.1:

4*pi;

x=cos(z);

y=sin(z);

plot3(x,y,z)

 

z=0:

0.1:

4*pi;

x=cos(z);

y=sin(z);

plot3(x,y,z,'rp');

title('三维空间曲线');

text(0,0,0,'origin');

xlabel('X'),ylabel('Y'),zlabel('Z');

grid

5、用mesh或surf函数,绘制下面方程所表示的三维空间曲面,x和y的取值范围设为[-3,3]。

答案

x=-3:

0.1:

3;

[x,y]=meshgrid(x);

z=-x.^2/10+y.^2/10;

mesh(x,y,z);

xlabel('X'),ylabel('Y'),zlabel('Z');

title('立体网状图');

x=-3:

0.1:

3;

[x,y]=meshgrid(x);

z=-x.^2/10+y.^2/10;

surf(x,y,z);

xlabel('X'),ylabel('Y'),zlabel('Z');

title('立体曲面图');

 

三、思考题

在同一坐标系下,用不同颜色和线型绘制以下两个函数在t[-2,2]范围内的图象。

 

t=-2*pi:

pi/100:

2*pi;

y1=2.^(0.5*abs(t));

y2=2*exp(-0.2*t);

plot(t,y1,'g');

holdon;

plot(t,y2,'r');

legend('曲线y1','曲线y2');

holdoff;

grid;

 

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

当前位置:首页 > PPT模板 > 卡通动漫

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

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