数学建模常用程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档