MATLAB第5章解方程ppt課件_第1頁
MATLAB第5章解方程ppt課件_第2頁
MATLAB第5章解方程ppt課件_第3頁
MATLAB第5章解方程ppt課件_第4頁
MATLAB第5章解方程ppt課件_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第5章 MATLAB的符號運算5.1 5.1 符號對象的創建符號對象的創建5.2 5.2 基本的符號運算基本的符號運算5.3 5.3 符號微積分符號微積分5.4 5.4 符號方程的求解符號方程的求解5.1 5.1 符號對象的創建定義)符號對象的創建定義) MATLAB提供了一種數據類型提供了一種數據類型: 符號型數符號型數據據, 可以進行符號運算,是符號運算的對象,可以進行符號運算,是符號運算的對象,因此也把符號數據稱為符號對象。因此也把符號數據稱為符號對象。符號對象可以是符號變量、符號常量、符符號對象可以是符號變量、符號常量、符號表達式或符號矩陣。號表達式或符號矩陣。符號對象要先定義,后引用

2、。符號對象要先定義,后引用。如何定義符號變量、符號常量、符號表達如何定義符號變量、符號常量、符號表達式或符號矩陣?式或符號矩陣?用用sym函數、函數、syms函數可以將運算量定義函數可以將運算量定義為符號型數據。為符號型數據。 sym函數函數 syms函數函數(一建立符號變量和符號常數(一建立符號變量和符號常數1、sym函數函數主要功能:創建單個符號變量。主要功能:創建單個符號變量。調用形式:調用形式: 符號變量名符號變量名 = sym(符號字符串符號字符串)將符號字符串創建為一個符號變量,符號將符號字符串創建為一個符號變量,符號變量的值就是該符號字符串,變量的值就是該符號字符串,符號字符串符

3、號字符串 可以是常量、變量、函數或表達式。可以是常量、變量、函數或表達式。注意:每次調用該函數,只能定義一個符注意:每次調用該函數,只能定義一個符號變量。號變量。使用方法舉例使用方法舉例a=sym(a) %a=sym(a) %將將aa創建為符號變量,以創建為符號變量,以a a作為輸作為輸出變量名出變量名 a=a= a ab=sym(b)b=sym(b)x=sym(x) x=sym(x) y=sym(y) y=sym(y) 符號變量的名字不一定和字符串中的字母相同符號變量的名字不一定和字符串中的字母相同 例如:例如: m=sym(y) m=sym(y) SymSym函數可以定義符號常數:函數可以

4、定義符號常數: k1=sym(9);k2=sym(3); %k1=sym(9);k2=sym(3); %定義符號變量定義符號變量 r1=9;r2=3; %r1=9;r2=3; %定義數值變量定義數值變量 k1+sqrt(k2) %k1+sqrt(k2) %符號計算精確的數學表達符號計算精確的數學表達式)式) ans = 9+3(1/2)ans = 9+3(1/2) r1+sqrt(r2) % r1+sqrt(r2) %數值計算近似為一個有限數值計算近似為一個有限小數)小數) ans = 10.7321 ans = 10.7321 2、syms函數函數 syms函數的功能與函數的功能與sym函數

5、類似。但函數類似。但syms函數可以在一個語句中同時定義多個符號變量,函數可以在一個語句中同時定義多個符號變量,其一般格式為:其一般格式為: syms arg1 arg2 argN 將將 arg1, arg2, argN 定義為符號變量。定義為符號變量。例如:例如: syms a b c d x y使用方便、書寫簡潔、意義清楚,一般提倡使用方便、書寫簡潔、意義清楚,一般提倡使用使用syms創建符號變量。創建符號變量。(二)(二) 定義符號表達式定義符號表達式 符號表達式由符號變量、函數、算術運算符符號表達式由符號變量、函數、算術運算符等組成。符號表達式的書寫格式與數值表達式相同。等組成。符號表

