第7章 MATLAB符號(hào)計(jì)算_第1頁
第7章 MATLAB符號(hào)計(jì)算_第2頁
第7章 MATLAB符號(hào)計(jì)算_第3頁
第7章 MATLAB符號(hào)計(jì)算_第4頁
第7章 MATLAB符號(hào)計(jì)算_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

——matlab

不僅具有數(shù)值運(yùn)算功能,還開發(fā)了在matlab環(huán)境下實(shí)現(xiàn)符號(hào)計(jì)算的工具包SymbolicMathToolbox主要內(nèi)容7.1符號(hào)計(jì)算基礎(chǔ)7.2符號(hào)函數(shù)及其應(yīng)用7.3符號(hào)積分7.4級(jí)數(shù)第7章MATLAB符號(hào)計(jì)算科學(xué)計(jì)算可分為兩類:一類是純數(shù)值的計(jì)算,例如求函數(shù)的值,以及方程的數(shù)值解等等;另一類計(jì)算是符號(hào)運(yùn)算,又稱代數(shù)運(yùn)算,這是一種智能化的計(jì)算,處理的是符號(hào)。符號(hào)可以代表整數(shù)、有理數(shù)、實(shí)數(shù)和復(fù)數(shù),也可以代表多項(xiàng)式、函數(shù),還可以代表數(shù)學(xué)結(jié)構(gòu),如集合、群的表示等等。我們?cè)跀?shù)學(xué)的教學(xué)和研究中進(jìn)行的數(shù)學(xué)運(yùn)算多為符號(hào)運(yùn)算。MATLAB中的符號(hào)數(shù)學(xué)工具箱(SymbolicMathToolbox)集成了豐富的符號(hào)運(yùn)算功能?;镜姆?hào)數(shù)學(xué)工具箱包含100多個(gè)MATLAB函數(shù),包括的內(nèi)容有:微積分、線性代數(shù)、化簡代數(shù)表達(dá)式、方程求解、特殊的數(shù)學(xué)函數(shù)、變量精度算法和數(shù)學(xué)變換等等。工具箱中所有的符號(hào)表達(dá)式的計(jì)算都是在Maple內(nèi)核下執(zhí)行的。Maple是一種功能強(qiáng)大、通用的數(shù)學(xué)和工程軟件,是世界上最值得信賴、最完整的數(shù)學(xué)軟件之一。其中的符號(hào)運(yùn)算功能尤為突出。Maple系統(tǒng)最先主要由加拿大的沃特盧大學(xué)(UniversityofWaterloo)開發(fā)的,后來由瑞士的一個(gè)技術(shù)部門發(fā)展,最終由WaterlooMaple公司商業(yè)化運(yùn)作。什么是符號(hào)運(yùn)算 直接對(duì)抽象的符號(hào)對(duì)象進(jìn)行計(jì)算,并將所得結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式來表示。

2.與數(shù)值運(yùn)算的區(qū)別

數(shù)值運(yùn)算中必須先對(duì)變量賦值,然后才能參與運(yùn)算。

符號(hào)運(yùn)算無須事先對(duì)獨(dú)立變量賦值,運(yùn)算結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式表達(dá)。 特點(diǎn):運(yùn)算對(duì)象可以是沒賦值的符號(hào)變量可以獲得任意精度的解SymbolicMathToolbox——符號(hào)運(yùn)算工具包通過調(diào)用Maple軟件實(shí)現(xiàn)符號(hào)計(jì)算的。maple軟件——主要功能是符號(hào)運(yùn)算,它占據(jù)符號(hào)軟件的主導(dǎo)地位。7.1符號(hào)計(jì)算基礎(chǔ)7.1.1符號(hào)對(duì)象1.建立符號(hào)變量和符號(hào)常量MATLAB提供了兩個(gè)建立符號(hào)對(duì)象的函數(shù):sym和syms,兩個(gè)函數(shù)的用法不同。(1)sym函數(shù)sym函數(shù)用來建立單個(gè)符號(hào)量,一般調(diào)用格式為:符號(hào)量名=sym('符號(hào)字符串')該函數(shù)可以建立一個(gè)符號(hào)量,符號(hào)字符串可以是常量、變量、函數(shù)或表達(dá)式。sym函數(shù)還可以定義符號(hào)常量,使用符號(hào)常量進(jìn)行代數(shù)運(yùn)算時(shí)和數(shù)值常量進(jìn)行的運(yùn)算不同。(2)syms函數(shù)MATLAB提供了另一個(gè)函數(shù)syms,一次可以定義多個(gè)符號(hào)變量。syms函數(shù)的一般調(diào)用格式為:syms

