第二章matlab矩陣運(yùn)算_第1頁
第二章matlab矩陣運(yùn)算_第2頁
第二章matlab矩陣運(yùn)算_第3頁
第二章matlab矩陣運(yùn)算_第4頁
第二章matlab矩陣運(yùn)算_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第二章MATLAB矩陣運(yùn)算——matlab具有出色的矩陣運(yùn)算能力,占世界上矩陣運(yùn)算軟件的主導(dǎo)地位矩陣運(yùn)算的功能矩陣命令行的基本操作數(shù)據(jù)的保存與獲取矩陣的運(yùn)算矩陣的特殊操作矩陣分解一、命令行的基本操作規(guī)則:矩陣元素必須用[]括住矩陣元素必須用逗號或空格分隔在[]內(nèi)矩陣的行與行之間必須用分號分隔

創(chuàng)建矩陣的方法直接輸入法rand——隨機(jī)矩陣eye——單位矩陣zeros——全部元素都為0的矩陣ones——全部元素都為1的矩陣[]空陣—matlab允許輸入空陣,當(dāng)一項(xiàng)操作無結(jié)果時(shí),返回空陣。用matlab函數(shù)創(chuàng)建矩陣對角矩陣、伴隨矩陣、稀疏矩陣、魔方矩陣、范德蒙等矩陣的創(chuàng)建,就不一一介紹了(MATLABhelpmatrix)。matlab函數(shù)名必須小寫matlab嚴(yán)格區(qū)分大小寫字母,因此a與A是兩個(gè)不同的變量。注意用冒號創(chuàng)建矩陣冒號的其他用法

用于選出矩陣指定行、列及元素循環(huán)語句。用于生成等間隔的向量,默認(rèn)間隔為1

矩陣元素可以是任何matlab表達(dá)式,可以是實(shí)數(shù),也可以是復(fù)數(shù),復(fù)數(shù)可用特殊函數(shù)i,j輸入。a=[123;456]x=[2pi/2;sqrt(3)3+5i]

2.矩陣元素特點(diǎn)3.矩陣的修改直接修改可用鍵找到所要修改的矩陣,用鍵移動到要修改的矩陣元素上即可修改。指令修改可以用A(,)=來修改(賦值,見MATLABhelpMatrix)。例如a=[120;305;789]a=120305789a(3,3)=0a=120305780還可以用函數(shù)subs修改,matlab6.0還可用find函數(shù)修改。4.指令行中符號的作用

逗號和分號可作為指令間的分隔符,matlab允許多條語句在同一行出現(xiàn)。

分號如果出現(xiàn)在指令后,屏幕上將不顯示結(jié)果。逗號和分號只要是賦過值的變量,不管是否在屏幕上顯示過,都存儲在工作空間中,以后可隨時(shí)顯示或調(diào)用。變量名盡可能不要重復(fù),否則會覆蓋。當(dāng)一個(gè)指令或矩陣太長時(shí),可用???續(xù)行注意save——將工作空間中所有的變量存到matlab.mat文件中。二、數(shù)據(jù)的保存與獲取默認(rèn)文件名把matlab工作空間中一些有用的數(shù)據(jù)長久保存下來的方法是生成mat數(shù)據(jù)文件。savedata——將工作空間中所有的變量存到data.mat文件中。savedataab——將工作空間中a和b變量存到data.mat文件中。

下次運(yùn)行matlab時(shí)即可用load指令調(diào)用已生成的mat文件。load——loaddata——loaddataab——即可裝載保存過的所有變量mat文件是標(biāo)準(zhǔn)的二進(jìn)制文件,還可以ASCII碼形式保存。規(guī)則:相加、減的兩矩陣必須有相同的行和列兩矩陣對應(yīng)元素相加減。允許參與運(yùn)算的兩矩陣之一是標(biāo)量。標(biāo)量與矩陣的所有元素分別進(jìn)行加減操作三、矩陣運(yùn)算矩陣加、減(+,-)運(yùn)算c=143223

2.矩陣乘()運(yùn)算規(guī)則:A矩陣的列數(shù)必須等于B矩陣的行數(shù)標(biāo)量可與任何矩陣相乘。a=[123;456;780];b=[1;2;3];c=a*bd=[-1;0;2];f=pi*df=-3.141606.28323.左除與右除運(yùn)算若AV=I則V=A-1=inv(A)對于方程D*X=Binv(D)*D*X=inv(D)*B

