數(shù)模培訓(xùn)-matlab3 MATLAB符號(hào)計(jì)算功能_第1頁(yè)
數(shù)模培訓(xùn)-matlab3 MATLAB符號(hào)計(jì)算功能_第2頁(yè)
數(shù)模培訓(xùn)-matlab3 MATLAB符號(hào)計(jì)算功能_第3頁(yè)
數(shù)模培訓(xùn)-matlab3 MATLAB符號(hào)計(jì)算功能_第4頁(yè)
數(shù)模培訓(xùn)-matlab3 MATLAB符號(hào)計(jì)算功能_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

MATLAB的符號(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)算 與數(shù)值運(yùn)算的區(qū)別※數(shù)值運(yùn)算中必須先對(duì)變量賦值,然后才能參與運(yùn)算。※符號(hào)運(yùn)算無(wú)須事先對(duì)獨(dú)立變量賦值,運(yùn)算結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式表達(dá)。特點(diǎn)運(yùn)算對(duì)象可以是沒(méi)賦值的符號(hào)變量??梢垣@得任意精度的解。SymbolicMathToolbox——符號(hào)運(yùn)算工具包,通過(guò)調(diào)用Maple軟件實(shí)現(xiàn)符號(hào)計(jì)算。Maple軟件——主要功能是符號(hào)運(yùn)算,它占據(jù)符號(hào)軟件的主導(dǎo)地位。

MATLAB包含兩個(gè)相關(guān)的工具箱:基本符號(hào)工具箱和擴(kuò)展符號(hào)工具箱符號(hào)工具箱引入了符號(hào)對(duì)象;而數(shù)值運(yùn)算中的數(shù)據(jù)被稱為數(shù)值對(duì)象。符號(hào)工具箱重載了MATLAB中的許多數(shù)值計(jì)算函數(shù),故使用方便。一、符號(hào)變量與符號(hào)表達(dá)式1符號(hào)變量:sym函數(shù)(symbolic的縮寫)例>>x=sym(‘x’)>>y=sym(‘y’)syms函數(shù)例>>symsxyz兩者功能相同,但syms輸入更方便。2符號(hào)表達(dá)式例:

>>f=sym('sin(x)+5*x’)f——符號(hào)變量名

sin(x)+5*x——符號(hào)表達(dá)式

'

'——符號(hào)標(biāo)識(shí)※符號(hào)表達(dá)式一定要用''單引號(hào)括起來(lái)MATLAB才能識(shí)別?!膬?nèi)容可以是符號(hào)表達(dá)式,也可以是符號(hào)方程。例:

f1=sym('ax^2+bx+c')——二次三項(xiàng)式

f2=sym('ax^2+bx+c=0')——方程

f3=sym('Dy+y^2=1')——微分方程※符號(hào)表達(dá)式或符號(hào)方程可以賦給符號(hào)變量,以后調(diào)用方便;也可以不賦給符號(hào)變量直接參與運(yùn)算。例1

sym('x'),rho=sym('(1+sqrt(5))/2')f=rho^2-rho-1,fs=simplify(f)ans=xrho=(1+sqrt(5))/2f=(1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2)fs=0符號(hào)對(duì)象和數(shù)值對(duì)象之間的轉(zhuǎn)換例2rho=sym('(1+sqrt(5))/2');a=double(rho)b=sym((1+sqrt(5))/2,'r')digits(5);c=sym((1+sqrt(5))/2,'d')a=1.6180b=7286977268806824*2^(-52)c=1.61803確定符號(hào)表達(dá)式中自由變量的規(guī)則:

1)只對(duì)除i和j以外的單個(gè)小寫英文字母進(jìn)行搜索;

2)默認(rèn)x是首選變量;

3)其余小寫字母被選中為自由變量的次序是,在字母表中,靠x距離近的優(yōu)先;在x之后的優(yōu)先。符號(hào)表達(dá)式默認(rèn)自變量a*x^2+b*x+cx1/(4+cos(t))t4*x/yx2*a+bb2*i+4*jx注意:

1)符號(hào)計(jì)算中出現(xiàn)的數(shù)字也都是當(dāng)作符號(hào)處理的;

2)符號(hào)表達(dá)式對(duì)空格很敏感,請(qǐng)不要在字符間亂加修飾性空格符;

3)為了得到最簡(jiǎn)結(jié)果,可能要多次使用命令simplify和simple。

4)數(shù)值對(duì)象不能參與符號(hào)運(yùn)算,符號(hào)對(duì)象不能參與數(shù)值運(yùn)算。3.符號(hào)矩陣的創(chuàng)建