符號(hào)變量名1符號(hào)變量名2…符號(hào)變量名n用這種格式定義符號(hào)變量時(shí)不要在變量名上加字符串分界符(’),變量間用空格而不要用逗號(hào)分隔。x=sym('x')symsabcxf=a*x^2+b*x+c2.建立符號(hào)表達(dá)式含有符號(hào)對(duì)象的表達(dá)式稱為符號(hào)表達(dá)式。建立符號(hào)表達(dá)式有以下3種方法:(1)利用單引號(hào)來生成符號(hào)表達(dá)式。

z='(1+sqrt(5))/2'(2)用sym函數(shù)建立符號(hào)表達(dá)式。

z=sym('(1+sqrt(5))/2')(3)使用已經(jīng)定義的符號(hào)變量組成符號(hào)表達(dá)式。symsabcxf=a*x^2+b*x+c7.1.2符號(hào)表達(dá)式運(yùn)算1.符號(hào)表達(dá)式的四則運(yùn)算符號(hào)表達(dá)式的加、減、乘、除運(yùn)算可分別由函數(shù)symadd、symsub、symmul和symdiv來實(shí)現(xiàn),冪運(yùn)算可以由sympow來實(shí)現(xiàn)。f=‘2*x^2+3*x-5’g=‘x^2-x+7symadd(f,g)symmul(f,g)symdiv(f,g)2.符號(hào)表達(dá)式的提取分子和分母運(yùn)算如果符號(hào)表達(dá)式是一個(gè)有理分式或可以展開為有理分式,可利用numden函數(shù)來提取符號(hào)表達(dá)式中的分子或分母。其一般調(diào)用格式為:[n,d]=numden(s)該函數(shù)提取符號(hào)表達(dá)式s的分子和分母,分別將它們存放在n與d中。symsxyf=x/y+y/x;[n,d]=numden(f)3.符號(hào)表達(dá)式的因式分解與展開MATLAB提供了符號(hào)表達(dá)式的因式分解與展開的函數(shù),函數(shù)的調(diào)用格式為:factor(s):對(duì)符號(hào)表達(dá)式s分解因式。expand(s):對(duì)符號(hào)表達(dá)式s進(jìn)行展開。collect(s):對(duì)符號(hào)表達(dá)式s合并同類項(xiàng)。collect(s,v):對(duì)符號(hào)表達(dá)式s按變量v合并同類項(xiàng)?!纠繉?duì)表達(dá)式f=a^3-1進(jìn)行因式分解。輸入:f=sym('a^3-1');factor(f)結(jié)果為:ans=(a-1)*(a^2+a+1)【例】展開表達(dá)式f=(x+1)^5和f=sin(x+y)輸入:symsxyf=(x+1)^5;expand(f)f=sin(x+y);expand(f)返回結(jié)果為:ans=x^5+5*x^4+10*x^3+10*x^2+5*x+1ans=sin(x)*cos(y)+cos(x)*sin(y)【例】符號(hào)多項(xiàng)式的同類項(xiàng)合并。輸入:f=sym('(exp(x)+x)*(x+2)*(y+1)');c1=collect(f)c2=collect(f,y)c3=collect(f,exp(x))返回結(jié)果為:c1=(y+1)*x^2+(exp(x)+2)*(y+1)*x+2*exp(x)*(y+1)c2=(exp(x)+x)*(x+2)*y+(exp(x)+x)*(x+2)c3=(x+2)*(y+1)*exp(x)+x*(x+2)*(y+1)我們分別按不同的變量進(jìn)行同類項(xiàng)合并,得到了不同的結(jié)果。4.符號(hào)表達(dá)式的化簡MATLAB提供的對(duì)符號(hào)表達(dá)式化簡的函數(shù)有:simplify(s):應(yīng)用函數(shù)規(guī)則對(duì)s進(jìn)行化簡。simple(s):調(diào)用MATLAB的其他函數(shù)對(duì)表達(dá)式進(jìn)行綜合化簡,并顯示化簡過程。f=sym('sin(x)^2+cos(x)^2');S=sym('exp(c*log(sqrt(a+b)))');simplify(f)simplify(S)5.符號(hào)表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換利用函數(shù)sym可以將數(shù)值表達(dá)式變換成它的符號(hào)表達(dá)式。sym(1.5)函數(shù)numeric或eval可以將符號(hào)表達(dá)式變換成數(shù)值表達(dá)式。z='(1+sqrt(5))/2’numeric(z)7.1.3符號(hào)表達(dá)式中變量的確定MATLAB中的符號(hào)可以表示符號(hào)變量和符號(hào)常量。findsym可以幫助用戶查找一個(gè)符號(hào)表達(dá)式中的的符號(hào)變量。該函數(shù)的調(diào)用格式為:findsym(s,n)函數(shù)返回符號(hào)表達(dá)式s中的n個(gè)符號(hào)變量,若沒有指定n,則返回s中的全部符號(hào)變量。例:symsxayzb;s1=3*x+y;findsym(s1)7.1.4符號(hào)矩陣符號(hào)矩陣也是一種符號(hào)表達(dá)式,所以前面介紹的符號(hào)表達(dá)式運(yùn)算都可以在矩陣意義下進(jìn)行。但應(yīng)注意這些函數(shù)作用于符號(hào)矩陣時(shí),是分別作用于矩陣的每一個(gè)元素。A=sym('[a,b;c,d]')>>symsxyz>>B=[x+3*x,5*z+6*z;y-y,z/z]由于符號(hào)矩陣是一個(gè)矩陣,所以符號(hào)矩陣還能進(jìn)行有關(guān)矩陣的運(yùn)算。transpose(s):返回s矩陣的轉(zhuǎn)置矩陣。determ(s):返回s矩陣的行列式值。其實(shí),許多應(yīng)用于數(shù)值矩陣的函數(shù),如diag、triu、tril、inv、det、rank、eig等,也可直接應(yīng)用于符號(hào)矩陣。7.2符號(hào)函數(shù)及其應(yīng)用7.2.1符號(hào)極限MATLAB中求函數(shù)極限的函數(shù)是limit,調(diào)用格式為:limit(f,x,a):求符號(hào)函數(shù)f(x)的極限值。即計(jì)算當(dāng)變量x趨近于常數(shù)a時(shí),f(x)函數(shù)的極限值。(2)limit(f,a):求符號(hào)函數(shù)f(x)的極限值。由于沒有指定符號(hào)函數(shù)f(x)的自變量,則使用該格式時(shí),符號(hào)函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)自變量,即變量x趨近于a。(3)limit(f):求符號(hào)函數(shù)f(x)的極限值。符號(hào)函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)變量;沒有指定變量的目標(biāo)值時(shí),系統(tǒng)默認(rèn)變量趨近于0,即a=0的情況。(4)limit(f,x,a,‘right’):求符號(hào)函數(shù)f的極限值?!畆ight’表示變量x從右邊趨近于a。(5)limit(f,x,a,‘left’):求符號(hào)函數(shù)f的極限值?!甽eft’表示變量x從左邊趨近于a。例

