版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第三講 MATLAB的符號運算,—— matlab 不僅具有數(shù)值運算功能,還開發(fā)了在matlab環(huán)境下實現(xiàn)符號計算的工具包SymbolicMath Toolbox,符號運算的功能,符號表達式、符號矩陣的創(chuàng)建符號線性代數(shù)因式分解、展開和簡化符號代數(shù)方程求解符號微積分符號微分方程,一、符號運算的基本操作,什么是符號運算與數(shù)值運算的區(qū)別 ※ 數(shù)值運算中必須先對變量賦值,然后才能參與運算?!?※ 符號運算無須事
2、先對獨立變量賦值,運算結(jié)果以標準的符號形式表達。,特點:? 運算對象可以是沒賦值的符號變量? 可以獲得任意精度的解Symbolic Math Toolbox——符號運算工具包通過調(diào)用Maple軟件實現(xiàn)符號計算的。maple軟件——主要功能是符號運算, 它占據(jù)符號軟件的主導地位。,2. 符號變量與符號表達式,f = 'sin(x)+5x'f —— 符號變量名sin(x)+5x—— 符號表達式'
3、 '—— 符號標識符號表達式一定要用' ' 單引 號括起來matlab才能識別。,,' ' 的內(nèi)容可以是符號表達式,也可以是符號方程。例: f1='a?x^2+b?x+c' —— 二次三項式 f2= 'a?x^2+b?x+c=0' —— 方程 f3='Dy+y^2=1' ——微
4、分方程※符號表達式或符號方程可以賦給符號變量,以后調(diào)用方便;也可以不賦給符號變量直接參與運算,3.符號矩陣的創(chuàng)建 數(shù)值矩陣A=[1,2;3,4] A=[a,b;c,d] —— 不識別?用matlab函數(shù)sym創(chuàng)建矩陣(symbolic的縮寫)命令格式:A=sym('[ ]') ※ 符號矩陣內(nèi)容同數(shù)值矩陣 ※ 需用sym指令定義
5、 ※ 需用' '標識,例如:A = sym('[a , 2*b ; 3*a , 0]') A = [ a, 2*b] [3*a, 0] 這就完成了一個符號矩陣的創(chuàng)建。注意:符號矩陣的每一行的兩端都有方 括號,這是與 matlab數(shù)值矩陣的一
6、個重要區(qū)別。,?用字符串直接創(chuàng)建矩陣,模仿matlab數(shù)值矩陣的創(chuàng)建方法 需保證同一列中各元素字符串有相 同的長度。,例:A =['[ a,2*b]'; '[3*a, 0]'] A = [ a, 2*b] [3*a, 0],? 符號矩陣的修改,a.直接修改 可用?、 ?鍵找到所要修改的矩陣,
7、直接修改 b.指令修改 用A1=sym(A,?,?,'new') 來修改。 用A1=subs(A, 'new', 'old')來修改 A1=subs(S, 'old' ,'new'),例如:A =[ a, 2*b] [3*a, 0]A1=sym(A,2,2, '4*b')
8、 A1 =[ a, 2*b] [3*a, 4*b],A(2,2)='4*b'A3 = [ a, 2*b] [3*a, 4*b],A2=subs(A1, 'c', 'b') A2 =[ a, 2*c] [3*a, 4*c],將數(shù)值矩陣轉(zhuǎn)化為符號矩陣 函數(shù)調(diào)用格式:sym(A)
9、A=[1/3,2.5;1/0.7,2/5]A = 0.3333 2.5000 1.4286 0.4000sym(A)ans =[ 1/3, 5/2][10/7, 2/5],? 符號矩陣與數(shù)值矩陣的轉(zhuǎn)換,將符號矩陣轉(zhuǎn)化為數(shù)值矩陣函數(shù)調(diào)用格式: numeric(A)A =[ 1/3, 5/2][10/7, 2/5]numeric(A)ans = 0.3333 2.
10、5000 1.4286 0.4000,符號矩陣運算 數(shù)值運算中,所有矩陣運算操作指令都比較直觀、簡單。例如:a=b+c; a=a*b ;A=2*a^2+3*a-5等。 而符號運算就不同了,所有涉及符號運算的操作都有專用函數(shù)來進行,二、符號運算,符號矩陣運算的函數(shù):symadd(a,d) —— 符號矩陣的加symsub(a,b) —— 符號矩陣的減symmul(a,b) —— 符號矩陣的乘s
11、ymdiv(a,b) —— 符號矩陣的除sympow(a,b) —— 符號矩陣的冪運算symop(a,b) —— 符號矩陣的綜合運算,例1:f= '2*x^2+3*x-5'; g= 'x^2+x-7';h= symadd(f,g)h= 3*x^2+4*x-12例2:f='cos(x)';g= ' sin(2*x)';symop(f,'/
12、9;,g,'+',f,'*',g) ans =cos(x)/sin(2*x)+cos(x)*sin(2*x),例1:f= 2*x^2+3*x-5; g= x^2+x-7;>> syms x>> f=2*x^2+3*x-5; g= x^2+x-7;>> h=f+gh = 3*x^2+4*x-12例2:f=cos(x);g= sin(2*x);>&g
13、t; syms x>> f=cos(x);g=sin(2*x);>> f/g+f*gans =cos(x)/sin(x)+cos(x)*sin(x),符號運算函數(shù):symsize —— 求符號矩陣維數(shù)charploy —— 特征多項式determ —— 符號矩陣行列式的值eigensys —— 特征值和特征向量inverse —— 逆矩陣transpose —— 矩陣的轉(zhuǎn)置jordan ——
14、 約當標準型simple —— 符號矩陣簡化,2. 任意精度的數(shù)學運算,在symbolic中有三種不同的算術(shù)運算:數(shù)值類型 matlab的浮點算術(shù)運算有理數(shù)類型 maple的精確符號運算vpa類型 maple的任意精度算術(shù)運算,浮點算術(shù)運算1/2+1/3 --(定義輸出格式format long)ans =0.83333333333333符號運算sym(1/2)+(1/3)ans = 5/6 --精確解,
15、任意精度算術(shù)運算digits(n) —— 設(shè)置可變精度,缺省16位vpa(x,n) —— 顯示可變精度計算digits(25)vpa(1/2+1/3)ans =.8333333333333333333333333,vpa(5/6,40) ans =.8333333333333333333333333333333333333333 a=sym('[1/4,exp(1);log(3),3/7]')a
16、=[ 1/4,exp(1)][log(3), 3/7]vpa(a,10)ans =[.2500000000, 2.718281828][1.098612289, .4285714286],diff(f) — 對缺省變量求微分diff(f,v) — 對指定變量v求微分diff(f,v,n) —對指定變量v求n階微分int(f) — 對f表達式的缺省變量求積分int(f,v) — 對f表達式的v變量求積分
17、int(f,v,a,b) — 對f表達式的v變量在(a,b) 區(qū)間求定積分,3. 符號微積分與積分變換,int('被積表達式','積分變量','積分上限', '積分下限')—— 定積分,,,——缺省時為不定積分,mtaylor(f,n) —— 泰勒級數(shù)展開ztrans(f) —— Z變換Invztra
18、ns(f) —— 反Z變換Laplace(f) —— 拉氏變換Invlaplace(f) —— 反拉氏變換fourier(f) —— 付氏變換Invfourier(f) —— 反付氏變換,,例1.計算二重不定積分,F=int(int('x*exp(-x*y)','x'),'y')F= 1/y*exp(-x*y)例2.計算 f='x*exp(-x*10)'
19、;的Z變換 F=ztrans(f) F= z*exp(-10)/(z-exp(-10))^2,>> syms x y>> F=int(int(x*exp(-x*y),x),y)F =1/y*exp(-x*y)>> syms x>> f=x*exp(-x*10);>> F=ztrans(f)>> F=ztrans(x*exp(-x*1
20、0);F =z*exp(-10)/(z-exp(-10))^2,例3. 計算指數(shù)函數(shù)eAt。用拉氏反變換法計算eAt的公式為: eAt = L-1[(SI-A)-1]系統(tǒng)矩陣A=,,結(jié)果:,>> a=[0 1;-2 -3];>> syms s>> b=(s*eye(2)-a)b =[ s, -1][ 2, s+3]>> B=inv(b)
21、 [ (s+3)/(s^2+3*s+2), 1/(s^2+3*s+2)] [ -2/(s^2+3*s+2), s/(s^2+3*s+2)],>> b11=ilaplace(sym(b,1,1));b(1,1)=b11;>> b12=ilaplace(sym(b,1,2));b(1,2)=b12;>> b21=ilaplace(sym(b,2,1));b(2,1)=b2
22、1;>> b22=ilaplace(sym(b,2,2));b(2,2)=b22;>> bb = [ -exp(-2*t)+2*exp(-t), exp(-t)-exp(-2*t)] [ -2*exp(-t)+2*exp(-2*t), 2*exp(-2*t)-exp(-t)],4.符號代數(shù)方程求解,matlab符號運算能夠解一般的線性方程、非線性方程及一般的代數(shù)方程、代數(shù)方程組。當方程組
23、不存在符號解時,又無其他自由參數(shù),則給出數(shù)值解。命令格式:solve(f) —— 求一個方程的解Solve(f1,f2, …fn) —— 求n個方程的解,例1. f = ax2+bx+c 求解f='a*x^2+b*x+c'; solve(f) —— 對缺省變量x求解ans =[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))],計算機格
24、式,一般格式,例2. 符號方程cos(x)=sin(x) tan(2*x)=sin(x)求解f1=solve('cos(x)=sin(x)'),f1 =1/4*pi,solve(f , 'b' ) —— 對指定變量b求解ans =-(a*x^2+c)/x,f3= matlab4.2的解[
25、 0][ pi][ atan(1/2*(-2*3^(1/2))^(1/2),1/2+1/2*3^(1/2))][ atan(-1/2*(-2*3^(1/2))^(1/2),1/2+1/2*3^(1/2))][ atan(1/2*2^(1/2)*3^(1/4)/(1/2-
26、1/2*3^(1/2)))+pi][ -atan(1/2*2^(1/2)*3^(1/4)/(1/2-1/2*3^(1/2)))-pi],f2=solve('tan(2*x)=sin(x)')f2 =matlab4.2的解[ 0][acos(1/2+1/2*3^(1/2))][acos(1/2 -1/2*3^(1/2))],numeric
27、(f3)ans = 0 3.1416 0 + 0.8314i 0 - 0.8314i 1.9455 -1.9455,,numeric(f2)ans = 0 0 + 0.8314i 1.9455 matlab4.2與6.1的對比,,例3
28、. 解方程組 x+y+z=1 x-y+z=2 2x-y-z=1g1='x+y+z=1',g2='x-y+z=2',g3='2*x-y-z=1'f=solve(g1,g2,g3)f=solve('x+y+z=1','x-y+z=2
29、9;,'2*x-y-z=1')f =z = 5/6, y = -1/2, x = 2/3,,f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')f = x: [1x1 sym]f.x ans =2/3 y: [1x1 sym]f.y ans =-1/2 z: [1x1 s
30、ym]f.z ans =5/6 [x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1') x = 2/3 y =-1/2 z =5/6,5. 符號微分方程求解 ——用一個函數(shù)可以方便地得到微分方程的符號解符號微分方程求解指令:dsolve命令格式:dsolve(f,g)f —— 微分方程,可多至12個微分方程的
31、求解;g為初始條件默認自變量為 'x',可任意指定自變量't', 'u'等微分方程的各階導數(shù)項以大寫字母D表示,,[y1,y2…]=dsolve(x1,x2,…xn) —— 返回 微分方程的解,一階微分方程dsolve('Dx=y','Dy=x','x(0)=0','y(0
32、)=1')ans =x(t) = sin(t), y(t) = cos(t)二階微分方程dsolve('D2y=-a^2*y','y(0)=1','Dy(pi/a)=0')ans =cos(a*x),例3.,y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')ans =exp(-x
33、)*cos(x)+exp(-x)*sin(x)ezplot(y) —— 方程解y(t)的時間曲線圖,求該方程的解,三、maple函數(shù)——符號運算的擴展,maple——是專門進行數(shù)學運算的軟件工具, 具有超強的符號運算能力,提供了 幾乎包括所有數(shù)學領(lǐng)域的專用函數(shù)matlab——依賴于maple的內(nèi)核與函數(shù)庫,擴 展了自己的符號
34、運算功能。 matlab還設(shè)計了對maple庫函數(shù)的調(diào)用功能使得已有的maple數(shù)學功能,可以擴充matlab中,作為自身符號運算能力的擴展。,1. maple內(nèi)核訪問函數(shù),可以訪問maple內(nèi)核的matlab函數(shù): maple ——— 訪問maple內(nèi)核函數(shù) mapleinit —— maple函數(shù)初始化 mpa ———— maple函數(shù)定義 mhelp ——— maple函數(shù)幫助命令
35、 procread —— maple函數(shù)程序安裝,?. maple 的調(diào)用格式,maple('表達式') —— 將表達式送至maple內(nèi)核,返回符號表達式結(jié)果。maple ('函數(shù)',變量1,變量2) ——調(diào)用maple函數(shù),傳遞給定變量。,,例1. 展開5階 bernoulli 多項式,計算 x=3 時bernoulli 數(shù)。a=maple('bernou
36、lli(5,x)')a =-1/6*x+5/3*x^3+x^5-5/2*x^4a=maple('bernoulli(5,3)')a =85,,,例2. 化簡三角函數(shù)式sin2x+cos2xa=maple('simplify(sin(x)^2+cos(x)^2);')a =1例4. 求f(t)=e-3tsint的拉式變換f=maple('laplace(exp(-3*t)
37、*sin(t),t,s);')f =1/((s+3)^2+1),例4. 尋找二次多項式的完全平方 f (x) = x2+2x+2a=maple('completesquare(x^2+2*x+2)')a =completesquare(x^2+2*x+2),將工具包裝入內(nèi)存,maple('with(student);')a=maple('completesqu
38、are(x^2+2*x+2)')a =(x+1)^2+1,maple軟件中的所有函數(shù),在初始化時并沒有完全裝入內(nèi)存,可用readlib指令把庫函數(shù)讀入內(nèi)存,或用with指令將應(yīng)用工具包裝入內(nèi)存。調(diào)用格式maple('readlib(函數(shù)名);')maple('with(工具包名);'),例5.求sin(x2+y2)在x=0,y=0處泰勒級數(shù)展開式,8階截斷。maple('mta
39、ylor(sin(x^2+y^2),[x=0,y=0],8)')ans =mtaylor(sin(x^2+y^2),[x = 0, y = 0],8)maple('readlib(mtaylor);')maple('mtaylor(sin(x^2+y^2),[x=0,y=0],8)')ans =x^2+y^2-1/6*x^6-1/2*y^2*x^4-1/2*y^4*x^2-1/6*y^
40、6,2. mpa —— maple變量定義,任何一個matlab定義的函數(shù)f,可使用mpa語句直接調(diào)用,還可把 f 定義成maple變量v。maple的工作空間與matlab工作空間是相互獨立的, 所以f 與v是屬于不同工作空間中的變量mpa的調(diào)用格式: mpa('v',f) mpa v f,f為matlab工作空間中已存在的變量,例. 電磁力計算公式為試I=0.5,x=0.1鄰域展開泰勒級數(shù),3階截
41、斷,令常數(shù) ,1.直接調(diào)用maple('readlib(mtaylor);')maple('mtaylor(k*I^2/x^2,[I=0.5,x=0.1],3);'),2.定義符號函數(shù)f(matlab6.1無map函數(shù))f='k*I^2/x^2';maple('mtaylor(f,[I=0.5,x=0.1],3);')an
42、s =mtaylor(f,[I = .5, x = .1],3)mpa('u',f)maple('mtaylor(u,[I=0.5,x=0.1],3);')ans =25.*k-.50e3*k*(x-.1)+.10e3*k*(I-.5)+7500.000000000000*k*(x-.1)^2+.1e3*k*(I-.5)^2-.20e4*k*(I-.5)*(x-.1),,注意:matlab符號運
43、算時,可以識別matlab定義的符號變量,但在調(diào)用 maple 函數(shù)時,需將matlab變量定義為maple變量后,所調(diào)用的函數(shù)方可識別和執(zhí)行,3.mhelp —— maple函數(shù)幫助命令,? mhelp 是協(xié)助檢索maple庫函數(shù)的專用命令調(diào)用格式:mhelp 相關(guān)詞條例如: mhelp intro — maple介紹 mhelp maple — maple命令格式 mhelp tutorial —maple入門
44、mhelp index —maple檢索,工具詞條函數(shù)詞條,,mhelp index 用于工具包檢索,library ——maple標準庫函數(shù)packages —— 應(yīng)用工具包libmisc —— 其它庫函數(shù)statements —— maple語句描述expressions —— maple表達式datatypes —— maple數(shù)據(jù)格式tables —— maple表格和陣列procedures —— maple
45、程序misc —— maple其它應(yīng)用,一般幫助文本主要包括以下部分FUNCTION—— 函數(shù)功能說明CALLING SEQUENCE—— 調(diào)用格式PARAMETERS —— 調(diào)用參數(shù)說明SYNOPSIS —— 語法說明EXAMPLES —— 應(yīng)用舉例SEE ALSO —— 相關(guān)詞條,4.maple庫函數(shù)maple庫函數(shù)共分四類?maple內(nèi)部函數(shù):駐留函數(shù)任何條件下都可調(diào)用 mhelp index[int
46、ernal] ? maple的外部函數(shù)—讀庫定義部分: 調(diào)用時先執(zhí)行讀庫命令,因此與內(nèi)部函 數(shù)一樣可直接調(diào)用 mhelp index[external],? maple的外部函數(shù)—讀庫裝入部分 maple其余外部函數(shù)需要在使用前執(zhí)行maple('readlib(函數(shù)名);')命令將其裝入內(nèi)存 mhelp index[libmisc] ? maple的
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第二講 matlab求微分方程、導數(shù)、積分
- matlab學習 第5章 matlab數(shù)值計算
- 數(shù)學建模培訓-matlab基礎(chǔ)講義2-(2014第二講)
- 數(shù)學建模培訓-matlab基礎(chǔ)講義2-(2014第二講)
- 第7講matlab的符號計算
- 數(shù)值計算方法 (第二版)
- 通信系統(tǒng)的計算機模擬第二講
- matlab實現(xiàn)電磁場數(shù)值計算
- 第二講極限
- 專題二第二講
- 第二講 密度
- 第二講 冠詞
- 黨校第二講
- 第二講 數(shù)數(shù)的竅門
- 第三章 matlab的數(shù)值計算功能
- 第二講 私人禮儀
- 聲音主題第二講
- 住宅原理(第二講)
- 第二講 語言發(fā)聲
- 第二講焊接技術(shù)
評論
0/150
提交評論