Matlab实验及答案

  • 格式:docx
  • 大小:660.27 KB
  • 文档页数:33

1 实验一、MATLAB基本操作

一、实验目的

2.学习使用图形函数计算器命令funtool及其环境。

3. 学习使用help命令进行帮助

4. 掌握向量与矩阵的创建以及矩阵的基本操作

5. 掌握数组与矩阵的概念

二、 实验内容

熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;掌握数组与矩阵的概念;学会使用help命令进行帮助;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool;

1. 命令窗 口的简单使用

(1) 简单矩阵的输入 (自由创建)

x=[1 3 5;2 4 6]

x =

1 3 5

2 4 6

(2) 求[12+2×(7-4)]÷32的算术运算结果,总结算术运算符先级

[12+2*(7-4)]/3^2

ans =

2

2. 有关向量、矩阵或数组的一些运算

(1) 设A=15;B=20;求C=A+B与c=a+b的区别

A=15;B=20;

>> C=A+B

C =

35

>> c=a+b

Undefined function or variable 'a'.

(2) 设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B,分析原因?

(A*B是两个矩阵相乘,A.*B是对应元素相乘)

A=[1 2 3;4 5 6;7 8 9];

B=[9 8 7;6 5 4;3 2 1];

>> A*B

ans =

30 24 18

2 84 69 54

138 114 90

>> A.*B

ans =

9 16 21

24 25 24

21 16 9

(3) 设a=10,b=20;求i=a/b与j=a\b

a=10;

>> b=20;

>> i=a/b

i =

0.5000

>> j=a\b

j =

2

(4) 设a=[1 -2 3;4 5 -4;5 -6 7]

请设计出程序,分别找出小于0的矩阵元素的线性索引以及行列索引(sub2ind/ind2sub)。(find())

并将其单下标转换成全下标。

clear,clc

a=[1 -2 3;4 5 -4;5 -6 7];

b=find(a<0)

[x,y]=ind2sub(size(a),find(a<0))

Y=sort(a, 1, ‘descend’)

2.对矩阵按列从大到小 排列 (sort())

(5) 在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?

>> A=[1,2;3,4]+i*[5,6;7,8]

A =

3.5000 5.0000

6.5000 8.0000

>> A=[1,2;3,4]+i[5,6;7,8]

A=[1,2;3,4]+i[5,6;7,8]

Error: Unbalanced or misused parentheses or brackets.

3 前面那个是虚数矩阵,后面那个出错

(6) 请写出完成下列计算的指令:

a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?

a^2= 22 16 16

25 26 23

26 24 28

a.^2=

1 4 9

9 16 4

25 4 9

(7) 有一段指令如下,请思考并说明运行结果及其原因

clear

X=[1 2;8 9;3 6];

X( : ) 转化为列向量

>> clear

>> X=[1,2;8,9;3,6];

>> X(:)

ans =

1

8

3

2

9

6

(8) 使用help命令,明白什么是稀疏矩阵sparse( ),并用采用两种方法创建下面的稀疏矩阵(其中一种方法采用help所提供的三元组方法创建稀疏矩阵

(S = SPARSE(i,j,s,m,n)))

2 0 8 0

0 0 0 1

4 0 4 0 0

6 0 0 0

另:

1.B=该稀疏矩阵上下反转

2.该矩阵变维,C为2*8矩阵,D为3*8矩阵,C?D?

方法一:

clear,clc

data=[2 8 1 4 6];

ir=[1 1 2 3 4 ];

jc=[1 3 4 2 1];

s=sparse(ir,jc,data,4,4);

full(s)

方法二:不用三元组法

clear,clc

a=zeros(4,4);

a(1,[1,3])=[2,8];

a(2,4)=1;

a(3,2)=4;

a(4,1)=6;

a

B=flipud(a)

C=reshape(a,2,8)

(9) 学会使用图形函数计算器(funtool 命令),并进行下列计算:

1.求函数的符号导数

y=sin(x);

5

2.求下列函数的符号积分

(1) y=1/sqrt(1-x^2);

3.求两个函数之间的操作

求和

(1) sin(x)+cos(x)

乘积

(1) exp(-x)*sin(x)

(2) (1) sin(x)/cos(x);

6 求复合函数

(1) y=exp(u) u=sin(x)

(10) 总结who,whos,clc,clear命令

三、设计提示

1.初次接触Matlab应该注意函数表达式的文本式描述。

2.在使用图形函数计算器funtool时,注意观察1号和2号窗口中函数的图形。

3. help帮助命令的使用

3. 向量与矩阵的创建

实验二:数组运算及线型方程组的求解

二、实验内容

1.“:”号的用法。用“:”号生成行向量a=[1 2 3 4 5 6 7 8 9 10]、b=[5 3 1 -1 -3 -5];用线性等分命令linspace重新生成上述的a和b向量。另,在100和10000之间用对数等分命令logspace生成10维的向量c。ak=logspace(2,4,10) linspace(1,10,10) linspace(5,-5,6)

2. 已知多项式a(x)=x2+2x+3,b(x)=4x2+5x+6,求a,b的积并微分。

>> a=[1,2,3];b=[4,5,6];polyder(a,b)

ans =

16 39 56 27

>> poly2str(ans,'x')

ans = 16 x^3 + 39 x^2 + 56 x + 27

7 3.生成下列矩阵,取出方框内的数组元素

a(2,2:3)

a(2:4,4)

a(4:5,1:3)

4. 生成一个9×9维的魔方矩阵,提取其中心的3×3维子矩阵M,利用sum函数检验其各行和各列的和是否相等。并且实现上述中心矩阵左旋90°或右旋90°,左右翻转,上下翻转

a=magic(9)

>> b=a(4:6,4:6)

b =

20 31 42

30 41 52

40 51 62

>> sum(b,1)

ans =

90 123 156

>> sum(b,2)

ans =

93

123

153 rot90(b)

8 rot90(b,-1)

fliplr(b)

flipud(b)

5.已知a=[1 2 3;4 5 6;7 8 0],求其特征多项式并求其根、特征值和特征多项式

>> a=[1 2 3;4 5 6;7 8 0]

a =

1 2 3

4 5 6

7 8 0

>> poly(a)

ans =

1.0000 -6.0000 -72.0000 -27.0000

>> poly2sym(ans)

ans =

x^3-6*x^2-72*x-/6710656

>> [d v]=eig(a)

d =

-0.2998 -0.7471 -0.2763

-0.7075 0.6582 -0.3884

-0.6400 -0.0931 0.8791

v =

12.1229 0 0

0 -0.3884 0

0 0 -5.7345

6. 计算二重不定积分 >> syms x y

9 >> f=int(int(x*exp(-x*y),x),y)

>> x=sym('x')

x =

x

>> y=sym('y')

y =

y

>> f=int(int(x*exp(-x*y),x),y)

f =

1/y*exp(-x*y)

8.求解微分方程。

y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')

9.求其解。

12345123451234512345691411568147156294271244161111913103xxxxxxxxxxxxxxxxxxxx

>> a=[6 9 14 -11 5;1 14 -7 -15 -6;-2 1 -7 12 -1;6 11 11 -9 -13]

a =

6 9 14 -11 5

1 14 -7 -15 -6

-2 1 -7 12 -1

6 11 11 -9 -13

>> b=[68 294 -441 103]' b =