數(shù)學(xué)軟件課件符號(hào)計(jì)算_第1頁(yè)
數(shù)學(xué)軟件課件符號(hào)計(jì)算_第2頁(yè)
數(shù)學(xué)軟件課件符號(hào)計(jì)算_第3頁(yè)
數(shù)學(xué)軟件課件符號(hào)計(jì)算_第4頁(yè)
數(shù)學(xué)軟件課件符號(hào)計(jì)算_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)學(xué)軟件Matlab篇Mathematical Software for Section Matlab第七講 MATLAB的 符號(hào)計(jì)算所謂符號(hào)計(jì)算是指在運(yùn)算時(shí),無須事先對(duì)變量賦值,而將所得到結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式來表示。MathWorks公司以Maple的內(nèi)核作為符號(hào)計(jì)算引擎(Engine),依賴Maple已有的函數(shù)庫(kù),開發(fā)了實(shí)現(xiàn)符號(hào)計(jì)算的兩個(gè)工具箱:基本符號(hào)工具箱和擴(kuò)展符號(hào)工具箱。一、符號(hào)計(jì)算基礎(chǔ)(一) 定義符號(hào)變量參與符號(hào)運(yùn)算的對(duì)象可以是符號(hào)變量、符號(hào)表達(dá)式或符號(hào)矩陣。符號(hào)變量要先定義,后引用。可以用sym函數(shù)、syms函數(shù)將運(yùn)算量定義為符號(hào)型數(shù)據(jù)。引用符號(hào)運(yùn)算函數(shù)時(shí),用戶可以指定函數(shù)執(zhí)行過

2、程中的變量參數(shù);若用戶沒有指定變量參數(shù),則使用findsym函數(shù)默認(rèn)的變量作為函數(shù)的變量參數(shù)。一、符號(hào)計(jì)算基礎(chǔ)【例1】作符號(hào)計(jì)算:a,b,x,y均為符號(hào)運(yùn)算量。在符號(hào)運(yùn)算前,應(yīng)先將a,b,x,y定義為符號(hào)運(yùn)算量(一) 定義符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)1、sym函數(shù) sname=sym(string)創(chuàng)建名為sname的符號(hào)變量,輸出變量為string (下面例1中給出解釋),也可用于創(chuàng)建符號(hào)表達(dá)式或符號(hào)矩陣。a=sym(a1); %定義a為符號(hào)運(yùn)算量,輸出變量名為a1b=sym(b);x=sym(x);y=sym(y); x,y=solve(a*x-b*y-1,a*x+b*y-5,x,y) %以a

3、,b為符號(hào)常數(shù),x,y為符號(hào)變量,a輸出為a1運(yùn)算結(jié)果(方程組的解): x =3/a1 y =2/b(一) 定義符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)【例2】已知一復(fù)數(shù)表達(dá)式 z=x+i*y, 試求其共軛復(fù)數(shù),并求該表達(dá)式與其共軛復(fù)數(shù)乘積的多項(xiàng)式。 為了使乘積表達(dá)式x2+y2非負(fù),這里,把變量x和y定義為實(shí)數(shù)。x=sym(x,real); %定義x為實(shí)數(shù)y=sym(y,real); %定義y為實(shí)數(shù)(一) 定義符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)z=x+i*y; %定義復(fù)數(shù)表達(dá)式conj(z); %求共軛復(fù)數(shù)expand(z*conj(z) %求表達(dá)式與其共軛復(fù)數(shù)乘積的多項(xiàng)式ans = x2+y2若要去掉x的屬性, 可以

4、使用下面語句 x = sym(x,unreal) 將x創(chuàng)建為純格式的符號(hào)變量。(一) 定義符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)2、syms函數(shù) syms函數(shù)的功能與sym函數(shù)類似。syms函數(shù)可以在一個(gè)語句中同時(shí)定義多個(gè)符號(hào)變量,其一般格式為:syms arg1 arg2 argN 用于將rg1, arg2,argN等符號(hào)創(chuàng)建為符號(hào)型變量。 注意:定義多個(gè)符號(hào)變量的表達(dá)式是syms arg1 arg2 argN (用空格分離變量列表)而不是syms arg1, arg2, , argN (一) 定義符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)在數(shù)學(xué)表達(dá)式中,一般習(xí)慣于使用排在字母表中前面的字母作為變量的系數(shù),而用排在后面的字