X=inv(D)*B=D\B(左除,逆矩陣左乘)對于方程X*D=B

X*D*inv(D)=B*inv(D)

X=B*inv(D)=B/D(右除,逆矩陣右乘)矩陣除的運(yùn)算在線性代數(shù)中沒有,有矩陣逆的運(yùn)算,在matlab中有兩種矩陣除運(yùn)算a^p—a自乘p次冪(相當(dāng)于a*a*……*a)方陣>1的整數(shù)4.矩陣乘方——a^n,a^p,p^a對于p的其它值,計(jì)算將涉及特征值和特征向量,如果p是矩陣,a是標(biāo)量a^p使用特征值和特征向量自乘到p次冪;如a,p都是矩陣,a^p則無意義。a=[1,2,3;4,5,6;7,8,9];a^2ans=303642668196102126150※當(dāng)一個(gè)方陣有復(fù)數(shù)特征值或負(fù)實(shí)特征值時(shí),非整數(shù)冪是復(fù)數(shù)陣。a^0.5ans=

0.4498+0.7623i0.5526+0.2068i0.6555-0.3487i1.0185+0.0842i1.2515+0.0228i1.4844-0.0385i1.5873-0.5940i1.9503-0.1611i2.3134+0.2717i①數(shù)組加減a+ba-b5.矩陣的數(shù)組運(yùn)算(點(diǎn)運(yùn)算)對應(yīng)元素相加減數(shù)組運(yùn)算指元素對元素的算術(shù)運(yùn)算,與通常意義上的由符號表示的線性代數(shù)矩陣運(yùn)算不同a=[123;456;789];b=[246;135;7910];a.*bans=281841530497290②數(shù)組乘除(,./,.\)ab—a,b兩數(shù)組必須有相同的行和列兩數(shù)組相應(yīng)元素相乘。a=[123;456;789];b=[246;135;7910];a*bans=253746558510985133172a./b=b.\aa.\b=b./aa./b=b.\a—都是a的元素被b的對應(yīng)元素除a.\b=b./a—都是b的元素被a的對應(yīng)元素除例:a=[123];b=[456];c1=a.\b;c2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000——給出a,b對應(yīng)元素間的商.例:a=[123];b=[456];z=a.^2z=1.004.009.00z=a.^bz=1.0032.00729.00③數(shù)組乘方(.^)—元素對元素的冪inv——矩陣求逆det——行列式的值eig——矩陣的特征值diag——對角矩陣’——矩陣轉(zhuǎn)置sqrt——矩陣開方6.矩陣的其它運(yùn)算P362—3表關(guān)系運(yùn)算關(guān)系符號意義<<=>>===~=小于小于或等于大于大于或等于等于不等于邏輯運(yùn)算關(guān)系符號意義&|~與或非其他邏輯關(guān)系函數(shù)p362-2表四.矩陣的一些特殊操作矩陣的變維a=[1:12];b=reshape(a,3,4)矩陣的變向c=zeros(3,4);c(:)=b(:)

rot90:逆時(shí)針旋轉(zhuǎn);fliplr:左右翻;flipud:上下翻矩陣的抽取

diag:抽取主對角線;tril:抽取主下三角;

triu:抽取主上三角矩陣的擴(kuò)展1.重新排列矩陣函數(shù)Matlab中實(shí)現(xiàn)矩陣重新排列的是函數(shù)reshape,其調(diào)用格式:Reshape(a,m,n,p,…)b=112244238542542185例:對矩陣a進(jìn)行重新排列,產(chǎn)生的新矩陣b,大小為2*8;新矩陣c,大小為2*4*2a=[1248;4528;124235;2415];b=reshape(a,2,8)c=reshape(a,2,4,2)c(:,:,2)=423852185c(:,:,1)=1122442542.矩陣的翻轉(zhuǎn)與旋轉(zhuǎn)matlab提供對矩陣進(jìn)行翻轉(zhuǎn)與旋轉(zhuǎn)的函數(shù),它們的調(diào)用格式:rot90(A,k)fliplr(A)flipud(A)3.對角陣與三角陣對角陣的定義:只有對角線上有非0元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數(shù)量矩陣,對角線上的元素都為1的對角矩陣稱為單位矩陣。三角陣又進(jìn)一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角陣則是對角線以上的元素全為0的一種矩陣。三角陣的定義:Matlab中創(chuàng)建對角陣的函數(shù)為diag,它的調(diào)用格式:diag(A,k)說明:1.若參數(shù)A為m×n階矩陣,diag函數(shù)提取矩陣的對角線元素,參數(shù)k取整數(shù),表示提取第k條對角線元素,缺省時(shí)提取主對角線元素,返回值是一個(gè)具有min(m,n)個(gè)元素的列向量2.若參數(shù)A為一具有m個(gè)元素的向量,參數(shù)k缺省,則diag函數(shù)返回值為對角矩陣,其主對角線元素為向量A的元素;若是一個(gè)非0整數(shù),則返回值是一個(gè)n×n(n=m+abs(k))對角陣,其第k條對角線元素為向量A的元素例:先建立5×5矩陣A,然后將A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。A=rand(5),

d=diag(1:5),y=d*AA=0.20280.01530.41860.83810.50280.19870.74680.84620.01960.70950.60380.44510.52520.68130.42890.27220.93180.20260.37950.30460.19880.46600.67210.83180.1897d=1000002000003000004000005y=0.20280.01530.41860.83810.50280.39741.49361.69240.03931.41891.81141.33531.57552.04381.28671.08883.72730.81061.51791.21850.99412.33003.36074.15900.9483創(chuàng)建三角陣的函數(shù)為triu,tril,它們的調(diào)用格式格式完全相同:triu(A,k)tril(A,k)說明:

1.參數(shù)A為被提取的矩陣,參數(shù)k取整數(shù)表示矩陣A中對角線的序號,返回值上三角陣,其元素是矩陣A的第k條對角線以上的元素.

2.Tril與triu類似五.矩陣的分解Matlab中提供的矩陣分解的函數(shù)特征值分解:[v,d]=eig(a),d=eig(a)奇異值分解:[u,s,v]=svd(a)LU分解:[l,u]=lu(a)

cholesky分解:L=chol(a)QR分解:[q,r]=qr(a)例用直接解法求解線性方程組:2*x^3+x^2-5*x+1=13x^3-5*x^2+7=-92*x^2+x-1=6x^3+6*x^2-x-4=0命令如下:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=A\bx=-66.555625.6667-18.777826.5556LU分解調(diào)用格式為:[L,U]=lu(A):產(chǎn)生一個(gè)上三角陣U和一個(gè)變換形式的下三角陣L(行交換),使之滿足A=LU。實(shí)現(xiàn)LU分解后,線性方程組Ax=b的解x=U\(L\b)運(yùn)行結(jié)果:x=-66.555625.6667-18.777826.5556例3-21用LU分解求解例3-20中的線性方程組。命令如下:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];

b=[13,-9,6,0]';[L,U]=lu(A);x=U\(L\b)matlab語言把多項(xiàng)式表達(dá)成一個(gè)行向量,該向量中的元素是按多項(xiàng)式降冪排列的。f(x)=anxn+an-1xn-1+……+a0

可用行向量p=[anan-1……a1a0]表示poly——產(chǎn)生特征多項(xiàng)式系數(shù)向量特征多項(xiàng)式一定是n+1維的特征多項(xiàng)式第一個(gè)元素一定是1四、多項(xiàng)式運(yùn)算例:a=[123;456;780];p=poly(a)p=1.00-6.00-72.00-27.00p是多項(xiàng)式p(x)=x3-6x2-72x-27的matlab描述方法,我們可用:p1=poly2str(p,‘x’)—函數(shù)文件,顯示數(shù)學(xué)多項(xiàng)式的形式p1=x^3-6x^2-72x-272.roots——求多項(xiàng)式的根a=[123;456;780];p=poly(a)p=1.00-6.00-72.00-27.00r=roots(p)r=12.12-5.73——顯然r是矩陣a的特征值-0.39當(dāng)然我們可用poly令其返回多項(xiàng)式形式p2=poly(r)p2=1.00-6.00-72.00-27.00matlab規(guī)定多項(xiàng)式系數(shù)向量用行向量表示,一組根用列向量表示。3.conv,convs多項(xiàng)式乘運(yùn)算例:a(x)=x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(4x2+5x+6)a=[123];b=[456];c=conv(a,b)=conv([123],[456])c=4.0013.0028.0027.0018.00p=poly2str(c,'x')p=4x^4+13x^3+28x^2+27x+184.deconv多項(xiàng)式除運(yùn)算a=[123];c=[4.0013.0028.0027.0018.00]d=deconv(c,a)d=4.005.006.00[d,r]=deconv(c,a)余數(shù)c除a后的整數(shù)5.多項(xiàng)式微分matlab提供了polyder函數(shù)多項(xiàng)式的微分。命令格式:polyder(p):求p的微分polyder(a,b):求多項(xiàng)式a,b乘積的微分[p,q]=polyder(a,b):求多項(xiàng)式a,b商的微分例:a=[12345];poly2str(a,'x')ans=x^4+2x^3+3x^2+4x+5b=polyder(a)b=4664poly2str(b,'x')ans=4x^3+6x^2+6x+4五、代數(shù)方程組求解matlab中有兩種除運(yùn)算左除和右除。對于方程ax+b,a為an×m矩陣,有三種情況:當(dāng)n=m時(shí),此方程成為“恰定”方程當(dāng)n>m時(shí),此方程成為“超定”方程當(dāng)n<m時(shí),此方程成為“欠定”方程matlab定義的除運(yùn)算可以很方便地解上述三種方程1.恰定方程組的解方程ax=b(a為非奇異)

x=a-1*

b矩陣逆兩種解:x=inv(a)b—采用求逆運(yùn)算解方程x=a\b—采用左除運(yùn)算解方程方程ax=ba=[12;23];b=[8;13];x=inv(a)*b

x=a\bx=x=2.002.003.003.00

=

ax=b例:x1+2x2=82x1+3x2=132.超定方程組的解方程ax=b,m<n時(shí)此時(shí)不存在唯一解。方程解(a'a)x=a'bx=(a'

a)-1a'b——求逆法x=a\b——matlab用最小二乘法找一個(gè)準(zhǔn)確地基本解。例:x1+2x2=12x1+3x2=23x1+4x2=3a=[12;23;34];b=[1;2;3];解1x=a\b解2x=inv(a'a)a'b

x=x=1.001.0000.00

=

ax=b3.欠定方程組的解

當(dāng)方程數(shù)少于未知量個(gè)數(shù)時(shí),即不定情況,有無窮多個(gè)解存在。matlab可求出兩個(gè)解:用除法求的解x是具有最多零元素的解是具有最小長度或范數(shù)的解,這個(gè)解是基于偽逆pinv求得的。x1+2x2+3x3=12x1+3x2+4x3=2a=[123;234];b=[1;2];x=a\bx=pinv(a)bx=x=1.000.8300.330-0.17=ax=b六、微分方程求解微分方程求解的仿真算法有多種,常用的有Euler(歐拉法)、RungeKutta(龍格-庫塔法。Euler法稱一步法,用于一階微分方程當(dāng)給定仿真步長時(shí):所以

yn+1=yn+h·f(xn,yn)n=0,1,2…y(x0)=y0RungeKutta法龍格-庫塔法:實(shí)際上取兩點(diǎn)斜率的平均斜率來計(jì)算的,其精度高于歐拉算法。龍格-庫塔法:ode23ode45

k1=hf(xn,yn)k2=hf(xn+h,yn+k1)例:x+(x2-1)x+x=0為方便令x1=x,x2=x分別對x1,x2求一階導(dǎo)數(shù),整理后寫成一階微分方程組形式

x1=x2x2=x2(1-x12)-x1建立m文件解微分方程······建立m文件functionxdot=wf(t,x)xdot=zeros(2,1)xdot(1)=x(2)xdot(2)=x(2)*(1-x(1)^2)-x(1)給定區(qū)間、初始值;求解微分方程t0=0;tf=20;x0=[00.25]';[t,x]=ode23('wf',t0,tf,x0)pl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論