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