數(shù)值矩陣A=[1,2;3,4]A=[a,b;c,d]——不識(shí)別

用MATLAB函數(shù)sym創(chuàng)建矩陣命令格式:A=sym('[]')

※符號(hào)矩陣內(nèi)容同數(shù)值矩陣

※需用sym指令定義

※需用''標(biāo)識(shí)例3: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ù)值矩陣的一個(gè)重要區(qū)別。※將數(shù)值矩陣轉(zhuǎn)化為符號(hào)矩陣。函數(shù)調(diào)用格式:sym(A)例4A=[1/3,2.5;1/0.7,2/5]

A=0.33332.50001.42860.4000

sym(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)例4(續(xù))A=[1/3,5/2][10/7,2/5]numeric(A)

ans=0.33332.50001.42860.4000

符號(hào)矩陣的操作和運(yùn)算(包括數(shù)組運(yùn)算和矩陣運(yùn)算)與數(shù)值矩陣的操作和運(yùn)算雷同。例如:a=b+c;a=a*b;A=2*a^2+3*a-5等。

二、符號(hào)矩陣的基本運(yùn)算例5:f=2*x^2+3*x-5;g=x^2+x-7;>>symsx>>f=2*x^2+3*x-5;g=x^2+x-7;>>h=f+gh=3*x^2+4*x-12例6:f=cos(x);g=sin(2*x);>>symsx>>f=cos(x);g=sin(2*x);>>f/g+f*gans=cos(x)/sin(x)+cos(x)*sin(x)符號(hào)函數(shù)特有的復(fù)合函數(shù)和反函數(shù)finverse(f)對(duì)默認(rèn)自變量的函數(shù)求反函數(shù)finverse(f,v)對(duì)指定自變量為v的函數(shù)f(v)求反函數(shù)compose(f,g)求f=f(x)和g=g(y)的復(fù)合函數(shù)f(g(y))compose(f,g,z)求f=f(x)和g=g(y)的復(fù)合函數(shù)f(g(z))compose(f,g,x,z)求f=f(x)和g=g(y)的復(fù)合函數(shù)f(g(z)),其中x是f的自變量compose(f,g,x,y,z)求f=f(x)和g=g(y)的復(fù)合函數(shù)f(g(z)),其中x是f的自變量,y是g的自變量

例7symsxyztuv;h=x^t;p=exp(-y/u);fz=compose(h,p,x,y,z),fi=finverse(exp(u-2*v),u)

fz=exp(-z/u)^tfi=2*v+log(u)因式分解、展開(kāi)和化簡(jiǎn)collect(F)將表達(dá)式F中相同冪次的項(xiàng)合并expand(F)將表達(dá)式F展開(kāi)factor(F)將表達(dá)式F因式分解simplify(F)利用代數(shù)上的函數(shù)規(guī)則對(duì)表達(dá)式F進(jìn)行化簡(jiǎn)simple(F)以盡可能的辦法將F表示式再做簡(jiǎn)化,目的是使表達(dá)式以最少的字表示出來(lái)。例8a=sym('(s+1)/(s^2+5*s+6)');b=factor(a),symsx;a=sym((x+1)^3);c=expand(a)a=-1/4*x*exp(-2*x)+3/16*exp(-2*x);d1=collect(a,exp(-2*x)),d2=collect(a,'x')a=x^3-6*x^2+11*x-6;e=horner(a)a=sym('sin(x)^2+3*x+cos(x)^2-5');b=sym('(1-a^2)/(1-a)');A=[a,b];simplify(A);simple(A)

例8運(yùn)行結(jié)果:

b=(s+1)/(s+3)/(s+2)c=x^3+3*x^2+3*x+1d1=(-1/4*x+3/16)*exp(-2*x)d2=-1/4*x*exp(-2*x)+3/16*exp(-2*x)e=-6+(11+(-6+x)*x)*xans=[-4+3*x,a+1]ans=[-4+3*x,a+1]注:因式操作僅針對(duì)矩陣中的元素進(jìn)行。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變量求積分int(f,v,a,b)—對(duì)f表達(dá)式的v變量在(a,b)區(qū)間求定積分三符號(hào)微積分int(‘被積表達(dá)式’,‘積分變量’,‘積分上限’,'積分下限')——定積分——缺省時(shí)為不定積分例9

積分

symsxkreal;f=exp(-(k*x)^2);int(f,x,-inf,inf)

ans=signum(k)/k*pi^(1/2)例10

多重積分