5、母表示變量。例如: f=ax2+bx+c表達(dá)式中的a,b,c通常被認(rèn)為是常數(shù),用作變量的系數(shù);而將x看作自變量。一、符號(hào)計(jì)算基礎(chǔ)(二)默認(rèn)符號(hào)變量例如,在數(shù)學(xué)表達(dá)式 f=xn, g=sin(a*t+b)中,根據(jù)數(shù)學(xué)式中表示自變量的習(xí)慣,默認(rèn)a,b,n為符號(hào)常數(shù),t,x為符號(hào)變量。當(dāng)然,在matlab中a,b,n可以作為變量使用。若在MATLAB中定義上述表達(dá)式,首先用syms 函數(shù)定義a, b, n, t, x為符號(hào)對(duì)象。在進(jìn)行導(dǎo)數(shù)運(yùn)算時(shí),由于沒有指定符號(hào)變量,則系統(tǒng)采用數(shù)學(xué)習(xí)慣來確定表達(dá)式中的自變量,默認(rèn)a,b,c為符號(hào)常數(shù),x, t為符號(hào)變量。即 : 對(duì)函數(shù)f求導(dǎo)默認(rèn)為:df/dx 對(duì)函數(shù)

6、g求導(dǎo)默認(rèn)為:dg/dt(二)默認(rèn)符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)為了了解函數(shù)引用過程中使用的符號(hào)變量個(gè)數(shù)及變量名,可以用findsym函數(shù)查詢默認(rèn)的變量。該函數(shù)的引用格式為:findsym(f,n)說明:f為用戶定義的符號(hào)函數(shù), n為正整數(shù),表示查詢變量的個(gè)數(shù)。n=i 表示查詢f中前i個(gè)系統(tǒng)默認(rèn)變量,查詢結(jié)果按照離x由近到遠(yuǎn)的次序排列。 n值省略時(shí)findsym(f)表示查詢符號(hào)函數(shù)中系統(tǒng)默認(rèn)的全部變量,查詢結(jié)果按英文字母順序排列(只能查出所有符號(hào)變量的名字,看不出各變量的優(yōu)先級(jí))。(二)默認(rèn)符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)26個(gè)單字母變量的排列次序:syms a b c d e f g h i j k l

7、 m n o p q r s t u v w x y zfindsym(a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z,26)ans =x,y,w,z,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a也就是說,在matlab符號(hào)運(yùn)算中,26個(gè)單字母變量的排列次序?yàn)閤,y,w,z,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a一個(gè)表達(dá)式中排在最前面的變量為默認(rèn)變量。(二)默認(rèn)符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)【例3 】查詢符號(hào)函數(shù) f=xn, g=sin(a*t+b)中的系

8、統(tǒng)默認(rèn)變量。syms a b n t x %定義符號(hào)變量f=xn; %給定符號(hào)函數(shù)g=sin(a*t+b);findsym(f,1) %在f函數(shù)中查詢1個(gè)系統(tǒng)默認(rèn)變量結(jié)果:ans = x,即在函數(shù)f中系統(tǒng)默認(rèn)變量為 xs=findsym(g,3) %在f函數(shù)中查詢1個(gè)系統(tǒng)默認(rèn)變量結(jié)果:s = t,b,a,即在函數(shù)g中系統(tǒng)默認(rèn)變量為 t(二)默認(rèn)符號(hào)變量一、符號(hào)計(jì)算基礎(chǔ)(三) 符號(hào)表達(dá)式符號(hào)表達(dá)式由符號(hào)變量、函數(shù)、算術(shù)運(yùn)算符等組成。符號(hào)表達(dá)式的書寫格式與數(shù)值表達(dá)式相同。例如,數(shù)學(xué)表達(dá)式 的符號(hào)表達(dá)式為: 1+sqr(5*x)/(2*x)注意,在定義表達(dá)式前應(yīng)先將表達(dá)式中的字符x定義為符號(hào)變量。一