6、達式的書寫格式與數值表達式相同。有三種定義方法:有三種定義方法:用用symsym函數定義函數定義用用symssyms函數定義函數定義( (用已定義的符號變量組成符號用已定義的符號變量組成符號表達式表達式) )用單引號定義用單引號定義 f1=sym(3*x2-5*y+2*x*y+6) f1 = 3*x2-5*y+2*x*y+6 syms x y (必須先定義(必須先定義 x y ) f2=3*x2-5*y+2*x*y+6 f2 = 3*x2-5*y+2*x*y+6 f3=3*x2-5*y+2*x*y+6 f3 = 3*x2-5*y+2*x*y+6例如,將數學表達式例如,將數學表達式 定義為符號表

7、達式定義為符號表達式 y= 1+sqrt(5*x)/2 y = 1+sqr(5*x)/2 f=sym(1+sqrt(5*x)/2) f = 1+sqrt(5*x)/2 syms x v=1+sqrt(5*x)/2 v = 1+1/2*5(1/2)*x(1/2)251x(三定義符號矩陣(三定義符號矩陣使用使用symsym和和symssyms函數可以創建符號矩陣,可以函數可以創建符號矩陣,可以直接輸入或從數值矩陣轉換。直接輸入或從數值矩陣轉換。例例2:創建一個符號矩陣兩種方法:創建一個符號矩陣兩種方法 m=sym(a,b;c ,d) m = a, b c, dsyms a b c dn= a, b

8、 ;c ,dn = a, b c, d 注意:注意:符號矩陣與普通矩陣的區別:符號矩陣與普通矩陣的區別: 命令窗口的顯示形式不同;命令窗口的顯示形式不同; 工作空間窗口顯示的變量圖標不工作空間窗口顯示的變量圖標不同。同。建立符號矩陣建立符號矩陣Z=sym( a3-b3,sin(alp)2+cos(alp)2;(15*x*y-3*x2)/(x-5*y),78);Z = a3-b3, sin(alp)2+cos(alp)2 (15*x*y-3*x2)/(x-5*y), 78syms a b x y alp Z1= a3-b3,sin(alp)2+cos(alp)2;(15*x*y-3*x2)/(x

9、-5*y),78Z1 = a3-b3, sin(alp)2+cos(alp)2 (15*x*y-3*x2)/(x-5*y), 78785315cossin22233yxxxybaz(四符號表達式中符號變量的確定(四符號表達式中符號變量的確定 在數學表達式中,一般習慣于使用排在字母表前在數學表達式中,一般習慣于使用排在字母表前面的字母作為變量的系數常數),而用排在后面面的字母作為變量的系數常數),而用排在后面的字母如的字母如x,y,zx,y,z表示變量。例如:表示變量。例如: f=ax2+bx+cf=ax2+bx+c 表達式中,將表達式中,將x x看作自變量,看作自變量,a,b,ca,b,c通常

10、被認為是通常被認為是常數,用作變量的系數。常數,用作變量的系數。 i,j 通常表示虛數單位,在符號運算中不能用作自變量通常表示虛數單位,在符號運算中不能用作自變量 在在MATLABMATLAB中引用符號表達式時,有符號常量和符號變量,中引用符號表達式時,有符號常量和符號變量,如何確定誰是符號自變量呢?可以由用戶可以指定;若用戶沒如何確定誰是符號自變量呢?可以由用戶可以指定;若用戶沒有指定符號變量,則自動使用有指定符號變量,則自動使用findsymfindsym函數默認的變量作為函函數默認的變量作為函數的變量參數。數的變量參數。findsymfindsym函數的原則為:自變量為在字母順序排列的位

11、置上最函數的原則為:自變量為在字母順序排列的位置上最接近接近x x的小寫字母除了的小寫字母除了i i和和j j之外)。如果式子中沒有上述字之外)。如果式子中沒有上述字母,則母,則x x會被視為默認的自變量。如下表:會被視為默認的自變量。如下表:符號表達式符號表達式 默認自變量默認自變量a a* *x2+bx2+b* *x+c x+c x x1/(4+cos(t) 1/(4+cos(t) t t4 4* *x/y x/y x x2 2* *a+b a+b b b2 2* *i+4i+4* *j j x x查詢符號表達式的默認自變量查詢符號表達式的默認自變量 findsym函數可以查詢表達式中使用

12、的符號變量函數可以查詢表達式中使用的符號變量個數及變量名。個數及變量名。引用格式為:引用格式為: findsym( f, n)說明:說明:f 為用戶定義的符號函數,為用戶定義的符號函數, n為正整數,表示查詢變量的個數。為正整數,表示查詢變量的個數。 n值省略時表示查詢符號函數中全部系統默認值省略時表示查詢符號函數中全部系統默認變量。變量。【例3 】查詢符號函數 中的系統默認變量。syms a b n t x % 定義符號變量f=a*xn+b*t; % 給定符號表達式findsym(f,1) % 在f函數中查詢1個系統默認變量ans= x 表示f函數中查詢的1個系統默認變量為x。findsym

13、(f,2)ans= x, tfindsym(f,5)ans= x, t,n,b,a 以最接近x順序排列的5個默認自變量findsym(f)ans=a,b,n,t,x 返回 f表達式中按字母順序排列的全部自變量btaxfn5.2 基本的符號運算基本的符號運算符號表達式的四則運算符號表達式的四則運算2. 2. 符號表達式的因式分解、展開、分式符號表達式的因式分解、展開、分式通分通分3. 3. 符號表達式的化簡符號表達式的化簡1. 1. 符號表達式的四則運算符號表達式的四則運算symaddf1,f2) f1+f2 symsub (f1,f2) f1-f2 symmul (f1,f2) f1*f2 s

14、ymdiv (f1,f2) f1/f2sympow (f1,f2) f1f2f=2*x2+3*x-5g=x2-x+7symadd(f,g) ans = 3*x2+2*x+2symsub(f,g) ans = x2+4*x-12symmul(f,g) ans = (2*x2+3*x-5)*(x2-x+7)symdiv(f,g) ans = (2*x2+3*x-5)/(x2-x+7)sympow(f,3*x) ans =(2*x2+3*x-5)(3*x)2. 2. 符號表達式的因式分解、展開、分式通分符號表達式的因式分解、展開、分式通分因式分解函數為因式分解函數為 factorfactor 調用格

15、式為:調用格式為: factor(s) factor(s) 舉例舉例符號表達式的展開符號表達式的展開 函數為函數為 expandexpand 調用格式為:調用格式為:expand (s) expand (s) 舉例舉例同類項合并函數為同類項合并函數為 collectcollect 調用格式為:調用格式為: collect(s,n) collect(s,n) 舉例舉例 S S為符號表達式,為符號表達式,n n為要合并系數的自為要合并系數的自變量變量符號表達式的分式通分函數為符號表達式的分式通分函數為 numdennumden 調用格式為:調用格式為: n,d=numden(s) n,d=numd

16、en(s) 舉例舉例 n n 為通分后的分子,為通分后的分子,d d為分母為分母3. 3. 符號表達式的化簡符號表達式的化簡表達式的化簡函數為表達式的化簡函數為 simplesimple、simplify simplify 調用格式為:調用格式為: simplify (s) simplify (s) 使用使用MapleMaple的化簡規則化的化簡規則化簡函數簡函數 r,how=simple (s) r,how=simple (s) 用多種方法尋找符號用多種方法尋找符號表達式表達式s s的最簡型,的最簡型, r r為返回的化簡形式,為返回的化簡形式, howhow為為化簡過程使用的主要方法化簡過

17、程使用的主要方法 舉例舉例【例1】 對表達式 進行因式分解 syms x f=factor(x9-1) f= (x-1)*(x2+x+1)*(x6+x3+1) pretty(f) %按照類似書寫習慣的方式顯示 (x-1) (x2+x+1) (x6+x3+1) 【例2】 對大整數12345678901234567890進行因式分解 factor(sym (12345678901234567890)19 xf【例3】 展開表達式 和 syms x y f=(x+1)5; expand(f) ans= x5+5*x4+10*x3+10*x2+5*x+1 f=sin(x+y); expand(f) a

18、ns= sin(x)*cos(y)+cos(x)*sin(y)5) 1( xf)sin(yxf【例4】 對表達式 分別將自變量x和t的同類項合并 syms x t f=x*(x*(x-6)+12)*t; collect(f) ans= t*x3-6*t*x2+12*t*x collect(f,t) ans= x*(x*(x-6)+12)*ttxxxf)12)6(【例5】 對表達式 進行通分 syms x y f=x/y+y/x; n,d=numden(f) n= x2+y2 d= y*xxyyxf【例【例6 6】對表達式】對表達式 進行化簡進行化簡 syms xsyms x f=sin(x)2

19、+cos(x)2; f=sin(x)2+cos(x)2; simplify(f) simplify(f) ans= ans= 1 1【例【例7 7】將表達式】將表達式 用嵌套形式表示。用嵌套形式表示。 syms xsyms x horner(x3-6 horner(x3-6* *x2+11x2+11* *x-6)x-6) ans = ans = -6+(11+(-6+x) -6+(11+(-6+x)* *x)x)* *x x)(cos)(sin22xxf611623xxxf2. 2. 符號表達式的替換符號表達式的替換 通過符號替換使表達式的輸出形式簡化,通過符號替換使表達式的輸出形式簡化,得到

20、一個簡單的表達式得到一個簡單的表達式 符號表達式的替換函數有:符號表達式的替換函數有:subexpr subexpr 、 subssubs 調用格式:調用格式: y,sigma=subexpr(s,sigma)y,sigma=subexpr(s,sigma) 用變量用變量sigmasigma的值替換表達式的值替換表達式s s中重復出現的中重復出現的字符串,字符串,y y返回替換后的結果。返回替換后的結果。 調用格式:調用格式: r=subs(s,old,new) r=subs(s,old,new) 舉例舉例 用新的符號變量用新的符號變量newnew代替表達式代替表達式s s中的變量中的變量ol

21、dold,r r為返回替換后的結果。為返回替換后的結果。 【例【例8 8】分別用新變量替換表達式】分別用新變量替換表達式 a+b a+b 和表達式和表達式 中的變量中的變量 syms a bsyms a b subs(a+b,a,5) subs(a+b,a,5) ans= ans= 5+b 5+b subs(cos(a)+sin(b),a,b,sym(alpha),2) subs(cos(a)+sin(b),a,b,sym(alpha),2) ans= ans= cos(alpha)+sin(2) cos(alpha)+sin(2)sin()cos(baf1. 符號極限符號極限 函數函數lim

22、it用于求符號函數用于求符號函數f的極限。系統可以的極限。系統可以根據用戶要求,計算變量從不同方向趨近于指定值根據用戶要求,計算變量從不同方向趨近于指定值的極限值。該函數的格式及功能:的極限值。該函數的格式及功能: 5.3 符號微積分符號微積分 limit(f,x,a):求符號函數f(x)的極限值。即計算當變量x趨近于常數a時, f(x)函數的極限值。 limit(f,a):求符號函數f(x)的極限值。由于沒有指定符號函數f(x)的自變量,則使用該格式時,符號函數f(x)的變量為函數findsym(f)確定的默認自變量,即變量x趨近于a。limit(f):求符號函數f(x)的極限值。符號函數f

23、(x)的變量為函數findsym(f)確定的默認變量;沒有指定變量的目標值時,系統默認變量趨近于0,即a=0的情況。limit(f,x,a,right):求符號函數f的極限值。right表示變量x從右邊趨近于a。limit(f,x,a,left):求符號函數f的極限值。left表示變量x從左邊趨近于a。【例【例1 1】求極限】求極限syms xsyms x; % %定義符號變量定義符號變量f=(xf=(x* *(exp(sin(x)+1)-2(exp(sin(x)+1)-2* *(exp(tan(x)-(exp(tan(x)-1)/sin(x)31)/sin(x)3; % %確定符號表達式確定

24、符號表達式w=limit(f) %w=limit(f) %求函數的極限求函數的極限xeextgxxx3sin0sin) 1(2) 1(limw = -1/2w = -1/2 符號微分符號微分 diff函數用于對符號表達式求微分。該函數函數用于對符號表達式求微分。該函數的一般引用格式為:的一般引用格式為: diff(s,v,n) 其中:其中:s為符號表達式,為符號表達式,n為正整數,為正整數,v為變為變量。量。 說明:說明: diffs,v,n或或diffs,n,v求符號表求符號表達式達式s對于自變量對于自變量v求求n階微分。階微分。 diffs求符號表達式求符號表達式s對于默認自變量的一對于默

25、認自變量的一階微分。階微分。 diffs,v求符號表達式求符號表達式s對于自變量對于自變量v的一的一階微分。階微分。 diffs,n求符號表達式求符號表達式s對于默認自變量對于默認自變量求求n階微分。階微分。【例【例2】求下列函數:】求下列函數: f=xx的導數和的導數和3次導數次導數 syms x %定義符號變量定義符號變量 f=xx diff(f) diff(f,3) 3符號積分符號積分 函數函數int可以實現符號表達式的積可以實現符號表達式的積分。其引用格式為:分。其引用格式為: ints ,v,a,b) a、b表示定積分運算的表示定積分運算的下限和上限。下限和上限。 ints,v,a,

26、b求符號表達式求符號表達式s對于自變對于自變量量v從從a到到b的定積分。的定積分。 ints,a,b) 求符號表達式求符號表達式s對于默認對于默認自變量從自變量從a到到b的定積分。的定積分。 ints) 求符號表達式求符號表達式s對于默認自對于默認自變量的不定積分。變量的不定積分。 ints,v) 求符號表達式求符號表達式s對于自變量對于自變量v 的不定積分。的不定積分。 【例【例3 3】求下述積分。】求下述積分。求積分:求積分:syms xsyms xint(1/(1+x2) int(1/(1+x2) ans =ans =atan(x)atan(x)dxx211【例【例4 4】定義一個符號函

27、數】定義一個符號函數 fxy=(afxy=(a* *x2+bx2+b* *y2)/c2 y2)/c2 ,分別求該函數對,分別求該函數對x x、y y的導數的導數和對和對x x的積分。的積分。syms a b c x y %syms a b c x y %定義符號變量定義符號變量fxy=(afxy=(a* *x2+bx2+b* *y2)/c2y2)/c2; % %生成符號函數生成符號函數 diff(fxydiff(fxy,x) %x) %符號函數符號函數fxyfxy對對x x求求導數導數ans =2ans =2* *a a* *x/c2x/c2diff(fxydiff(fxy, y) %y) %

28、符號函數符號函數fxyfxy對對y y求求導數導數 ans =2ans =2* *b b* *y/c2y/c2int(fxyint(fxy, x) %x) %符號函數符號函數fxyfxy對對x x求求積分積分ans =1/c2ans =1/c2* *(1/3(1/3* *a a* *x3+bx3+b* *y2y2* *x)x)4. 符號求和符號求和(級數求和級數求和) 表達式求和級數求和運算是數學表達式求和級數求和運算是數學中常見的一種運算。中常見的一種運算。 函數函數symsum可以實現表達式求和。可以實現表達式求和。該函數的引用時,應確定級數的通項式該函數的引用時,應確定級數的通項式s,變

29、量的變化范圍變量的變化范圍a和和b。該函數的引用格。該函數的引用格式為:式為: symsum(s, a,b)【例【例5 5】求級數的和】求級數的和: : 1/12+1/22+1/32+1/42+ 1/12+1/22+1/32+1/42+ 找出通項式:找出通項式:syms k syms k symsum(1/k2,1,Inf) %ksymsum(1/k2,1,Inf) %k值為值為1 1到無窮大到無窮大ans =ans =1/61/6* *pi2pi2其結果為:其結果為:1/12+1/22+1/32+1/42+ =2/61/12+1/22+1/32+1/42+ =2/6121kk考慮:1kk10

30、021kk5. Taylor級數展開級數展開 Taylor級數展開由函數級數展開由函數taylor實現。實現。其調用格式為:其調用格式為:taylor(f): 計算表達式計算表達式f在默認自變量等在默認自變量等于于0處的處的5階階Taylor級數展開式。級數展開式。taylor(f,n,v): 計算表達式計算表達式f在默認自變量在默認自變量v=0處的處的n-1階階Taylor級數展開式。級數展開式。taylor(f,n,v,a): 計算表達式計算表達式f在默認自變在默認自變量量v=a處的處的n-1階階Taylor級數展開式。級數展開式。【例【例6 6】求表達式】求表達式 的的5 5階階Tayl

31、orTaylor級數展開式級數展開式syms xsyms xf=1/(5+cos(x)f=1/(5+cos(x)r=taylor(f)r=taylor(f)r=r=1/6+1/721/6+1/72* *x2x2)cos(51xf 解代數方程組的函數為解代數方程組的函數為solvesolve格式為:格式為: solve(expr) solve(expr) solve(expr,var) solve(expr,var) solve(expr1,expr2,.,exprN,var1,var2,.varN) solve(expr1,expr2,.,exprN,var1,var2,.varN) solv

32、e(expr1,expr2,.,exprN) solve(expr1,expr2,.,exprN) e x p r 1 , e x p r 2 , . . . , e x p r Ne x p r 1 , e x p r 2 , . . . , e x p r N 為 代 數 方 程 組 ,為 代 數 方 程 組 ,var1,var2,.varNvar1,var2,.varN為未知數自變量)。為未知數自變量)。說明:說明:若不指明符號表達式若不指明符號表達式expr1,expr2,.,exprNexpr1,expr2,.,exprN的值,的值,系統默認為系統默認為0 0。例如給出一個表達式。例

33、如給出一個表達式x2-3x2-3* *x-8,x-8,則系則系統將按統將按x2-3x2-3* *x-8=0 x-8=0進行運算;故應將等號右側的數進行運算;故應將等號右側的數值移過來。值移過來。5.4 符號方程的求解1. 1. 代數方程求解代數方程求解【例【例7 7】解代數方程:】解代數方程:a a* *x2-bx2-b* *x-6=0 x-6=0syms a b xsyms a b xsolve(asolve(a* *x2-bx2-b* *x-6) x-6) solve(asolve(a* *x2-bx2-b* *x x6) 6) ans =ans = 1/2/a 1/2/a* *(b+(b

34、2+24(b+(b2+24* *a)(1/2)a)(1/2) 1/2/a 1/2/a* *(b-(b2+24(b-(b2+24* *a)(1/2)a)(1/2)即該方程有兩個根即該方程有兩個根: : x1=1/2/a x1=1/2/a* *(b+(b2+24(b+(b2+24* *a)(1/2)a)(1/2); x2=1/2/ax2=1/2/a* *(b-(b2+24(b-(b2+24* *a)(1/2) a)(1/2) 【例【例8 8】求解代數方程組】求解代數方程組042051022zyxzyxzyxsyms x y xf=x2-y2+z-10;g=x+y-5*z;h=2*x-4*y+z;x,y,z=solve(f,g,h)s=solve(f,g,h);s.x, s.y, s.zx=-19/80+19/240*2409(1/2) -19/80-19/240*2409(1/2)y=-11/80+11/240*2409(1/2) -11/80-11/240*2409(1/2)Z=-3/40+1/40* 240

溫馨提示

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

評論

0/150

提交評論