MATLAB实验报告74851472.docx
《MATLAB实验报告74851472.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告74851472.docx(45页珍藏版)》请在冰豆网上搜索。
MATLAB实验报告74851472
实验二MATLAB语言基础
一、实验目的
基本掌握MATLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。
了解字符串的操作。
二、实验内容
1.向量的生成与运算;
2.矩阵的创建、引用和运算;
3.多维数组的创建及运算;
4.字符串的操作。
三、实验步骤
1.向量的生成与运算
①向量的生成
向量的生成有三种方法:
直接输入法:
生成行向量、列向量;
冒号表达式法:
变量=初值:
间隔(可正可负):
终值
函数法:
使用linspace线性等分函数,logspace对数等分函数。
格式为:
linspace(初值,终值,个数)
Logspace(初值,终值,个数),初值及终值均为10的次幂。
②向量的运算
A=[12345],b=3:
7,计算两行向量的转置,两行向量人加、减,两列向量的加、减;向量的点积与叉积。
a=[12345];
b=3:
7;
a=
12345
b=
34567
at=a',bt=b'
at=
1
2
3
4
5
bt=
3
4
5
6
7
e1=a+b,e2=a-b
e1=
4681012
e2=
-2-2-2-2-2
f1=at+bt,f2=at-bt
f1=
4
5
6
10
12
f2=
-2
-2
-2
-2
-2
g1=dot(a,b),g2=a*bt
>>g1=dot(a,b),g2=a*bt
g1=
85
g2=
85
g4=a.*b
>>g4=a.*b
g4=
38152435
A=1:
3;B=4:
6;
g3=cross(A,B)
>>g3=cross(a,b)
g3=
-36-3
注意:
g1和g2的结果是否相同,为什么?
g4的结果与g1和g2结果是否一样,为什么?
g1和g2的结果相同,因为两者是同一种运算;g4与g1和g2不相同,因为两者一个是点乘一个是叉乘,运算不一样。
2.矩阵的创建、引用和运算
矩阵是由n×m元素构成的矩阵结构。
行向量和列向量是矩阵的特殊形式。
①矩阵的创建
矩阵的创建可由以下方法进行操作:
直接输入法、抽取法、函数法、拼接法。
具体步骤为:
建立两个矩阵,利用已学过的函数,对此进行所述四种方法进行操作。
a=[123;456];
b=[147
258
369];
a
(1)
>>a
(1)
ans=
1
a(4:
end)
>>a(4:
end)
ans=
536
b(:
1)
>>b(:
1)
ans=
1
2
3
b(:
)
>>b(:
)
ans=
1
2
3
4
5
6
7
8
9
b(5)
>>b(5)
ans=
5
a=fix(rand(3)*100)%建立一个两位有效整的随机矩阵
>>a=fix(rand(3)*100)
a=
954845
23891
607682
b=a(1:
3,2:
3)
>>b=a(1:
3,2:
3)
b=
4845
891
7682
c=a([13],[23])
>>c=a([13],[23])
c=
4845
7682
d=a([13;24])
>>d=a([13;24])
d=
9560
2348
a=ones(3,3)
>>a=ones(3,3)
a=
111
111
111
b=zeros(3)
>>b=zeros(3)
b=
000
000
000
c=eye(3)
>>c=eye(3)
c=
100
010
001
d=magic(3)%建立一个行、列、对角线上的和为一相同的数的魔术矩阵
d=[ab]
>>d=[ab]
d=
111000
111000
111000
f=[a;c]
>>f=[a;c]
f=
111
111
111
100
010
001
②矩阵的运算
矩阵的运算有基本运算(加、减、乘、左除、右除)等,还有矩阵函数运算(求逆inv、秩rank、矩阵的翻转、矩阵的转置)等。
已知
,
求a+b,2*a,2*a-3*b,a*b,b/a,a\b,求a逆矩阵,求矩阵的秩,矩阵的翻转,矩阵的转置。
>>a+b
ans=
02
41
>>2*a
ans=
24
6-2
>>2*a-3*b
ans=
54
3-8
>>a*b
ans=
14
-4-2
>>b/a
ans=
-0.1429-0.2857
1.00000
>>a\b
ans=
0.14290.5714
-0.5714-0.2857
>>inv(a)
ans=
0.14290.2857
0.4286-0.1429
>>rank(a)
ans=
2
>>flipud(a)
ans=
3-1
12
>>a'
ans=
13
2-1
3.多维数组的创建及运算
多维数组的创建与矩阵的创建基本相同;数组的运算除加减操作相同外,其它如乘、左除、右除的运算在运算符前加上小圆点表示,以区分矩阵运算。
特点是两个数组相对应元素进行运算。
已知
,
求a+b,a-b,a.*b,a./b,a.\b
>>a+b
ans=
02
41
>>a-b
ans=
22
2-3
>>a.*b
ans=
-10
3-2
>>a./b
Warning:
Dividebyzero.
ans=
-1.0000Inf
3.0000-0.5000
>>a.\b
ans=
-1.00000
0.3333-2.0000
4.字符串的操作
字符串的操作有字符串的创建、求字符串的长度、数值与字符之间相互转换操作等。
s1='Ilikematlab'
s2='Iamastudent'
s3=[s2,'and',s1]
>>s1='Ilikematlabv'
s1=
Ilikematlabv
>>s2='Tamastudent'
s2=
Tamastudent
>>s3=[s2,'and',s1]
s3=
TamastudentandIlikematlabv
length(s1)
>>length(s1)
ans=
14
size(s1)
>>size(s1)
ans=
114
cs1=abs(s1)
>>cs1=abs(s1)
cs1=
733210810510710132109971161089798118
cs2=double(s1)
>>cs2=double(s1)
cs2=
733210810510710132109971161089798118
char(cs2)
>>char(cs2)
ans=
Ilikematlabv
setstr(cs2)
>>setstr(cs2)
ans=
Ilikematlabv
四、实验体会
本次实验主要是对数组或矩阵的操作,通过这次的实验我熟悉了数组和矩阵的一些常规操作,包括矩阵的创建、矩阵操作函数的使用。
矩阵的创建有很多种方法,使用非常灵活。
矩阵函数更是多种多样,通过实验的练习能够使我们更加深的理解和记忆。
实验三MATLAB数值运算
一、实验目的
掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。
二、实验内容:
(1)多项式运算。
(2)多项式插值和拟合。
(3)数值微积分。
三、实验步骤:
1.多项式运算
(1)多项式表示。
在MATLAB中,多项式表示成向量的形式。
如:
在MATLAB中表示为
>>S=[13-509]
(2)多项式的加减法相当于向量的加减法,但须注意阶次要相同。
如不同,低阶的要补0。
如多项式与多项式相加。
>>S1=[002311]
>>S2=[13-547]
>>S3=S1+S2
(3)多项式的乘、除法分别用函数conv和deconv实现
>>S1=[2311]
>>S2=[13-547]
>>S3=conv(S1,S2)
>>S4=deconv(S3,S1)
(4)多项式求根用函数roots
>>S1=[242]
>>roots(S1)
(5)多项式求值用函数polyval
>>S1=[241-3]
>>polyval(S1,3)
>>x=1:
10
>>y=polyval(S1,x)
2.多项式插值和拟合
有一组实验数据如附表1-1所示。
X
1
2
3
4
5
6
7
8
9
10
Y
16
32
70
142
260
436
682
1010
1432
1960
请分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估测X=9.5时Y的值。
以下是实现一阶拟合的语句。
>>x=1:
10
>>y=[163270142260436682101014321960]
>>p1=polyfit(x,y,1)
>>y1=polyval(p1,9.5)
3.数值微积分
(1)差分使用diff函数实现。
>>x=1:
2:
9
>>diff(x)
(2)可以用因变量和自变量差分的结果相除得到数值微分。
>>x=linspace(0,2*pi,100);
>>y=sin(x);
>>plot(x,y)
>>y1=diff(y)./diff(x);
>>plot(x(1:
end-1),y1)
(3)cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积。
>>x=ones(1,10)
>>cumsum(x)
>>x=linspace(0,pi,100);
>>y=sin(x);
>>S=trapz(y,x)
四、实验体会
本次实验主要是要我们了解数组的一些操作和属性。
实验通过对多项式的运算插值等操作来帮助理解数组和矩阵的一些操作。
另外,加入了两个画图函数来通过实际的图像进一步的了解数组函数的操作和功能。
实验四MATLAB符号运算
一、实验目的
掌握符号变量和符号表达式的创建,掌握MATLAB的symbol工具箱的一些基本应用。
二、实验内容
(1)符号变量、表达式、方程及函数的表示。
(2)符号微积分运算。
(3)符号微分方程求解。