第四章 MATLAB的数值计算功能(2)(3)

2019-04-09 19:42

3 15 19 7 6 10 x =

-3.6750 -0.7333 2.9708 3.7250 1.4667 -2.1292 -0.3250 0.0667 1.1958 C =

1.0000 5.0000 12.0000 3.0000 15.0000 19.0000

7.0000 6.0000 10.0000

若方阵a的各个行矢量线性相关(linear correlation),则称方阵a为奇异矩阵。这时线性方程将有无穷多组解。若方阵是奇异矩阵,则反斜线运算因子将发出警告信息。

2.超定系统(Overdetermind system) m﹥n 实验数据较多,寻求他们的曲线拟合。 如在t内测得一组数据y: t y 0.0 0.82 0.3 0.72 0.8 0.63 1.1 0.60 1.6 0.55 2.2 0.50

这些数据显然有衰减指数趋势: y(t)~c1+c2e-t

此方程意为y矢量可以由两个矢量逐步逼近而得,一个是单行的常数矢量,一个是由指数e-t项构成,两个参数c1和c2可用最小二乘法求得,

它们表示实验数据与方程y(t)~c1+c2e-t之间距离的最小平方和。

例1: 求上述数据的最小二乘解。将数据带入方程式y(t)~c1+c2e-t中,可得到含有两个未知数的6个等式,可写成6行2 列的矩阵e. 利用左除运算即可解得方程的解,最终求得曲线方程。 t=[0 0.3 0.8 1.1 1.6 2.2]’;

y=[0.82 0.72 0.63 0.60 0.55 0.50]’;

e=[ones(size(t)) exp(-t)] %求6个y(t)方程的系数矩阵 c=e\\y % 求方程的解 e =

1.0000 1.0000 1.0000 0.7408 1.0000 0.4493 1.0000 0.3329 1.0000 0.2019 1.0000 0.1108 c =

0.4744

0.3434

带入方程得:y(t)~0.4744+0.3434e-t 用此方程可绘制曲线:

t=[0 0.3 0.8 1.1 1.6 2.2]’;

y=[0.82 0.72 0.63 0.60 0.55 0.50]’; t1=[0:0.1:2.5]’; y1=[ones(size(t1)),exp(-t1)]*c plot(t1,y1,’b’,t,y,’ro’)

如果一个矩阵的行矢量是线性相关的,则它的最小二乘解并不唯一,因此,a\\b运算将给出警告,并产生含有最少元素的基解。 3 .欠定系统: (Underdetermind system) m﹤n

欠定系统为线性相关系统,其解都不唯一,MATLAB会计算一组构成通解的基解,而方程的特解则用QR分解法决定。 两种解法:最少元素解a\\b,最小范数解pinv(a)*b. 例1: 用两种方法求解欠定系统。

对a和矢量b分别用a\\b和pinv(a)*b求解: a=[1 1 1; 1 1 -1] b=[10 6]’ p=a\\b

q=pinv(a)*b a =

1 1 1 1 1 -1 b = 10 6 p =

8.0000 0 2.0000 q =

4.0000 4.0000 2.0000

三. 逆矩阵及行列式(Revers and determinant of matrix)

1. 方阵的逆和行列式(Revers and determinant of square matrix)

若a是方阵,且为非奇异阵,则方程ax=I和 xa=I有相同的解X。X称为a的逆矩阵,记做a-1,在MATLAB中 用inv 函数来计算矩阵的逆。计算方阵的行列式则用det函数。

DET Determinant.

DET(X) is the determinant of the square matrix X.

Use COND instead of DET to test for matrix singularity. INV Matrix inverse.

INV(X) is the inverse of the square matrix X. A warning message is

printed if X is badly scaled or nearly singular.

例1:计算方阵的行列式和逆矩阵。 a=[3 -3 1;-3 5 -2;1 -2 1]; b=[14 13 5; 5 1 12;6 14 5]; d1=det(a) %求方阵的行列式 x1=inv(a) %求逆 d2=det(b) x2=inv(b) d1 = 1 x1 =

1.0000 1.0000 1.0000 1.0000 2.0000 3.0000 1.0000 3.0000 6.0000 d2 =

-1351 x2 =

0.1207 -0.0037 -0.1118 -0.0348 -0.0296 0.1058 -0.0474 0.0873 0.0377

2. 广义逆矩阵(伪逆)(Generalized inverse matrix)

一般非方阵无逆矩阵和行列式,方程ax=I 和xa=I至少有一个无解,这种矩阵可以求得特殊的逆矩阵,称为广义逆矩阵(generalized inverse matrix)(或伪逆 pseudoinverse)。矩阵amn存在广义逆矩阵xnm,使得 ax=Imn, MATLAB用pinv函数来计算广义逆矩阵。 例1:计算广义逆矩阵。 a=[8 14; 1 3; 9 6] x=pinv(a) b=x*a c=a*x

d=c*a %d=a*x*a=a e=x*c %e=x*a*x=x

a =

8 14 1 3 9 6 x =

-0.0661 -0.0402 0.1743 0.1045 0.0406 -0.0974 b =

1.0000 -0.0000 -0.0000 1.0000 c =

0.9334 0.2472 0.0317 0.2472 0.0817 -0.1177 0.0317 -0.1177 0.9849 d =

8.0000 14.0000 1.0000 3.0000 9.0000 6.0000 e =

-0.0661 -0.0402 0.1743

0.1045 0.0406 -0.0974 PINV Pseudoinverse.

X = PINV(A) produces a matrix X of the same dimensions as A' so that A*X*A = A, X*A*X = X and A*X and X*A are Hermitian. The

computation is based on SVD(A) and any singular values less than a tolerance are treated as zero.

The default tolerance is MAX(SIZE(A)) * NORM(A) * EPS. PINV(A,TOL) uses the tolerance TOL instead of the default.

四. 矩阵分解(Matrix decomposition)

通过矩阵分解的方法求解大型方程组非常有效的,这种方法可以使运


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

下一篇:机关卫生检查评比办法

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

马上注册会员

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