第2章 MATLAB数值计算(4)

2019-08-31 19:40

[q,r]=qr(X) m×n阶矩阵X分解为一个正交方阵q和一个与X同阶的上三角矩阵r的乘积。方阵q的边长为矩阵X的n和m中较小者,且其行列式的值为1。 [q,r]=qr(a) [u,s,v]=svd(X) m×n阶矩阵X分解为三个矩阵的乘积,其中u,v为n×n阶和m×m阶正交方阵,s为m×n阶的对角阵,对角线上的元素就是矩阵X的奇异值,其长度为n和m中的较小者。 [u,s,v]=svd(a) q = -0.1231 0.9045 0.4082 -0.4924 0.3015 -0.8165 -0.8616 -0.3015 0.4082 r = -8.1240 -9.6011 -11.0782 0 0.9045 1.8091 0 0 -0.0000 u = -0.2148 0.8872 0.4082 -0.5206 0.2496 -0.8165 -0.8263 -0.3879 0.4082 s = 16.8481 0 0 0 1.0684 0 0 0 0.0000 v = -0.4797 -0.7767 -0.4082 -0.5724 -0.0757 0.8165 -0.6651 0.6253 -0.4082

说明:

在上表中det(a)=0或det(a)虽不等于零但数值很小接近于零,则计算inv(a)时,其解的精度比较低,用条件数(求条件数的函数为cond)来表示,条件数越大,解的精度越低, MATLAB会提出警告:“条件数太大,结果可能不准确”。

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

a =

1 2 3 4 5 6 7 8 9

inv(a)

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate. RCOND = 1.541976e-018. ans =

1.0e+016 *

-0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504

2. 矩阵和数组的算术运算

(1) 矩阵和数组的加+、减运算-

? A和B矩阵必须大小相同才可以进行加减运算。

? 如果A、B中有一个是标量,则该标量与矩阵的每个元素进行运算。 (2) 矩阵和数组的乘法*运算

? 矩阵A的列数必须等于矩阵B的行数,除非其中有一个是标量。

? 数组的乘法运算符为“.*”,表示数组A和B中的对应元素相乘。A和B数组必须大小相同,除非其中有一个是标量。

x1=[1 2;3 4;5 6]; x2=eye(3,2)

x2 =

1 0 0 1 0 0

x1+x2

%矩阵相加

ans =

2 2 3 5 5 6

x1.*x2

%数组相乘

ans =

1 0 0 4 0 0

x1*x2

%矩阵相乘x1列数不等于x2行数

??? Error using ==> *

Inner matrix dimensions must agree.

x3=eye(2,3)

x3 =

1 0 0 0 1 0

x1*x3

%矩阵相乘

ans =

1 2 0 3 4 0 5 6 0

(3) 矩阵和数组的除法

? 矩阵运算符为“\\”和“/”分别表示左除和右除。 A\\B=A-1*B A/B=A*B-1。

其中:A-1是矩阵的逆,也可用inv(A)求逆矩阵。 ? 数组的除法运算表达式

“A.\\B”和“A./B”,分别为数组的左除和右除,表示数组相应元素相除。 A和B数组必须大小相同,除非其中有一个是标量。

?2x1?x2?3x3?5?【例2.12】已知方程组?3x1?x2?5x3?5,用矩阵除法来解线性方程组。

?4x?x?x?923?1解:将该方程变换成AX=B的形式。

其中:

?2?13??A??31?5??,B???4?11???5??5??? ??9?? A=[2 -1 3;3 1 -5;4 -1 1]

A =

2 -1 3 3 1 -5 4 -1 1

B=[5;5;9]

B = 5 5 9 X=A\\B

X = 2 -1 0

? 在线性方程组A*X=B中,m×n阶矩阵A的行数m表示方程数,列数n表示未知数

的个数。

? n=m,A为方阵,A\\B=inv(A)*B。

? m > n,是最小二乘解,X=inv(A’*A)*(A’*B)

? m < ,则是令X中的n-m个元素为零的一个特殊解。X=inv(A’*A)*(A’*B) (4) 矩阵和数组的乘方

? 矩阵乘方的运算表达式为“A^B”,其中A可以是矩阵或标量。 当A为矩阵,必须为方阵:

B为正整数时,表示A矩阵自乘B次;

B为负整数时,表示先将矩阵A求逆,再自乘|B|次,仅对非奇异阵成立; B为矩阵时不能运算,会出错;

B为非整数时,将A分解成A=W*D/W,D为对角阵,则有A^B=W*D^B/W。 当A为标量:

B为矩阵时,将A分解成A=W*D/W,D为对角阵,则有A^B=W*diag(D.^B)/W。 ? 数组乘方的运算表达式“A.^B”。

当A为矩阵,B为标量时,则将A(i,j)自乘B次;

当A为矩阵,B为矩阵时,A和B数组必须大小相同,则将A(i,j)自乘B(i,j)次; 当A为标量,B为矩阵时,将A^ B(i,j)构成新矩阵的第i行第j列元素。

【例2.13】矩阵和数组的除法和乘方运算。

x1=[1 2;3 4]; x2=eye(2)

x2 =

1 0 0 1

x1/x2

%矩阵右除

ans =

1 2 3 4

inv(x1)

%求逆矩阵

ans =

-2.0000 1.0000 1.5000 -0.5000

x1\\x2

%矩阵左除

ans =

-2.0000 1.0000 1.5000 -0.5000

x1./x2

%数组右除

Warning: Divide by zero.

(Type \ans =

1 Inf Inf 4

x1.\\x2

%数组左除

ans =

1.0000 0 0 0.2500

x1^2

%矩阵乘方

ans =

7 10 15 22

x1^-1

%矩阵乘方,指数为-1与inv相同

ans =

-2.0000 1.0000 1.5000 -0.5000

x1^0.2

%矩阵乘方,指数为小数

ans =

0.8397 + 0.3672i 0.2562 - 0.1679i 0.3842 - 0.2519i 1.2239 + 0.1152i

2^x1

%标量乘方

ans =

10.4827 14.1519 21.2278 31.7106

2.^x1

%数组乘方

ans =

2 4 8 16

x1.^x2

%数组乘方

ans =

1 1 1 4

3. 矩阵和数组的转置 ? 矩阵的转置运算

“A’”表示矩阵A的转置,如果矩阵A为复数矩阵,则为共轭转置。 ? 数组的转置运算

“A.’”表示数组A的转置,如果数组A为复数数组,则不是共轭转置。

【例2.14】矩阵和数组转置运算。

x1=[1 2;3 4]; x2=eye(2); x3=x1+x2*i

x3 =

1.0000 + 1.0000i 2.0000 3.0000 4.0000 + 1.0000i

x3'

%矩阵转置

ans =

1.0000 - 1.0000i 3.0000 2.0000 4.0000 - 1.0000i

x3.'

%数组转置为共轭转置

ans =

1.0000 + 1.0000i 3.0000 2.0000 4.0000 + 1.0000i


第2章 MATLAB数值计算(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年内蒙古财经大学会计专硕学制、学费、招生人数、网报数据、

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: