MATLAB 數(shù)值計算.ppt_第1頁
MATLAB 數(shù)值計算.ppt_第2頁
MATLAB 數(shù)值計算.ppt_第3頁
MATLAB 數(shù)值計算.ppt_第4頁
MATLAB 數(shù)值計算.ppt_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MATLAB數(shù)值計算, matlab 具有出色的數(shù)值計算能力,占據(jù)世界上數(shù)值計算軟件的主導(dǎo)地位,數(shù)值運算的功能,創(chuàng)建矩陣 矩陣運算 多項式運算 線性方程組 數(shù)值統(tǒng)計 線性插值 函數(shù)優(yōu)化 微分方程的數(shù)值解,一、命令行的基本操作,創(chuàng)建矩陣的方法 直接輸入法 規(guī)則: 矩陣元素必須用 括住 矩陣元素必須用逗號或空格分隔 在 內(nèi)矩陣的行與行之間必須 用分號分隔,矩陣元素可以是任何matlab表達式 ,可以是實數(shù) ,也可以是復(fù)數(shù),復(fù)數(shù)可用特殊函數(shù)I,j 輸入 a=1 2 3;4 5 6 x=2 pi/2;sqrt(3) 3+5i,矩陣元素,符號的作用,逗號和分號的作用 逗號和分號可作為指令間的分隔符,ma

2、tlab允許多條語句在同一行出現(xiàn)。 分號如果出現(xiàn)在指令后,屏幕上將不顯示結(jié)果。,注意:只要是賦過值的變量,不管是否在屏幕上顯示過,都存儲在工作空間中,以后可隨時顯示或調(diào)用。變量名盡可能不要重復(fù),否則會覆蓋 。 當(dāng)一個指令或矩陣太長時,可用續(xù)行,冒號的作用 用于生成等間隔的向量,默認間隔為1。 用于選出矩陣指定行、列及元素。 循環(huán)語句,2.用matlab函數(shù)創(chuàng)建矩陣,空陣 matlab允許輸入空陣,當(dāng)一項操作無結(jié)果時,返回空陣。 rand 隨機矩陣 eye 單位矩陣 zeros 全部元素都為0的矩陣 ones 全部元素都為1的矩陣,還有伴隨矩陣、稀疏矩陣、魔方矩陣、對角矩陣、范德蒙等矩陣的創(chuàng)建,

3、就不一一介紹了。 注意:matlab嚴格區(qū)分大小寫字母,因此a與A是兩個不同的變量。 matlab函數(shù)名必須小寫。,3. 矩陣的修改, 直接修改 可用鍵找到所要修改的矩陣,用鍵移動到要修改的矩陣元素上即可修改。 指令修改 可以用A(,)= 來修改。,例如 a=1 2 0;3 0 5;7 8 9 a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0,還可以用函數(shù)subs修改,matlab6.0還可用find函數(shù)修改。,把matlab工作空間中一些有用的數(shù)據(jù)長久保存下來的方法是生成mat數(shù)據(jù)文件。 save 將工作空間中所有的變量存到matlab.m

4、at文件中。,二、數(shù)據(jù)的保存與獲取,默認文件名,save data將工作空間中所有的變量存到data.mat文件中。 save data a b 將工作空間中a和b變量存到data.mat文件中。 下次運行matlab時即可用load指令調(diào)用已生成的mat文件。,load load data load data a b mat文件是標(biāo)準(zhǔn)的二進制文件,還可以ASCII碼形式保存。,即可恢復(fù)保存過的所有變量,矩陣加、減(,)運算 規(guī)則: 相加、減的兩矩陣必須有相同的行和列兩矩陣對應(yīng)元素相加減。 允許參與運算的兩矩陣之一是標(biāo)量。標(biāo)量與矩陣的所有元素分別進行加減操作。,三、矩陣運算,2. 矩陣乘()運

5、算 規(guī)則: A矩陣的列數(shù)必須等于B矩陣的行數(shù) 標(biāo)量可與任何矩陣相乘。 a=1 2 3;4 5 6;7 8 0;b=1;2;3;c=a*b c =14 32 23,d=-1;0;2;f=pi*d f = -3.1416 0 6.2832 矩陣除的運算在線性代數(shù)中沒有,有矩陣逆的運算,在matlab中有兩種矩陣除運算,a p a 自乘p次冪,方陣,1的整數(shù),3. 矩陣乘方 an,ap,pa,對于p的其它值,計算將涉及特征值 和特征向量,如果p是矩陣,a是標(biāo)量 ap使用特征值和特征向量自乘到p次 冪;如a,p都是矩陣,ap則無意義。,a=1,2,3;4,5,6;7,8,9;a2 ans =30 36

6、 42 66 81 96 102 126 150,當(dāng)一個方陣有復(fù)數(shù)特征值或負實特征值時,非整數(shù)冪是復(fù)數(shù)陣。,a0.5 ans = 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i,inv 矩陣求逆 det 行列式的值 eig 矩陣的特征值 diag 對角矩陣 矩陣轉(zhuǎn)置 sqrt 矩陣開方,4. 矩陣的其它運算,5.矩陣的一些特殊操作,矩陣的變維

7、 a=1:12;b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) 矩陣的變向 rot90:旋轉(zhuǎn); fliplr:上翻; flipud:下翻 矩陣的抽取 diag:抽取主對角線;tril: 抽取主下三角; triu:抽取主上三角 矩陣的擴展,關(guān)系運算,數(shù)組運算指元素對元素的算術(shù)運算, 與通常意義上的由符號表示的線性代數(shù) 矩陣運算不同 數(shù)組加減(.+,.-) a.+b a.- b,5. 矩陣的數(shù)組運算,對應(yīng)元素相加減(與矩陣加減等效),2. 數(shù)組乘除(,./,.) ab a,b兩數(shù)組必須有相同的行 和列兩數(shù)組相應(yīng)元素相乘。 a=1 2 3;4 5 6;7 8 9; b

8、=2 4 6;1 3 5;7 9 10; a.*b ans = 2 8 18 4 15 30 49 72 90,a=1 2 3;4 5 6;7 8 9; b=2 4 6;1 3 5;7 9 10; a*b ans = 25 37 46 55 85 109 85 133 172,a./b=b.a a.b=b./a a./b=b.a 都是a的元素被b的對應(yīng)元 素除 a.b=b./a 都是a的元素被b的對應(yīng)元 素除 例: a=1 2 3;b=4 5 6; c1=a.b; c2=b./a c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000, 給出a,

9、b對應(yīng)元素間的商.,3. 數(shù)組乘方(.) 元素對元素的冪 例: a=1 2 3;b=4 5 6; z=a.2 z = 1.00 4.00 9.00 z=a.b z = 1.00 32.00 729.00,matlab語言把多項式表達成一個行向量, 該向量中的元素是按多項式降冪排列的。 f(x)=anxn+an-1xn-1+loa0 可用行向量 p=an an-1 a1 +a0表示 poly 產(chǎn)生特征多項式系數(shù)向量 特征多項式一定是n+1維的 特征多項式第一個元素一定是1,四、 多項式運算,例:a=1 2 3;4 5 6;7 8 0; p=poly(a) p =1.00 -6.00 -72.00

10、 -27.00 p是多項式p(x)=x3-6x2-72x-27的matlab描述方法,我們可用: p1=poly2str(p,x) 函數(shù)文件,顯示 數(shù)學(xué)多項式的形式 p1 =x3 - 6 x2 - 72 x - 27,2.roots 求多項式的根,a=1 2 3;4 5 6;7 8 0;p=poly(a) p = 1.00 -6.00 -72.00 -27.00 r=roots(p) r = 12.12 -5.73 顯然 r是矩陣a的特征值 -0.39,當(dāng)然我們可用poly令其返回多項式形式 p2=poly(r) p2 = 1.00 -6.00 -72.00 -27.00 matlab規(guī)定多項

11、式系數(shù)向量用行向量表示,一組根用列向量表示。,3.conv,convs多項式乘運算,例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=1 2 3;b=4 5 6; c=conv(a,b)=conv(1 2 3,4 5 6) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,x) p = 4 x4 + 13 x3 + 28 x2 + 27 x + 18,4.deconv多項式除運算,a=1 2 3; c = 4.00 13.00 28.00 27.00 18.00 d=deconv(c,a)

12、 d =4.00 5.00 6.00,5.多項式微分,matlab提供了polyder函數(shù)多項式的微分。 命令格式: polyder(p): 求p的微分 polyder(a,b): 求多項式a,b乘積的微分 p,q=polyder(a,b): 求多項式a,b商的微分 例:a=1 2 3 4 5; poly2str(a,x) ans = x4 + 2 x3 + 3 x2 + 4 x + 5 b=polyder(a) b = 4 6 6 4 poly2str(b,x) ans =4 x3 + 6 x2 + 6 x + 4,五、代數(shù)方程組求解,matlab中有兩種除運算左除和右除。 對于方程ax+b

