数学建模常用程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用程序
1.与矩阵有关的程序
例1:a=[1 2 0;2 5 -1;4 10 -1];
b=det(a)
b =
1
例2:x=[3 10 5 6 19];
y=[6 2 9 12 9];
z=x+y
z =
9 12 14 18 28
例3:x=[5 9;2 7;1 10];
y=[3 11;5 9;5 2];
z=x-y
z =
2 -2
-3 -2
-4 8
例4:x=[1 3;4 6];
y=[6 1;9 3];
z=x*y; x=[1 3;4 6];
y=[6 1;9 3];
z=x*y
z =
33 10
78 22
注意:矩阵相乘使用“*”运算符;如果只是将两个矩阵中相同位置的元素相乘,使用“.*”运算符。如,m=x.*y
m =
6 3
36 18
矩阵除法有左除和右除的区别,分别使用“\”和“/”运算符。右除运算速度要慢一点,而左除运算可以避免奇异矩阵的影响。另外,与“\”和“/”运算符相对应,也有“.\”和“./”运算符,分别用于将两个矩阵中的对应元素相除。
例5:x=[1 3;4 6];
y=[6 1;9 3];
z=x\y
z =
-1.5000 0.5000
2.5000 0.1667
m=x.\y
m =
6.0000 0.3333
2.2500 0.5000
矩阵与常数的运算用的也很多,可以直接使用上面的各种运算符。例如,对于上面的矩阵X:
n=x+5
n =
6 8
9 11
2.矩阵的幂和平方根
例6:b=[21 34 20;78 20 21;17 34 31];
c=b^2
c =
3433 2074 1754
3555 3766 2631
3536 2312 2015
d=b^-2
d =
0.0023 -0.0002 -0.0017
0.0032 0.0011 -0.0042
-0.0077 -0.0009 0.0083
用sqrtm函数求取矩阵的平方根。该函数的语法格式为:
X=sqrtm(A):求矩阵A的平方根X,即X*X=A。X是唯一的平方根,此时每个特征值具有非负的实部。如果A的特征值中至少有一个具有负的实部,则生成复数结果:如果A是奇异的,则A可能没有平方根。发现矩阵A奇异时生成警告信息。
[X,resnorm]=sqrtm(A):不生成任何警告信息,并返回残差norm(A-X^2,'fro')/norm(A,'fro')。
[X,alpha,condest]=sqrtm(A):返回稳定性因子alpha和X矩阵平方根条件数的估计condest。
例7:a=[1 3 4;2 6 5;3 2 4];
c=sqrtm(a) %矩阵开方
c =
0.6190 + 0.8121i 0.8128 - 0.2263i 1.1623 - 0.4157i
0.3347 + 0.1497i 2.3022 - 0.0417i 1.1475 - 0.0766i
1.0271 - 0.5372i 0.3347 + 0.1497i 1.6461 + 0.2750i
例8:a=[1 3 4;2 6 5;3 2 4];
c=expm(a) %矩阵指数
c =
1.0e+004 *
0.4668 0.7694 0.9200
0.7919 1.3065 1.5613
0.4807 0.7919 0.9475
例9:a=[1 3 4;2 6 5;3 2 4];
>> c=logm(a) %矩阵对数
c =
0.5002 + 2.4406i 0.5960 - 0.6800i 0.7881 - 1.2493i
0.4148 + 0.4498i 1.4660 - 0.1253i 1.0108 - 0.2302i
0.5780 - 1.6143i 0.4148 + 0.4498i 1.0783 + 0.8263i
3.矩阵的翻转
用fliplr函数左右翻转矩阵,用fliplr函数上下翻转矩阵,用flipdim函数沿指定方向翻转矩阵,用transpose函数沿主对角线翻转矩阵。下面按照从左向右翻转矩阵A。
例10:A=[1 4 7 10;2 5 8 11;3 6 9 12];
>> B=fliplr(A)
B =
10 7 4 1
11 8 5 2
129 6 3
4.矩阵的逆运算
MATLAB中,用函数“inv”实现矩阵的逆运算。
例11. a=[1 2 0;2 5 -1;4 10 -1];
>> b=inv(a) %矩阵的逆
b =
5 2 -2
-2 -1 1
0 -2 1
MATLAB中,用函数“pinv”实现矩阵的伪逆运算。
例12:a=[1 2 0;2 5 -1;4 10 -1];
b=pinv(a)
b =
5.0000 2.0000 -2.0000
-2.0000 -1.0000 1.0000
0 -2.0000 1.0000
矩阵的迹是指矩阵中所有的对角线元素的和。可由“trace”计算得到。
例13:a=[1 2 0;2 5 -1;4 10 -1];
b=trace(a)
b =
5