庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>机械电子>MATLAB>Matlab基础>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

矩阵和线性代数

 作者:本站收集   日期:2005-3-22
字号选择〖 〗/ 双击滚屏 单击停止   

MatLab中的矩阵

MatLab中有好多函数可以产生不同的矩阵,下面就让我们产生两个3*3的矩阵,这一章中,我们的学习就靠她们了!!!

A = pascal(3)
A =
   1 1 1
   1 2 3
   1 3 6
B = magic(3)
B =
   8 1 6
   3 5 7
   4 9 2

还有一个3*2的随机矩阵:

C = fix(10*rand(3,2))
C =
   9 4
   2 8
   6 7

看看列矩阵,行矩阵,以及常数的表达:

u = [3; 1; 4]
v = [2 0 —1]
s = 7

产生的矩阵是:

u =
   3
   1
   4
v =
   2  0  —1
s =
   7

加减法

X = A + B
X =
   9 2 7
   4 7 10
   5 12 8
Y = X –A
Y =
   8 1 6
   3 5 7
   4 9 2

若二矩阵维数不统一,则会出错!

X = A + C

Error using ==> +
Matrix dimensions must agree.

向量的乘积与转置

x = v*u
x =
   2
X = u*v
X =
   6 0 —3
   2 0 —1
   8 0 —4
X = B'
X =
   8 3 4
   1 5 9
   6 7 2

如x与y均是列向量,则x*y无解,但下二表达式却可以:

x'*y
y'*x

内积点积.

下面的语句产生单位矩阵

eye(m,n)

若用eye(n)则产生n*n的方阵

解线性方程

情况一:

x = A\u
x =
  10
   —12
   5

又如:

X = A\B
X =
   19 –3 —1
   —17 4  13
    6  0 —6

情况二;y是不同时刻t时的观测值:

t = [0 .3 .8 1.1 1.6 2.3]';
y = [.82 .72 .63 .60 .55 .50]';

函数形式是:y(t)=c1+c2*exp(t);
构造矩阵:

E = [ones(size(t)) exp(–t)]
E =
   1.0000 1.0000
   1.0000 0.7408
   1.0000 0.4493   
   1.0000 0.3329
   1.0000 0.2019   
   1.0000 0.1003

则可求得系数c1及c2

c = E\y
c =
  0.4760 0.3413

表明:y(t)=0.4760+0.3413*exp(t)
画图如下:

T = (0:0.1:2.5)';
Y = [ones(size(T)) exp(–T)]*c;
plot(T,Y,'–',t,y,'o')

转置与行列式

若A是方阵,且是非奇异的,则:

d = det(A)
X = inv(A)
d =
  1
X =
   3  —3  1
   —3  5  —2
   1  —2  1

若c不是方阵,则用pinv:

X = pinv(C)
X =
   0.1159  —0.0729  0.0171
   —0.0534  0.1152  0.0418

那么我们可以发现,下面3个命令具有同样的功效(A是m*n的矩阵,m>n):

x = A\b
x = pinv(A)*b
x = inv(A’*A)*A’*b

LU.RQ.及Cholesky分解

MatLab求解线性方程建立在以下三个分解之上:
Cholesky分解
Guass(高斯)分解
正交分解

Cholesky分解

A=p*p'

让我们临时把A变一变:

A = pascal(6)
A =
   1  1  1  1  1  1
   1  2  3  4  5  6
   1  3  6  10 15  21
   1  4  10 20 35  56
   1  5  15 35 70  126
   1  6  21 56 126 252

A是二项式系数,每一项是其左方与上方系数之和,求其Cholesky分解系数有:

R = chol(A)
R =
  1 1 1 1 1 1
  0 1 2 3 4 5
  0 0 1 3 6 10
  0 0 0 1 4 10
  0 0 0 0 1 5
  0 0 0 0 0 1

R认识二项式系数.
这样对于线性方程便可化简:
A*x = b
R'*R*x = b
  x = R\(R'\b)
复杂度由O(n^3)变为O(n^2);

LU分解

A = L U

其中,L时下三角阵,U是上三角阵,如:

[L,U] = lu(B)
L =
  1.0000 0    0
  0.3750 0.5441  1.0000
  0.5000 1.0000  0
U =
  8.0000 1.0000 6.0000
  0    8.5000 —1.0000
  0    0    5.2941

同样:

A*x = b可以解为
x = U\(L\b)

QR分解

正交阵有如下性质:

Q'Q = I

正交阵的好处在于,她保持了原阵的长度,角度,并且在计算的过程中不会扩大误差.

RQ分解如下:

A = Q R    或      A P = Q R

其中,Q是正交阵,R是上三角阵.

矩阵的幂与指数

若A是方阵,p是正数,则

X = A^2
X =
  3 6 10
  6 14 25
  10 25 46

若A是方阵,且是非奇异的,则X=A^(-P)将inv(A) P次方,如:

Y = B^(–3)
Y =
  0.0053  —0.0068 0.0018
  —0.0034 0.0001  0.0036
  —0.0016 0.0070  —0.0051

分数词幂将由A的特征值决定.

若是对矩阵的每个元素进行幂,用.^,如

X = A.^2
A =
  1 1 1
  1 4 9
  1 9 36

sqrtm(A)计算A^(1/2),但要更精确,而
sqrt(A)则计算A.^(1/2),是一个元素一个元素的算.

dx/dt=Ax,可以表示为x(t)=exp(tA)*x(0);
下面来看看如何计算:--expm(A)

A =
  0 —6  —1
  6  2  —16
  —5 20 —10
x0 =
   1
   1
   1

计算如下:

X = [];
for t = 0:.01:1
  X = [X expm(t*A)*x0];
end

作图有:

plot3(X(1,:),X(2,:),X(3,:),'–o')

特征值

Av=λv

若L是特阵值矩阵,则特征向量是V:  

AV=VL;

如下:

A =
   0 —6  —1
   6  2  —16
   —5 20 —10
lambda = eig(A)
lambda =
  —3.0710
  —2.4645+17.6008i
  —2.4645-17.6008i

由exp(λt)可以看出exp(At)(见上小节)

若用二参数调用函数eig(),则返回特征向量及特征值矩阵:

[V,D] = eig(A)
V =
  —0.8326  —0.1203+ 0.2123i  —0.1203– 0.2123i
  —0.3553  0.4691+ 0.4901i   0.4691– 0.4901i
  —0.4248  0.6249– 0.2997i  0.6249+ 0.2997i
D =
  —3.0710   0         0
  0      —2.4645+17.6008i 0
  0       0        —2.4645—17.6008i

对于下面的矩阵:

A =
  6   12   19
  —9 —20  —33
  4   9   15
V =
  0.4741  0.4082  —0.4082
  —0.8127 —0.8165 0.8165
  0.3386  0.4082  —0.4082
D =
  —1.0000  0    0
   0    1.0000  0
   0    0    1.0000

可以看出,有二特征值是一样的,其特征向量仅差一个符号,在Symbolic Math Toolbox中提供了Jordan标准型的函数,如下:

[X,J] = jordan(A)
X =
  —1.7500 1.5000  2.7500
  3.0000  —3.0000 —3.0000
  —1.2500 1.5000  1.2500
J =
  —1 0 0
   0 1 1
   0 0 1

上一篇:MatLab简介    下一篇:常微分方程  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-22
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