求下列極限。極限1:symsamx;f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a);Limit(f,x,a)ans=(1/2*a*exp(sin(a))+1/2*a-exp(tan(a))+1)/a極限2:symsxt;limit((1+2*t/x)^(3*x),x,inf)ans=exp(6*t)極限3:symsx;f=x*(sqrt(x^2+1)-x);limit(f,x,inf,'left')ans=1/2極限4:symsx;f=(sqrt(x)-sqrt(2)-sqrt(x-2))/sqrt(x*x-4);limit(f,x,2,'right')ans=-1/27.2.2符號(hào)函數(shù)求導(dǎo)及其應(yīng)用diff函數(shù)用于對(duì)符號(hào)表達(dá)式求導(dǎo)數(shù)。該函數(shù)的一般調(diào)用格式為:diff(s):沒有指定變量和導(dǎo)數(shù)階數(shù),則系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對(duì)符號(hào)表達(dá)式s求一階導(dǎo)數(shù)。diff(s,‘v’):以v為自變量,對(duì)符號(hào)表達(dá)式s求一階導(dǎo)數(shù)。diff(s,n):按findsym函數(shù)指示的默認(rèn)變量對(duì)符號(hào)表達(dá)式s求n階導(dǎo)數(shù),n為正整數(shù)。diff(s,'v',n):以v為自變量,對(duì)符號(hào)表達(dá)式s求n階導(dǎo)數(shù)。>>S1=sym('6*x^3-4*x^2+b*x-5');>>S2=sym('sin(a)');>>S3=sym('(1-t^3)/(1+t^4)');>>diff(S1)ans=18*x^2-8*x+b

