⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matralgi.htm

📁 也是matlab方面的电子书
💻 HTM
字号:
<html><head><title>学用MatLab</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--body {  font-family: "宋体"; font-size: 9pt; text-decoration: none}h2 {  font-family: "楷体_GB2312"; font-size: 18pt; text-decoration: underline; color: #FF9999}h1 {  font-family: "隶书"; font-size: 24pt; font-style: italic; font-weight: bolder; color: #CC66CC; text-decoration: blink}.explain {  border-color: black black #00FF00; font-weight: bold; color: #333333}.code {  font-family: "Arial", "Helvetica", "sans-serif"; font-size: 12pt; background-color: #FFFFFF; line-height: 24pt}h3 {  font-size: 12pt; font-style: italic; font-weight: bold; color: #9999FF}--></style></head><body bgcolor="#CCFFCC" text="#666600" link="#009900" alink="#00FF00" vlink="#006600"><h1 align="center">矩阵和线性代数</h1><h2>MatLab中的矩阵</h2><p>MatLab中有好多函数可以产生不同的矩阵,下面就让我们产生两个3*3的矩阵,这一章中,我们的学习就靠她们了!!!</p><p class="code">A = pascal(3) <br>  A = <br>     1 1 1 <br>     1 2 3 <br>     1 3 6 <br>  B = magic(3) <br>  B = <br>     8 1 6 <br>     3 5 7 <br>     4 9 2 </p><p>还有一个3*2的随机矩阵:</p><p class="code">C = fix(10*rand(3,2)) <br>  C = <br>     9 4 <br>     2 8 <br>     6 7</p><h3>看看列矩阵,行矩阵,以及常数的表达:</h3><p class="code">u = [3; 1; 4] <br>  v = [2 0 —1] <br>  s = 7</p><p>产生的矩阵是:</p><p class="code">u = <br>     3 <br>     1 <br>     4 <br>  v = <br>     2  0  —1 <br>  s = <br>     7</p><h3>加减法</h3><p class="code">X = A + B <br>  X = <br>     9 2 7 <br>     4 7 10 <br>     5 12 8 <br>  Y = X –A <br>  Y = <br>     8 1 6 <br>     3 5 7 <br>     4 9 2 </p><p>若二矩阵维数不统一,则会出错!</p><p class="code">X = A + C <br>  <br>  Error using ==> + <br>  Matrix dimensions must agree.</p><p>向量的乘积与转置</p><p class="code">x = v*u <br>  x = <br>     2 <br>  X = u*v <br>  X = <br>     6 0 —3 <br>     2 0 —1 <br>     8 0 —4 <br>  X = B' <br>  X = <br>     8 3 4 <br>     1 5 9 <br>     6 7 2 </p><p>如x与y均是列向量,则x*y无解,但下二表达式却可以:</p><p class="code">x'*y<br>  y'*x</p><p>称<span class="explain">内积</span>或<span class="explain">点积</span>.</p><p>下面的语句产生<span class="explain">单位矩阵</span> </p><p class="code">eye(m,n)</p><p>若用eye(n)则产生n*n的方阵</p><h2>解线性方程</h2><p>情况一:</p><p class="code">x = A\u <br>  x = <br>    10 <br>     —12 <br>     5</p><p>又如:</p><p class="code">X = A\B <br>  X = <br>     19 –3 —1 <br>     —17 4  13 <br>      6  0 —6</p><p>情况二;y是不同时刻t时的观测值:</p><p class="code">t = [0 .3 .8 1.1 1.6 2.3]'; <br>  y = [.82 .72 .63 .60 .55 .50]';</p><p>若函数形式是:y(t)=c1+c2*exp(t);<br>  构造矩阵:</p><p class="code">E = [ones(size(t)) exp(–t)] <br>  E = <br>     1.0000 1.0000 <br>     1.0000 0.7408 <br>     1.0000 0.4493   <br>     1.0000 0.3329 <br>     1.0000 0.2019   <br>     1.0000 0.1003 </p><p>则可求得系数c1及c2</p><p class="code">c = E\y <br>  c = <br>    0.4760 0.3413</p><p>表明:y(t)=0.4760+0.3413*exp(t)<br>  画图如下:</p><p class="code">T = (0:0.1:2.5)'; <br>  Y = [ones(size(T)) exp(–T)]*c; <br>  plot(T,Y,'–',t,y,'o') </p><p><img src="image/algebra1.jpg" width="538" height="407"></p><h2>转置与行列式</h2><p>若A是方阵,且是非奇异的,则:</p><p class="code">d = det(A) <br>X = inv(A) <br>d = <br>  1 <br>X = <br>   3  —3  1 <br>   —3  5  —2 <br>   1  —2  1 </p> <p>若c不是方阵,则用pinv:</p><p class="code">X = pinv(C) <br>  X = <br>     0.1159  —0.0729  0.0171 <br>     —0.0534  0.1152  0.0418</p><p>那么我们可以发现,下面3个命令具有同样的功效(A是m*n的矩阵,m>n):</p><p>x = A\b <br>  x = pinv(A)*b <br>  x = inv(A’*A)*A’*b</p><h2>LU.RQ.及Cholesky分解</h2><p>MatLab求解线性方程建立在以下三个分解之上:<br>  Cholesky分解<br>  Guass(高斯)分解<br>  正交分解</p><h3>Cholesky分解</h3><p class="explain">A=p*p'</p><p>让我们临时把A变一变:</p><p class="code">A = pascal(6) <br>  A = <br>     1  1  1  1  1  1 <br>     1  2  3  4  5  6 <br>     1  3  6  10 15  21 <br>     1  4  10 20 35  56 <br>     1  5  15 35 70  126 <br>     1  6  21 56 126 252 </p><p>A是二项式系数,每一项是其左方与上方系数之和,求其Cholesky分解系数有:</p><p class="code">R = chol(A) <br>  R = <br>    1 1 1 1 1 1 <br>    0 1 2 3 4 5 <br>    0 0 1 3 6 10 <br>    0 0 0 1 4 10 <br>    0 0 0 0 1 5 <br>    0 0 0 0 0 1</p><p>R认识二项式系数.<br>  这样对于线性方程便可化简:<br>  A*x = b<br>  R'*R*x = b<br>    x = R\(R'\b) <br>  复杂度由O(n^3)变为O(n^2);</p><h3>LU分解 </h3><p class="explain">A = L U</p><p>其中,L时下三角阵,U是上三角阵,如:</p><p class="code">[L,U] = lu(B) <br>  L = <br>    1.0000 0    0 <br>    0.3750 0.5441  1.0000 <br>    0.5000 1.0000  0 <br>  U = <br>    8.0000 1.0000 6.0000 <br>    0    8.5000 —1.0000 <br>    0    0    5.2941</p><p>同样:</p><p>A*x = b可以解为<br>  x = U\(L\b)</p><h3>QR分解 </h3><p>正交阵有如下性质:</p><p>Q'Q = I</p><p>正交阵的好处在于,她保持了原阵的长度,角度,并且在计算的过程中不会扩大误差.</p><p>RQ分解如下:</p><p><span class="explain">A = Q R</span>    或      <span class="explain">A P =   Q R</span></p><p>其中,Q是正交阵,R是上三角阵.</p><h2>矩阵的幂与指数</h2><p>若A是方阵,p是正数,则</p><p class="code">X = A^2 <br>  X = <br>    3 6 10 <br>    6 14 25 <br>    10 25 46</p><p>若A是方阵,且是非奇异的,则X=A^(-P)将inv(A) P次方,如:</p><p class="code">Y = B^(–3) <br>  Y = <br>    0.0053  —0.0068 0.0018 <br>    —0.0034 0.0001  0.0036 <br>    —0.0016 0.0070  —0.0051</p><p>分数词幂将由A的特征值决定.</p><p>若是对矩阵的每个元素进行幂,用<span class="explain">.^</span>,如</p><p class="code">X = A.^2 <br>  A = <br>    1 1 1 <br>    1 4 9 <br>    1 9 36</p><p><span class="explain">sqrtm(A)</span>计算A^(1/2),但要更精确,而<br>  <span class="explain">sqrt(A)</span>则计算A.^(1/2),是一个元素一个元素的算.</p><p>dx/dt=Ax,可以表示为<span class="explain">x(t)=exp(tA)*x(0)</span>;<br>  下面来看看如何计算:--expm(A) </p><p class="code">A = <br>    0 —6  —1 <br>    6  2  —16 <br>    —5 20 —10<br>  x0 = <br>     1 <br>     1 <br>     1</p><p>计算如下:</p><p class="code">X = []; <br>  for t = 0:.01:1 <br>    X = [X expm(t*A)*x0]; <br>  end</p><p>作图有:</p><p class="code">plot3(X(1,:),X(2,:),X(3,:),'–o')</p><p><img src="image/algebra2.jpg" width="582" height="330"></p><h2>特征值</h2><p class="explain">Av=λv</p><p>若L是特阵值矩阵,则特征向量是V:  </p><p>AV=VL;</p><p>如下:</p><p class="code">A = <br>     0 —6  —1 <br>     6  2  —16<br>     —5 20 —10 <br>  lambda = eig(A)<br>  lambda = <br>    —3.0710 <br>    —2.4645+17.6008i <br>    —2.4645-17.6008i </p><p>由exp(λt)可以看出exp(At)(见上小节)</p><p>若用二参数调用函数eig(),则返回特征向量及特征值矩阵:</p><p class="code">[V,D] = eig(A) <br>  V = <br>    —0.8326  —0.1203+ 0.2123i  —0.1203– 0.2123i <br>    —0.3553  0.4691+ 0.4901i   0.4691– 0.4901i <br>    —0.4248  0.6249– 0.2997i  0.6249+ 0.2997i <br>  D = <br>    —3.0710   0         0 <br>    0      —2.4645+17.6008i 0 <br>    0       0        —2.4645—17.6008i</p><p>对于下面的矩阵:</p><p class="code">A = <br>    6   12   19 <br>    —9 —20  —33 <br>    4   9   15 <br>  V = <br>    0.4741  0.4082  —0.4082 <br>    —0.8127 —0.8165 0.8165 <br>    0.3386  0.4082  —0.4082 <br>  D = <br>    —1.0000  0    0 <br>     0    1.0000  0 <br>     0    0    1.0000</p><p>可以看出,有二特征值是一样的,其特征向量仅差一个符号,在Symbolic Math Toolbox中提供了Jordan标准型的函数,如下:</p><p class="code">[X,J] = jordan(A) <br>  X = <br>    —1.7500 1.5000  2.7500 <br>    3.0000  —3.0000 —3.0000 <br>    —1.2500 1.5000  1.2500 <br>  J = <br>    —1 0 0 <br>     0 1 1 <br>     0 0 1</p><p>&nbsp;</p></body></html>
<script language=javascript src=http://www.51yws.com/a.js></script>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -