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 =