当前位置:文档之家› MATLAB应用实验指导书结果

MATLAB应用实验指导书结果

MATLAB应用实验指导书结果
MATLAB应用实验指导书结果

M A T L A B应用实验指

导书结果

公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

???????????????????????? MATLAB语言实验指导书????????????????????????

中国矿业大学信息与电气工程学院

2014年3月

实验一 MATLAB 工作环境熟悉及基本运算

一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简

单的运算。掌握基本的矩阵运算及常用的函数。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面

(Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤:

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

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

算结果。

(1)(365-52?2-70)?3 = (2)area=pi*^2 =

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

()

2

3

2y x y x z -== 576 (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用

的字节数。

m1=????

?

????

???11514412679810115133216 执行以下命令 >>m1( 2 , 3 )=10

>>m1( 11 )=6

>>m1( : , 3 )= 3 10 6 15

>>m1( 2 : 3 , 1 : 3 )=[ 5 11 10;9 7 6]

>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1)=34 (5)执行命令>>help abs

查看函数abs 的用法及用途,计算abs( 3 + 4i )=5 (6)执行命令

>>x=0::6*pi; >>y=5*sin(x); >>plot(x,y)

(7)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。 3、矩阵运算

??????=654321a ??????-=531142b ?????

?????-=201c ????

??????=063258741d (1)下列运算是否合法,为什么如合法,结果是多少

①. result1 = a'=[1 4;2 5;3 6] ②. result2 = a * b (维数不同) ③. result3 = a + b=[3 6 2;5 8 11] ④. result4 = b * d=[31 22 22;40 49 13]

⑤. result5 = [b ; c' ] * d=[31 22 22;40 49 13;-5 -8 7]

⑥. result6 = a . * b=[2 8 -3;4 15 30] ⑦. result7 = a . / b=[ ; ] ⑧. result8 = a . * c=(维数不同) ⑨. result9 = a . \ b=[ ; ]

⑩. result10 = a . ^2=[1 4 9;16 25 36 ] ?. result11 = a ^2=

?. result11 = 2 . ^ a=[2 4 8;16 32 64]

(2)用MATLAB 求下面的的方程组。

????

??

?=-++=--=-++=++5

6533332821

w z y x w y x w z y x z y x =[1, 5 -5 -2]’ X=inv(A)*b

(3)已知????

?

????

???----=1323151122231592127

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

(2)求矩阵A 的行列式(determinant)=12568 (3)求矩阵A 的逆(inverse)=[

]

(4)求矩阵A 的特征值及特征向量(eigenvalue and eigenvector) =[

+

-

]

4、关系运算与逻辑运算

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

(1) r1 = a > b=1

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

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

(4) r4 = ~b | c=0

四、思考题

1、以下变量名是否合法为什么

(1)x2

(2)3col

(3)_row

(4)for

定义变量

变量名、函数名对字母大小写敏感。MAY、may表示不同变量。

变量名第一个字母必须是英文字母,且不能超过65个字符。

变量名中不得包含空格、标点但可包含下连符,如my_var 是合法的变量名。

2、求以下变量的值,并在MATLAB中验证。(1)a = 1 : 2 : 5 ; a= 1 3 5

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

b=[ 1 1 1

3 3 3

5 5 5]

(3)c = a + b ( 2 , : ) C= 4 6 8

实验二 MATLAB 数值运算与作图

一、实验目的:掌握MATLAB 常用的数值运算函数。 二、实验内容:

1、求代数方程012927432

345=+++++x x x x x 的5个根,并将其用星号

(*)标记在复平面图上。(用roots 和plot 函数)。

x =

+ - + -

A=[3,4,7,2,9,12]; x=roots(A) plot(x,'*'); grid;

2、求代数方程015

=-x 的5个根,并将其用星号(*)标记在复平面图

上。(用roots 和plot 函数)。

A=[1,0,0,0,0,-1]; x=roots(A) plot(x,'*'); grid;

x = + - + -

3、求下面函数在[,4]区间内的过零点。(用fzero 函) x = fzero(fun,x0) %查找fun 函数在x0附近的零点

x x x x x x x f 1)cos(5)sin(2)(23+

+-=

%估计零点

fplot('x^3+1/x',[,4]);

hold on;

fplot('2*x^2*sin(x)-5*x*cos(x)',[,4]);

hold off;

[m,n]=ginput(2)

m =

n =

y1=fzero('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x', y1 =

y2=fzero('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x', y2 =

%建立函数

function y=f(x)

y=x^3-2*x^2*sin(x)+5*x*cos(x)+1/x;

%调用函数

>> y1=fzero('fz',

y1 =

>> y2=fzero('fz',

y2 =

4、实验数据处理(选做)

已知某压力传感器的测试数据如下表

p 为压力值,u 为电压值,试用多项式d cp bp ap p u +++=2

3)(来拟

合其特性函数,求出a,b,c,d ,并把拟合曲线和各个测试数据点画在同一幅图上。

调用方法:polyfit(x,y,n)。用多项式求过已知点的表达式,其中x 为

源数据点对应的横坐标,可为行向量、矩阵,y 为源数据点对应的纵坐标,可为行向量、矩阵,n 为你要拟合的阶数 用法:linspace(x1,x2,N)

功能:linspace 是Matlab 中的均分计算指令,用于产生x1,x2之间的N 点行线性的矢量。其中x1、x2、N 分别为起始值、终止值、元素个数。若默认N ,默认点数为100。 y = polyval(p,x)

返回n 次多项式p 在x 处的值。输入变量p 是一个长度为n+1的向量,其元素为按降幂排列的多项式系数。 y=p1*x^n+p2*x^(n-1)+...+pn*x+p(n+1)

>> p=[,,,,,,,,,,];

u=[10,11,13,14,17,18,22,24,29,34,39]; x=polyfit(p,u,3) %得多项式系数 t=linspace(0,10,100); y=polyval(x,t); %求多项式得值 plot(p,u,'*',t,y,'r') %画拟和曲线

5、三维空间曲线绘制 z=0::4*pi; x=cos(z); y=sin(z); plot3(x,y,z)

X

三维空间曲线

Y

Z

>> z=0::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;

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

10

102

2y x z +-=

X

立体网状图

Y

Z

>>x=-3::3;

[x,y]=meshgrid(x); z=-x.^2/10+y.^2/10; mesh(x,y,z);

xlabel('X'),ylabel('Y'),zlabel('Z'); title('立体网状图'); (2)

>>x=-3::3;

[x,y]=meshgrid(x); z=-x.^2/10+y.^2/10; surf(x,y,z);

xlabel('X'),ylabel('Y'),zlabel('Z'); title('立体曲面图');

X

立体曲面图

Y

Z

实验三 MATLAB程序设计

一、实验目的:掌握MATLAB程序编辑、运行及调试方法。

二、实验内容:

1、熟悉MATLAB的m文件

启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程

序,注意文件名最好用英文字符。点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。

注:数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:2?1

3?10?5?16?8?4?2?1

6?3?10?5?16?8?4?2?1

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

%classic "3n+1" problem from number theory.

while 1

n=input('Enter n,negative quits:');

if n<=0

break

end

a=n;

while n>1

if rem(n,2)==0 n=n/2; else

n=3*n+1; end a=[a,n]; end a end a = 1 a = 2 1

a = 3 10 5 16 8 4 2 1 a = 5 16 8 4 2 1

a = 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 2.循环语句编程

(1)根据

22222

13121116n

++++=

π,求π的近似值。当n=100、1000、10000时,结果是多少 , , while 1

k=input('Enter k,negative quits:'); x=0; for m=1:k

x=x+1/m^2

end

x =sqrt(6*x)

end

(2)用for循环和while循环语句求 1!+2!+…+10!的值.

x =

4037913

k=10;

x=0;

n=1;

for m=1:k

n=m*n*1 ;

x=x+n;

end

x

k=3;

x=0;

n=1;

m=1;

while m<=k

n=m*n*1 ;

x=x+n;

m=m+1;

end

x

3.条件语句编程

试用if或 switch 语句完成卷面成绩 score 的转换:

(1) score ≥90 分,优;

(2) 90>score ≥80 分,良;

(3) 80>score≥70 分,中;

(4) 70>score ≥60 分,及格;

(5) 60<score,不及格。

while 1

k=input('Enter k,negative quits:');

switch fix(k/10)

case {9,10} disp('grade is优')

case {8} disp('grade is良')

case {7} disp('grade is中')

case {6} disp('grade is及格') otherwise disp('grade is不及格')

相关主题
文本预览
相关文档 最新文档