9、、符號(hào)計(jì)算基礎(chǔ)(四) 生成符號(hào)函數(shù)將表達(dá)式中的自變量定義為符號(hào)變量后,賦值給符號(hào)函數(shù)名,即可生成符號(hào)函數(shù)。例如有一數(shù)學(xué)表達(dá)式:一、符號(hào)計(jì)算基礎(chǔ)其用符號(hào)表達(dá)式生成符號(hào)函數(shù)fxy的過程為: syms a b c x y %定義符號(hào)運(yùn)算量 fxy=(a*x2+b*y2)/c2 %生成符號(hào)函數(shù)生成符號(hào)函數(shù)fxy后,即可用于微積分等符號(hào)計(jì)算?!纠?】定義一個(gè)符號(hào)函數(shù) fxy=(a*x2+b*y2)/c2 ,分別求該函數(shù)對(duì)x、y的導(dǎo)數(shù)和對(duì)x的積分。syms a b c x y %定義符號(hào)變量fxy=(a*x2+b*y2)/c2; %生成符號(hào)函數(shù) diff(fxy, x) %符號(hào)函數(shù)fxy對(duì)x求導(dǎo)數(shù)ans

10、=2*a*x/c2diff(fxy,y,2) %符號(hào)函數(shù)fxy對(duì)y求2階導(dǎo)數(shù) ans = (2*b)/c2 int(fxy, x) %符號(hào)函數(shù)fxy對(duì)x求不定積分ans =1/c2*(1/3*a*x3+b*y2*x)(四) 生成符號(hào)函數(shù)一、符號(hào)計(jì)算基礎(chǔ)(五) 符號(hào)表達(dá)式運(yùn)算1提取分子和分母運(yùn)算n,d=numden(S)函數(shù)提取有理分式或可以展開為有理分式的符號(hào)表達(dá)式S的分子或分母,分別將其存放在n與d中。syms xf=3/2*x2+2/3*x-3/5 % rationalize and extract the partsg=(x2+3)/(2*x-1)+3*x/(x-1) % the sum

11、 of rational polynomialsn,d=numden(f) % extract the numerator and denominatorn1,d1=numden(g) % extract the numerator and denominator運(yùn)行結(jié)果:n= 45*x2+20*x-18, d= 30n1= x3+5*x2-3, d1= (2*x-1)*(x-1)一、符號(hào)計(jì)算基礎(chǔ)(五) 符號(hào)表達(dá)式運(yùn)算2符號(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)

12、行展開。collect(S) 對(duì)符號(hào)表達(dá)式S合并同類項(xiàng)。collect(S,v) 對(duì)符號(hào)表達(dá)式S按變量v合并同類項(xiàng)。這些函數(shù)使用簡(jiǎn)單,不再舉例。一、符號(hào)計(jì)算基礎(chǔ)3符號(hào)表達(dá)式的化簡(jiǎn)MATLAB提供的對(duì)符號(hào)表達(dá)式化簡(jiǎn)的函數(shù)有:simplify(S) Reduce explicit MPC controller complexity and memory requirements. 減少顯式MPC控制器的復(fù)雜性和內(nèi)存要求。應(yīng)用函數(shù)規(guī)則對(duì)S進(jìn)行化簡(jiǎn)。simple(S) Search for simplest form of symbolic expression.尋找最簡(jiǎn)單的符號(hào)表達(dá)形式。This M

13、ATLAB function applies different algebraic simplification functions and displays all resulting forms of S, and then returns the shortest form. 這個(gè)Matlab函數(shù)應(yīng)用不同的代數(shù)化簡(jiǎn)函數(shù)獲得S的簡(jiǎn)易格式,并顯示化簡(jiǎn)過程。一、符號(hào)計(jì)算基礎(chǔ)一、符號(hào)計(jì)算基礎(chǔ) 3符號(hào)表達(dá)式的化簡(jiǎn) pretty(S) Prints the symbolic expression S in a format that resembles(類似于) type-set mathemat

14、ics. 使用類似于型集數(shù)學(xué)的形式,打印符號(hào)表達(dá)式 S。4符號(hào)表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換利用函數(shù)sym可以將數(shù)值表達(dá)式變換成它的符號(hào)表達(dá)式。sym(3*pi/4,d) % The d stands for decimal. With digits(20), ans= 2. . With digits(10), ans= 2.35619449.sym(3*pi/4,f) % The f stands for floating point. All values are transformed from double precision to exact numeric values N*2e