13、,a 為anm矩陣,有三種情 況: 當(dāng)n=m時,此方程成為“恰定”方程 當(dāng)nm時,此方程成為“超定”方程 當(dāng)nm時,此方程成為“欠定”方程 matlab定義的除運算可以很方便地解上 述三種方程,1.恰定方程組的解,方程ax+b(a為非奇異) x=a-1 b 矩陣逆 兩種解: x=inv(a)b 采用求逆運算解方程 x=ab 采用左除運算解方程,方程ax=b a=1 2;2 3;b=8;13; x=inv(a)*b x=ab x = x = 2.00 2.00 3.00 3.00,=,a x = b,例: x1+2x2=8 2x1+3x2=13,2.超定方程組的解,方程 ax=b ,mn時此時不

14、存在唯一解。 方程解 (a a)x=a b x=(a a)-1 a b 求逆法 x=ab matlab用最小二乘法找一 個準(zhǔn)確地基本解。,例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3 a=1 2;2 3;3 4;b=1;2;3; 解1 x=ab 解2 x=inv(aa) a b x = x = 1.00 1.00 0 0.00,=,a x = b,3.欠定方程組的解,當(dāng)方程數(shù)少于未知量個數(shù)時,即不定 情況,有無窮多個解存在。 matlab可求出兩個解: 用除法求的解x是具有最多零元素的解 是具有最小長度或范數(shù)的解,這個解是基于偽逆pinv求得的。,x1+2x2+3x3=1 2

15、x1+3x2+4x3=2 a=1 2 3;2 3 4;b=1;2; x=ab x=pinv(a)b x = x = 1.00 0.83 0 0.33 0 -0.17,a x = b,六、微分方程求解,微分方程求解的仿真算法有多種,常用的有Euler(歐拉法)、Runge Kutta(龍 格-庫塔法。 Euler法稱一步法,用于一階微分方程,當(dāng)給定仿真步長時: 所以 yn+1 = yn + hf (xn,yn) n=0,1,2 y(x0)=y0,Runge Kutta法 龍格-庫塔法:實際上取兩點斜率 的平均 斜率來計算的,其精度高 于歐拉算法 。 龍格-庫塔法:ode23 ode45,k1=h

16、f(xn,yn) k2=hf(xn+h,yn+k),例:x+(x2-1)x+x=0 為方便令x1=x,x2=x分別對x1,x2求一 階導(dǎo)數(shù),整理后寫成一階微分方程組 形式 x1=x2 x2=x2(1-x12)-x1 建立m文件 解微分方程,建立m文件 function xdot=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=0 0.25; t,x=ode23(wf, t0, tf, x0) plot(t,x), figure(2),plot(x(:

17、,1),x(:,2),命令格式: T,Y = ODE23(ODEFUN,TSPAN,Y0) 建立m文件 function dxdt=wf(t,x) dxdt=x(2);x(2)*(1-x(1)2)-x(1); 求解微分方程 t,x=ode23(wf,0 30,0 0.25); plot(t,x); figure(2) plot(x(:,1),x(:,2),七、函數(shù)優(yōu)化 尋優(yōu)函數(shù): fmin 單變量函數(shù) fmins 多變量函數(shù) constr 有約束條件,無約束條件,例1:f(x)=x2+3x+2在-5 5區(qū)間的最小值 f=fmin(x2+3*x+2,-5,5) 例2:f(x)=100(x2-x1

18、2)2+(a-x1)2在x1=a, x2=a2處有最小值 function f=xun(x,a) f=100*(x(2)-x(1).2).2+(a-x(1).2; x=fmins(xun,0,0, , ,sqrt(2),八、數(shù)據(jù)分析與插值函數(shù),max 各列最大值 mean 各列平均值 sum 各列求和 std 各列標(biāo)準(zhǔn)差 var 各列方差 sort 各列遞增排序,九、擬合與插值,1. 多項式擬合 x0=0:0.1:1; y0=-.447 1.978 3.11 5.25 5.02 4.66 4.01 4.58 3.45 5.35 9.22; p=polyfit(x0,y0,3) p = 56.6915 -87.1174 40.0070 -0.9043 xx=0:0.0

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論