>>diff(S1,2)

ans=36*x-8>>diff(S1,'b')ans=x>>diff(S2)ans=cos(a)7.3符號(hào)積分符號(hào)積分由函數(shù)int來實(shí)現(xiàn)。該函數(shù)的一般調(diào)用格式為:int(s):沒有指定積分變量和積分階數(shù)時(shí),系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對(duì)被積函數(shù)或符號(hào)表達(dá)式s求不定積分。int(s,v):以v為自變量,對(duì)被積函數(shù)或符號(hào)表達(dá)式s求不定積分。int(s,v,a,b):求定積分運(yùn)算。a,b分別表示定積分的下限和上限。該函數(shù)求被積函數(shù)在區(qū)間[a,b]上的定積分。【例6-24】分別計(jì)算積分表達(dá)式依次輸入以下語句:symsxzf=-2*x/(1+x^2)^2;int(f)f=x/(1+z^2);int(f)int(f,z)f=x*log(1+x);int(f,0,1)7.3.2積分變換常見的積分變換有傅立葉變換、拉普拉斯變換和Z變換。1.傅立葉(Fourier)變換在MATLAB中,進(jìn)行傅立葉變換的函數(shù)是:fourier(f,x,t):求函數(shù)f(x)的傅立葉像函數(shù)F(t)。ifourier(F,t,x):求傅立葉像函數(shù)F(t)的原函數(shù)f(x)。symsxf=sin(x)*exp(-x^2);F1=fourier(f)2.拉普拉斯(Laplace)變換在MATLAB中,進(jìn)行拉普拉斯變換的函數(shù)是:laplace(fx,x,t):求函數(shù)f(x)的拉普拉斯像函數(shù)F(t)。ilaplace(Fw,t,x):求拉普拉斯像函數(shù)F(t)的原函數(shù)f(x)。symsxstvf1=sqrt(t);L1=laplace(f)f2=1/sqrt(s);L2=laplace(f2)3.Z變換當(dāng)函數(shù)f(x)呈現(xiàn)為一個(gè)離散的數(shù)列f(n)時(shí),對(duì)數(shù)列f(n)進(jìn)行z變換的MATLAB函數(shù)是:ztrans(fn,n,z):求fn的Z變換像函數(shù)F(z)。iztrans(Fz,z,n):求Fz的z變換原函數(shù)f(n)。symsakwxnzf4=exp(k*n^2)*cos(k*n);ZF4=ztrans(f4,k,x)7.4級(jí)數(shù)7.4.1級(jí)數(shù)符號(hào)求和求無窮級(jí)數(shù)的和需要符號(hào)表達(dá)式求和函數(shù)symsum,其調(diào)用格式為:

symsum(s,v,n,m)其中s表示一個(gè)級(jí)數(shù)的通項(xiàng),是一個(gè)符號(hào)表達(dá)式。v是求和變量,v省略時(shí)使用系統(tǒng)的默認(rèn)變量。n和m是求和的開始項(xiàng)和末項(xiàng)。例:s1=1+1/4+1/9+….+1/n2+….n=sym(‘n’);s1=symsum(1/n^2,n,1,inf)S1=1/6*pi^27.5符號(hào)方程求解

7.5.1符號(hào)代數(shù)方程求解在MATLAB中,求解用符號(hào)表達(dá)式表示的代數(shù)方程可由函數(shù)solve實(shí)現(xiàn),其調(diào)用格式為:solve(s):求解符號(hào)表達(dá)式s的代數(shù)方程,求解變量為默認(rèn)變量。solve(s,v):求解符號(hào)表達(dá)式s的代數(shù)方程,求解變量為v。solve(s1,s2,…,sn,v1,v2,…,vn):求解符號(hào)表達(dá)式s1,s2,…,sn組成的代數(shù)方程組,求解變量分別v1,v2,…,vn?!纠壳笠辉畏匠蘟*x^2+b*x+c=0的根.>>f=sym('a*x^2+b*x+c');>>solve(f)%以x為自變量,求解方程f=0ans=1/2/a*(-b+(b^2-4*a*c)^(1/2))1/2/a*(-b-(b^2-4*a*c)^(1/2))>>solve(f,a)%以a為自變量,求解方程f=0ans=-(b*x+c)/x^2【例】求三元非線性方程組的解。>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論