15、for integers N and e. ans= 2652839157010665 /1125899906842624.sym(3*pi/4,e) % The e stands for estimate error. ans=(3*pi)/4 - (103*eps)/249sym(3*pi/4,r) % The r form is supplemented by a term involving the variable eps which estimates the difference between the theoretical rational expression and it

16、s actual floating point value. ans=(3*pi)/4一、符號(hào)計(jì)算基礎(chǔ)4符號(hào)表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換 eval 函數(shù)可以將符號(hào)表達(dá)式變換成數(shù)值表達(dá)式。eval()函數(shù)將括號(hào)內(nèi)的字符串視為語句并運(yùn)行。 eval(y1=sin(2)和語句y1=sin(2)等價(jià) 多在循環(huán)中使用,可以對(duì)多個(gè)名字有規(guī)則的變量或文件進(jìn)行操作,例如for x=1:5 eval(y,num2str(x),=,num2str(x2),;)end 又如syms x, a=solve(x2+4*x-9=0)eval(a)一、符號(hào)計(jì)算基礎(chǔ)5. 符號(hào)矩陣符號(hào)矩陣也是一種符號(hào)表達(dá)式,所以前面介紹的符號(hào)

17、表達(dá)式運(yùn)算都可以在矩陣意義下進(jìn)行。但應(yīng)注意這些函數(shù)作用于符號(hào)矩陣時(shí),是分別作用于矩陣的每一個(gè)元素。由于符號(hào)矩陣是一個(gè)矩陣,所以符號(hào)矩陣還能進(jìn)行有關(guān)矩陣的運(yùn)算。MATLAB還有一些專用于符號(hào)矩陣的函數(shù),這些函數(shù)作用于單個(gè)的數(shù)據(jù)無意義。例如transpose(S):或transp(S)或S返回矩陣S的轉(zhuǎn)置矩陣。det (S):返回矩陣S的行列式值。其實(shí),曾介紹過的許多應(yīng)用于數(shù)值矩陣的函數(shù),如diag、triu、tril、inv、det、rank、eig等,都可以直接應(yīng)用于符號(hào)矩陣。一、符號(hào)計(jì)算基礎(chǔ)曾介紹過的許多應(yīng)用于數(shù)值矩陣的函數(shù),如diag、triu、tril、inv、det、rank、eig等

18、,都可直接應(yīng)用于符號(hào)矩陣。transpose - transpose of matrixdet - Matrix determinanttriu - Upper triangular part of matrixtril - Lower triangular part of matrixdiag - Get diagonal elements or create diagonal matrixinv - Matrix inverserank - Rank of matrixeig - Eigenvalues and eigenvectors一、符號(hào)計(jì)算基礎(chǔ)1.求極限 limit函數(shù)用于求符號(hào)函

19、數(shù)的極限。系統(tǒng)可以根據(jù)用戶要求,計(jì)算變量從不同方向趨近于指定值的極限值。該函數(shù)的格式及功能如下:二、符號(hào)微積分二、符號(hào)微積分 limit(f,x,a)求符號(hào)函數(shù)f(x) 當(dāng)變量x趨近于常數(shù)a時(shí)的極限值。a可以為 inf (=-inf) 或 -inf。 limit(f,a)求符號(hào)函數(shù)f的極限值。由于沒有指定f的自變量,則其變量為函數(shù)findsym(f)確定的默認(rèn)自變量。limit(f)求符號(hào)函數(shù)f當(dāng)默認(rèn)變量趨近于0時(shí)的極限。limit(f,x,a,right)求符號(hào)函數(shù)f的極限值。right表示變量x從右邊趨近于a。limit(f,x,a,left)求符號(hào)函數(shù)f的極限值。left表示變量x從左邊

20、趨近于a。二、符號(hào)微積分【例5】求極限syms x; %定義符號(hào)變量,等價(jià)于 x = sym(x) f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/sin(x)3; %確定符號(hào)表達(dá)式w=limit(f) %求函數(shù)的極限,等價(jià)于w=limit(f,x,0)答案:w = -1/2二、符號(hào)微積分2. 求導(dǎo)數(shù)/偏導(dǎo)數(shù) diff(S,v,n)函數(shù)用于計(jì)算符號(hào)表達(dá)式S關(guān)于變量v的n階導(dǎo)數(shù)。 diff(S)沒有指定微分變量和微分階數(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)求默認(rèn)變量對(duì)符號(hào)表達(dá)式S的n階微

21、分,n為正整數(shù)。 diff(S,v,n)或diff(S,n,v)以v為自變量,對(duì)符號(hào)表達(dá)式S求n階導(dǎo)數(shù)。二、符號(hào)微積分 diff(diff(S,u),v)函數(shù)用于計(jì)算符號(hào)表達(dá)式S關(guān)于變量u和v的2階混合偏導(dǎo)數(shù)。 【例6】求下列導(dǎo)數(shù)及偏導(dǎo)數(shù):x = sym(x); y = sym(y); %定義符號(hào)變量diff(sin(x2) %求導(dǎo)數(shù)運(yùn)算ans =2*cos(x2)*xdiff(diff(sin(y*x2)+sin(x*y2),x),y) %求偏導(dǎo)數(shù)運(yùn)算ans = 2*x*cos(x2*y) + 2*y*cos(x*y2) - 2*x*y3*sin(x*y2) - 2*x3*y*sin(x2*

22、y)二、符號(hào)微積分3求積分/重積分 int(S,v,a,b)積分函數(shù)計(jì)算符號(hào)表達(dá)式S在區(qū)間a,b上關(guān)于變量v的定積分。 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求不定積分。 在此基礎(chǔ)上可以計(jì)算多重積分。例如:syms x yint( int(x*y2+1,y,-sqrt(1-x2),sqrt(1-x2),x,-1,1) ans = pi二、符號(hào)微積分【例7】求下述積分。syms xint(1/(1+x2) ans = atan(x)int(2*x/(1+

23、x2),0,pi/2)ans = log(pi2 + 4) - log(4)syms x yint(int(x*y2+1,y,-sqrt(1-x2),sqrt(1-x2),x,-1,1)ans = pi二、符號(hào)微積分4. 級(jí)數(shù)(級(jí)數(shù)求和)symsum(s,v,n,m) 計(jì)算以s為通項(xiàng)的部分和,其中s表示級(jí)數(shù)的通項(xiàng),是一個(gè)符號(hào)表達(dá)式。v是求和變量,v省略時(shí)使用系統(tǒng)的默認(rèn)變量。n和m是求和的開始項(xiàng)和末項(xiàng)。用inf表示無窮大。二、符號(hào)微積分5. 函數(shù)的泰勒級(jí)數(shù)taylor(f,v,n,a) 函數(shù)將函數(shù)f按變量v展開為泰勒級(jí)數(shù),展開到第n項(xiàng)(即變量v的n-1次冪)為止,n的缺省值為6。v的缺省值與di

24、ff函數(shù)相同。參數(shù)a指定將函數(shù)f在自變量v=a處展開,a的缺省值是0?!纠?】求級(jí)數(shù)的和:1/12+1/22+1/32+1/42+ ,鍵入:syms k symsum(1/k2,1,inf) %k值為1到無窮大ans =1/6*pi2其結(jié)果為:1/12+1/22+1/32+1/42+ =2/6二、符號(hào)微積分5. 符號(hào)常微分方程求解在MATLAB中,用大寫字母D表示導(dǎo)數(shù)。例如,Dy表示y,D2y表示y,Dy(0)=5表示y(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y+y+y-x+5=0。dsolve(e,c,v)函數(shù)求常微分方程e在初值條件c下的特解。v是方程中的自變量,省略時(shí)按缺

25、省原則處理。若沒有給出初值條件c,則求方程的通解。dsolve(e1,e2,en,c1,cn,v1,vn)函數(shù)求解常微分方程組e1,en在初值條件c1,cn下的特解,若不給出初值條件,則求方程組的通解,v1,vn給出求解變量。5. 符號(hào)常微分方程求解【例9】求微分方程組: 2dx/dt+dy/dt-y=exp(-t), dx/dt+x+y=0 滿足初始條件x(0)=1.5, y(0)=0的特解。syms t x ys=dsolve(2*Dx+Dy-y=exp(-t),Dx+x+y=0); %求解微分方程組的通解s.x %微分方程組變量x的通解s.y %微分方程組變量x的通解s=dsolve(2*Dx+Dy-y=exp(-t),Dx+x+y=0,x(0)=1.5,y(0)=0);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論