symsxyzF2=int(int(int(x^2+y^2+z^2,…z,sqrt(x*y),x^2*y),…y,sqrt(x),x^2),x,1,2);VF2=vpa(F2,10) VF2=224.9215357例11求導(dǎo)數(shù)

y=sym('sin(a*x)');a=diff(y),b=diff(y,2)c=diff(y,'x',2),d=diff(y,'a',1)

a=cos(a*x)*ab=-sin(a*x)*a^2c=-sin(a*x)*a^2d=cos(a*x)*x例12.計(jì)算二重不定積分F=int(int('x*exp(-x*y)','x'),'y')F=1/y*exp(-x*y)求極限和級(jí)數(shù)limit(f,x,a)----若a=0,且是對(duì)x求極限,可簡(jiǎn)寫為limit(f)limit(f,x,a,’left’)----左趨近于alimit(f,x,a,’right’)----右趨近于asymsum(s,v,a,b)----自變量v在[a,b]之間取值時(shí),對(duì)通項(xiàng)s求和。toylor(F,v,n)----求F對(duì)自變量v的泰勒級(jí)數(shù)展開(kāi)至n階例13

求極限

symsxn;limit((1+x/n)^n,n,inf)limit(1/x,x,0,'left')ans=exp(x)ans=-inf例14

級(jí)數(shù)求和

s1=symsum(x^2,x,0,10)s2=symsum(x^k,k,0,inf)s1=385s2=-1/(x-1)四.符號(hào)代數(shù)方程求解

MATLAB符號(hào)運(yùn)算能夠解一般的線性方程、非線性方程及一般的代數(shù)方程、代數(shù)方程組。當(dāng)方程組不存在符號(hào)解時(shí),又無(wú)其他自由參數(shù),則給出數(shù)值解。命令格式:solve(f)——求一個(gè)方程的解Solve(f1,f2,…fn)——求n個(gè)方程的解使用solve時(shí),要求未知數(shù)的個(gè)數(shù)和方程的個(gè)數(shù)一致。例15.f=ax2+bx+c求解A=solve('a*x^2+b*x+c')——對(duì)缺省變量x求解A=[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]計(jì)算機(jī)格式一般格式例16.分別對(duì)符號(hào)方程cos(x)=sin(x)tan(2*x)=sin(x)求解

f1=solve('cos(x)=sin(x)'),

f1=

1/4*pisolve('f','b')——對(duì)指定變量b求解ans=-(a*x^2+c)/xf2=solve('tan(2*x)=sin(x)')f2= [0][acos(1/2+1/2*3^(1/2))][acos(1/2-1/2*3^(1/2))]numeric(f2)ans=00+0.8314i1.9455例17用solve解方程

s=solve('2*x^2=(x-1)'),n=double(s),s=vpa(n,10)s=[1/4+1/4*i*7^(1/2)][1/4-1/4*i*7^(1/2)]n=0.2500+0.6614i0.2500-0.6614is=[.25000+.6614378278*i][.25000-.6614378278*i]例18解方程組x+y+z=1x-y+z=22x-y-z=1>>f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')>>f.x,f.y,f.zf=x:[1x1sym]y:[1x1sym]z:[1x1sym]ans=2/3ans=-1/2ans=5/6

[x,y,z]=solve(‘x+y+z=1’,…'x-y+z=2','2*x-y-z=1')

x=2/3y=-1/2z=5/6五符號(hào)微分方程求解

——用一個(gè)函數(shù)可以方便地得到微分方程的符號(hào)解符號(hào)微分方程求解指令:dsolve命令格式:dsolve(f,g)f——微分方程,可多至12個(gè)微分方程的求解;g為初始條件默認(rèn)自變量為‘t',可任意指定自變量‘x','u'等微分方程的各階導(dǎo)數(shù)項(xiàng)以大寫字母D表示或或或y的一階導(dǎo)數(shù)——Dyy的二階導(dǎo)數(shù)——D2yy的n階導(dǎo)數(shù)——Dny[y1,y2…]=dsolve(x1,x2,…xn)——返回微分方程的解。一階微分方程例19dsolve('Dx=y','Dy=x','x(0)=0','y(0)=1')ans=x(t)=sin(t),y(t)=cos(t)二階微分方程例20dsolve('D2y=-a^2*y','y(0)=1','Dy(pi/a)=0‘,’x’)ans=cos(a*x)例21y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')ans=exp(-x)*cos(x)+exp(-x)*sin(x)求該方程的解例22微分方程組

[f,g]=dsolve('Df=3*f+4*g',...'Dg=-4*f+3*g',...'f(0)=0,g(0)=1')f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)例2

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論