版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
七:MATLAB符號計算MATLAB課堂content前言與數(shù)值運算的區(qū)別7.1符號計算基礎(chǔ)7.2符號函數(shù)的極限7.3符號微積分7.4級數(shù)7.5代數(shù)方程的符號求解7.6常微分方程的符號求解7.7符號分析可視化7.8符號計算局限性和Maple調(diào)用張衛(wèi)華MATLAB課堂數(shù)值運算中必須先對變量賦值,然后才能參與運算。符號運算無須事先對獨立變量賦值,運算結(jié)果以標(biāo)準(zhǔn)的符號形式表達。 符號運算重點用于解決自然科學(xué)理論中,各種公式、表達式以及相應(yīng)的推導(dǎo)問題前言:與數(shù)值運算的區(qū)別#@張衛(wèi)華MATLAB課堂符號運算的特點:運算對象可以是沒賦值的符號變量可以獲得任意精度的解SymbolicMathToolbox——符號運算工具包通過調(diào)用Maple軟件實現(xiàn)符號計算的。maple軟件——主要功能是符號運算,它占據(jù)符號軟件的主導(dǎo)地位。
前言張衛(wèi)華MATLAB課堂7.1符號計算基礎(chǔ)例:a=sym(‘a(chǎn)’)建立符號量a,
k2=sym('2');
建立單個符號量k2
用戶可以在表達式中使用變量a和k2進行各種運算。7.1.1、建立符號變量和符號表達式1、sym函數(shù)
變量=sym(’變量名‘):用來建立單個符號變量,其中變量名可以是字符、字符串、表達式或字符表達式;
符號常量=sym(‘常量’);
用來建立單個符號常量張衛(wèi)華MATLAB課堂例1:考察符號變量和數(shù)值變量的差別。在MATLAB命令窗口,輸入命令:a=sym('a');b=sym('b');c=sym('c');d=sym('d');
%定義4個符號變量w=10;x=5;y=-8;z=11;%定義4個數(shù)值變量A=[a,b;c,d]%建立符號矩陣AB=[w,x;y,z]%建立數(shù)值矩陣Bdet(A)%計算符號矩陣A的行列式det(B)%計算數(shù)值矩陣B的行列式7.1.1、建立符號變量和符號表達式1、sym函數(shù)張衛(wèi)華MATLAB課堂例2:比較符號常數(shù)與數(shù)值在代數(shù)運算時的差別。在MATLAB命令窗口,輸入命令:pi1=sym('pi');k1=sym('8');k2=sym('2');k3=sym('3'); %定義符號變量和符號常量pi2=pi;r1=8;r2=2;r3=3;
%定義數(shù)值變量f1=sin(pi1/3)%計算符號表達式值s1=sin(pi2/3)%計算數(shù)值表達式值f2=sqrt(k1)%計算符號表達式值s2=sqrt(r1)%計算數(shù)值表達式值f3=sqrt(k3+sqrt(k2))%計算符號表達式值s3=sqrt(r3+sqrt(r2))%計算數(shù)值表達式值7.1.1、建立符號變量和符號表達式1、sym函數(shù)張衛(wèi)華MATLAB課堂syms函數(shù)同時創(chuàng)建多個符號量:symsvar1var2…varn
函數(shù)定義符號變量var1,var2,…,varn等。用這種格式定義符號變量時不要在變量名上加字符分界符('),變量間用空格而不要用逗號分隔。7.1.1、建立符號變量和符號表達式2、syms函數(shù)張衛(wèi)華MATLAB課堂可以用符號變量組成,也可以用sym直接建立例3用兩種方法建立符號表達式。在MATLAB窗口,輸入命令:U=sym('3*x^2+5*y+2*x*y+6')%定義符號表達式Usymsxy;%建立符號變量x、yV=3*x^2+5*y+2*x*y+6%定義符號表達式V2*U-V+6%求符號表達式的值7.1.1、建立符號變量和符號表達式3.符號表達式張衛(wèi)華MATLAB課堂f='sin(x)+5x'f——符號變量名sin(x)+5x——符號表達式''——符號標(biāo)識7.1.1、建立符號變量和符號表達式3.符號表達式符號變量賦值張衛(wèi)華MATLAB課堂''的內(nèi)容可以是符號表達式,也可以是符號方程。例:
f1='ax^2+bx+c'——二次三項式
f2='ax^2+bx+c=0'——方程
f3='Dy+y^2=1'——微分方程※符號表達式或符號方程可以賦給符號變量,以后調(diào)用方便;也可以不賦給符號變量直接參與運算7.1.1、建立符號變量和符號表達式3.符號表達式張衛(wèi)華MATLAB課堂數(shù)值矩陣A=[1,2;3,4]A=[a,b;c,d]——不識別
用matlab函數(shù)sym創(chuàng)建矩陣(symbolic的縮寫)命令格式:A=sym('[]')※符號矩陣內(nèi)容同數(shù)值矩陣
※需用sym指令定義
※需用''標(biāo)識7.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂例如:A=sym('[a,2*b;3*a,0]')A=[a,2*b][3*a,0]
注意:符號矩陣的每一行的兩端都有方括號,這是與matlab數(shù)值矩陣的一個重要區(qū)別。7.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂用字符串直接創(chuàng)建矩陣
模仿matlab數(shù)值矩陣的創(chuàng)建方法
需保證各行元素包含的字符串有相同的長度。例:A=['[a,2*b]';'[3*a,0]']
A=[a,2*b][3*a,0]7.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂例4計算3階范得蒙矩陣行列式的值。設(shè)A是一個由符號變量a,b,c確定的范得蒙矩陣。命令如下:symsabc;U=[a,b,c];A=[[1,1,1];U;U.^2]%建立范得蒙符號矩陣det(A)%計算A的行列式值7.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂
符號矩陣的修改
a.直接修改
可用、鍵找到所要修改的矩陣,直接修改
b.指令修改
用R=subs(S,old,new)來修改7.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂例如:>>A=['[a,2*b]';'[3*a,0]']
>>A=[a,2*b][3*a,0]A(1,2)=subs(2*b,b,c)
A=[a,2*c][3*a,0]7.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂將數(shù)值矩陣轉(zhuǎn)化為符號矩陣函數(shù)調(diào)用格式:sym(A)例:A=[1/3,2.5;1/0.7,2/5]A=0.33332.50001.42860.4000sym(A)ans=[1/3,5/2][10/7,2/5]符號矩陣與數(shù)值矩陣的轉(zhuǎn)換7.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂將符號矩陣轉(zhuǎn)化為數(shù)值矩陣函數(shù)調(diào)用格式:
numeric(A)例:A=[1/3,5/2][10/7,2/5]
numeric(A)
ans=0.33332.50001.42860.40007.1.1、建立符號變量和符號表達式4.符號矩陣張衛(wèi)華MATLAB課堂7.1.2、基本的符號運算1.符號表達式運算符號運算的運算符與函數(shù)和數(shù)值計算幾乎完全相同基礎(chǔ)運算符:+,-,*,/等關(guān)系運算符三角、雙曲函數(shù)指數(shù)、對數(shù)函數(shù)復(fù)數(shù)函數(shù)矩陣代數(shù)命令(1)四則運算張衛(wèi)華MATLAB課堂(1)、符號表達式的四則運算也可以用函數(shù)symadd
symsum
symmul
sysdiv
sympow實現(xiàn)例6符號表達式的四則運算示例。在MATLAB命令窗口,輸入命令:symsxyz;f=2*x+x^2*x-5*x+x^3%符號表達式的結(jié)果為最簡形式f=2*x/(5*x)%符號表達式的結(jié)果為最簡形式f=(x+y)*(x-y)%符號表達式的結(jié)果不是x^2-y^2,而是(x+y)*(x-y)7.1.2、基本的符號運算1.符號表達式運算張衛(wèi)華MATLAB課堂(1)、符號表達式的四則運算符號表達式的提取分子和分母運算如果符號表達式是一個有理分式或可以展開為有理分式,可利用numden函數(shù)來提取符號表達式中的分子或分母。其一般調(diào)用格式為:[n,d]=numden(s)該函數(shù)提取符號表達式s的分子和分母,分別將它們存放在n與d中。7.1.2、基本的符號運算1.符號表達式運算張衛(wèi)華MATLAB課堂(2)、因式分解與展開S是符號表達式或符號矩陣factor(S)
對S分解因式。expand(S)
對S進行展開。collect(S)
對S合并同類項。collect(S,v)
對S按變量v合并同類項。7.1.2、基本的符號運算1.符號表達式運算張衛(wèi)華MATLAB課堂例7對符號矩陣A的每個元素分解因式。命令如下:symsabxy;A=[2*a^2*b^3*x^2-4*a*b^4*x^3+10*a*b^6*x^4,3*x*y-5*x^2;4,a^3-b^3];factor(A)%對A的每個元素分解因式7.1.2、基本的符號運算1.符號表達式運算張衛(wèi)華MATLAB課堂例8計算表達式S的值。命令如下:symsxy;s=(-7*x^2-8*y^2)*(-x^2+3*y^2);expand(s)%對s展開collect(s,x)%對s按變量x合并同類項(無同類項)factor(ans)%對ans分解因式7.1.2、基本的符號運算1.符號表達式運算張衛(wèi)華MATLAB課堂(3)表達式化簡MATLAB提供的對符號表達式化簡的函數(shù)有:simplify(S)
應(yīng)用函數(shù)規(guī)則對S進行化簡。simple(S)
調(diào)用MATLAB的其他函數(shù)對表達式進行綜合化簡,并顯示化簡過程。例9化簡symsxy;s=(x^2+y^2)^2+(x^2-y^2)^2;simple(s)%MATLAB自動調(diào)用多種函數(shù)對s進行化簡,并顯示每步結(jié)果7.1.2、基本的符號運算1.符號表達式運算張衛(wèi)華MATLAB課堂矩陣代數(shù)運算數(shù)值運算和符號運算幾乎相同1、符號矩陣的四則運算符號矩陣的四則運算與冪運算可直接用:+、-、*、.*、/、./、\、.\、^、.^實現(xiàn)。>>B=sym('[a,b;c,d]');>>C=sym('[x,y;z,w]');>>B*Cans=[a*x+b*z,a*y+b*w][c*x+d*z,c*y+d*w]7.1.2、符號矩陣運算2.符號矩陣運算張衛(wèi)華MATLAB課堂2、符號矩陣的其他運算(1)轉(zhuǎn)置運算:transpose>>B=sym('[a,b;c,d]');>>B‘%求轉(zhuǎn)置共軛[conj(a),conj(c)][conj(b),conj(d)]>>transpose(B)%求轉(zhuǎn)置[a,c][b,d]B=[a,b][c,d]張衛(wèi)華MATLAB課堂(2)行列式運算:det(3)求逆:inv(A)或A^(-1)(4)求秩:rank(A)(5)求特征值:[V,D]=eig(A)>>A=sym('[1,2;3,4]')>>eig(A)A=[1,2][3,4]ans=[5/2+1/2*33^(1/2)][5/2-1/2*33^(1/2)]張衛(wèi)華MATLAB課堂在symbolic中有三種不同的算術(shù)運算:數(shù)值類型matlab的浮點算術(shù)運算有理數(shù)類型maple的精確符號運算vpa類型maple的任意精度算術(shù)運算7.1.2、基本的符號運算3.任意精度的數(shù)學(xué)運算張衛(wèi)華MATLAB課堂浮點算術(shù)運算1/2+1/3--(定義輸出格式formatlong)ans=0.83333333333333符號運算sym(1/2)+(1/3)ans=5/6--精確解
7.1.2、基本的符號運算3.任意精度的數(shù)學(xué)運算張衛(wèi)華MATLAB課堂任意精度算術(shù)運算digits(n)——設(shè)置可變精度,缺省16位vpa(x,n)——顯示可變精度計算digits(25)vpa(1/2+1/3)%在digits指定精度下,給出結(jié)果ans=.83333333333333333333333337.1.2、基本的符號運算3.任意精度的數(shù)學(xué)運算張衛(wèi)華MATLAB課堂vpa(5/6,40)%在40位精度下給出計算結(jié)果
ans=.8333333333333333333333333333333333333333
a=sym('[1/4,exp(1);log(3),3/7]')a=[1/4,exp(1)][log(3),3/7]vpa(a,10)ans=[.2500000000,2.718281828][1.098612289,.4285714286]7.1.2、基本的符號運算3.任意精度的數(shù)學(xué)運算張衛(wèi)華MATLAB課堂findsym可以查找一個符號表達式中的的符號變量。findsym(S,n)函數(shù)返回符號表達式S中的n個符號變量,若沒有指定n,則返回S中的全部符號變量。在求函數(shù)的極限、導(dǎo)數(shù)和積分時,如果用戶沒有明確指定自變量,MATLAB將按缺省原則確定主變量并對其進行相應(yīng)微積分運算??捎胒indsym(S,1)查找系統(tǒng)的缺省變量,以最接近字符x的順序排列默認(rèn)自變量;若與X相同距離,則在x后面的優(yōu)先;大寫字母比所有的小寫字母都靠后。。7.1.3、符號表達式中變量的確定張衛(wèi)華MATLAB課堂7.2符號函數(shù)的極限limit函數(shù)的調(diào)用格式為:◆limit(f):◆limit(f,a):◆limit(f,x,a):◆limit(f,x,a,’right’):◆limit(f,x,a,’left’):張衛(wèi)華MATLAB課堂例:10求極限。symsamx;f=(x^(1/m)-a^(1/m))/(x-a);limit(f,x,a)%求極限(1)f=(sin(a+x)-sin(a-x))/x;limit(f)%求極限(2)limit(f,inf)%在x→∞(包括+∞和-∞)處的極限limit(f,x,inf,'left')%求極限(3)f=(sqrt(x)-sqrt(a)-sqrt(x-a))/sqrt(x*x-a*a);limit(f,x,a,'right')
%求極限(4)張衛(wèi)華MATLAB課堂7.3符號微積分7.3.1不定積分在MATLAB中,求不定積分的函數(shù)是int,其調(diào)用格式為:int(f,x)int函數(shù)求函數(shù)f對變量x的不定積分。參數(shù)x可以缺省,遵從缺省原則。張衛(wèi)華MATLAB課堂例7.13求不定積分。命令如下:x=sym('x');f=(3-x^2)^3;int(f)%求不定積分(1)f=sqrt(x^3+x^4);int(f)%求不定積分(2)g=simple(ans)%調(diào)用simple函數(shù)對結(jié)果化簡張衛(wèi)華MATLAB課堂7.3.2符號函數(shù)的定積分int(f,x,a,b)a,b是積分上下限,x為積分變量,可省略例14求定積分。命令如下:x=sym('x');t=sym('t');int(abs(1-x),1,2)%求定積分(1)f=1/(1+x^2);int(f,-inf,inf)%求定積分(2)int(4*t*x,x,2,sin(t))%求定積分(3)f=x^3/(x-1)^100;I=int(f,2,3)
%用符號積分的方法求定積分(4)double(I)
%將上述符號結(jié)果轉(zhuǎn)換為數(shù)值張衛(wèi)華MATLAB課堂例15求橢球的體積。命令如下:symsabcz;f=pi*a*b*(c^2-z^2)/c^2;V=int(f,z,-c,c)V=4/3*pi*a*b*c張衛(wèi)華MATLAB課堂例16軸的長度為10米,若該軸的線性密度計算公式是f(x)=6+0.3x千克/米(其中x為距軸的端點距離),求軸的質(zhì)量。(1)符號函數(shù)積分。在MATLAB命令窗口,輸入命令:symsx;f=6+0.3*x;m=int(f,0,10)(2)數(shù)值積分。先建立一個函數(shù)文件fx.m:functionfx=fx(x)fx=6+0.3*x;再在MATLAB命令窗口,輸入命令:m=quad('fx',0,10,1e-6)張衛(wèi)華MATLAB課堂7.3.3積分變換1.傅立葉(Fourier)變換fourier(fx,x,t)求函數(shù)f(x)的傅立葉像函數(shù)F(t)。ifourier(Fw,t,x)求傅立葉像函數(shù)F(t)的原函數(shù)f(x)。張衛(wèi)華MATLAB課堂例計算f(t)=sin(t)的傅立葉變換及其逆變換。命令如下:symswt;y=sin(t);F=fourier(y,t,w)%求y的傅立葉變換f=ifourier(F,w,t)%求F的傅立葉逆變換例計算f(t)=1/t的傅立葉變換及其逆變換。命令如下:symswt;F=fourier(1/t,t,w)%求y的傅立葉變換f=ifourier(F,w,t)%求F的傅立葉逆變換說明:Dirac函數(shù)為單位脈沖函數(shù)。說明:Heaviside函數(shù)為單位階躍函數(shù)。張衛(wèi)華MATLAB課堂例7.18求函數(shù)的傅立葉變換及其逆變換。命令如下:symsxt;y=abs(x);Ft=fourier(y,x,t)%求y的傅立葉變換fx=ifourier(Ft,t,x)%求Ft的傅立葉逆變換2.拉普拉斯(Laplace)變換laplace(fx,x,t)
求函數(shù)f(x)的拉普拉斯像函數(shù)F(t)。ilaplace(Fw,t,x)
求拉普拉斯像函數(shù)F(t)的原函數(shù)f(x)。張衛(wèi)華MATLAB課堂例7.19計算y=x2的拉普拉斯變換及其逆變換.命令如下:x=sym('x');y=x^2;Ft=laplace(y,x,t)%對函數(shù)y進行拉普拉斯變換fx=ilaplace(Ft,t,x)%對函數(shù)Ft進行拉普拉斯逆變換張衛(wèi)華MATLAB課堂3.Z變換對數(shù)列f(n)進行z變換的MATLAB函數(shù)是:ztrans(fn,n,z)
求fn的Z變換像函數(shù)F(z)iztrans(Fz,z,n)
求Fz的z變換原函數(shù)f(n)例20求數(shù)列fn=e-n的Z變換及其逆變換。命令如下:symsnzfn=exp(-n);Fz=ztrans(fn,n,z)%求fn的Z變換f=iztrans(Fz,z,n)%求Fz的逆Z變換張衛(wèi)華MATLAB課堂求導(dǎo)數(shù)用命令“diff”,相關(guān)的語法見下表輸入格式含義diff(f)或diff(f,x)diff(f,2)或diff(f,x,2)diff(f,n)或diff(f,x,n)diff(S,'x')求表達式S關(guān)于x的導(dǎo)數(shù)diff(S,'x',n)求表達式S關(guān)于x的n次導(dǎo)數(shù)7.3.4符號求導(dǎo)張衛(wèi)華MATLAB課堂例、求函數(shù)f(x)=ax2+bx+c的導(dǎo)數(shù)。解
輸入及結(jié)果如下:f4=0>>symsabcx>>f1=diff(‘a(chǎn)*x^2+b*x+c’)%缺省對x求微分f1=2*a*x+b>>f2=diff(‘a(chǎn)*x^2+b*x+c’,2)%對x求二次微分f2=2*a>>f3=diff(f,a)%對a求微分f3=x^2>>f4=diff(f,a,2)>>
f='a*x^2+b*x+c'張衛(wèi)華MATLAB課堂
例11求函數(shù)的導(dǎo)數(shù)。命令如下:symsabtxyz;f=sqrt(1+exp(x));diff(f)%求(1)。未指定求導(dǎo)變量和階數(shù),按缺省規(guī)則處理f=x*cos(x);diff(f,x,2)%求(2)。求f對x的二階導(dǎo)數(shù)diff(f,x,3)%求(2)。求f對x的三階導(dǎo)數(shù)f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1)%求(3)。按參數(shù)方程求導(dǎo)公式求y對x的導(dǎo)數(shù)(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2))/(diff(f1))^3%求(3)。求y對x的二階導(dǎo)數(shù)f=x*exp(y)/y^2;diff(f,x)%求(4)。z對x的偏導(dǎo)數(shù)diff(f,y)%求(4)。z對y的偏導(dǎo)數(shù)f=x^2+y^2+z^2-a^2;zx=-diff(f,x)/diff(f,z)%求(5)。按隱函數(shù)求導(dǎo)公式求z對x的偏導(dǎo)數(shù)zy=-diff(f,y)/diff(f,z)%求(5)。按隱函數(shù)求導(dǎo)公式求z對y的偏導(dǎo)數(shù)張衛(wèi)華MATLAB課堂例:12在曲線y=x3+3x-2上哪一點的切線與直線y=4x-1平行。命令如下:x=sym('x');y=x^3+3*x-2;%定義曲線函數(shù)f=diff(y);%對曲線求導(dǎo)數(shù)g=f-4;solve(g)%求方程f-4=0的根,即求曲線何處的導(dǎo)數(shù)為4張衛(wèi)華MATLAB課堂7.4級數(shù)7.4.1級數(shù)的符號求和級數(shù)符號求和函數(shù)symsum,調(diào)用格式為:symsum(a,n,n0,nn)其中a表示一個級數(shù)的通項,是一個符號表達式。n是求和變量,n省略時使用系統(tǒng)的默認(rèn)變量。n0和nn是求和的開始項和末項。
例22求和。命令如下:n=sym('n');s1=symsum(1/n^2,n,1,inf)%求s1s2=symsum((-1)^(n+1)/n,1,inf)%求s2。未指定求和變量,缺省為ns3=symsum(n*x^n,n,1,inf)%求s3。此處的求和變量n不能省略。s4=symsum(n^2,1,100)%求s4。計算有限級數(shù)的和張衛(wèi)華MATLAB課堂
7.4.2函數(shù)的泰勒級數(shù)MATLAB中提供了將函數(shù)展開為冪級數(shù)的函數(shù)taylor,其調(diào)用格式為:taylor(f,v,n,a)該函數(shù)將函數(shù)f按變量v展開為泰勒級數(shù),展開到第n項(即變量v的n-1次冪)為止,n的缺省值為6。v的缺省值與diff函數(shù)相同。參數(shù)a指定將函數(shù)f在自變量v=a處展開,a的缺省值是0。例23求函數(shù)在指定點的泰勒展開式。命令如下:x=sym('x');f1=(1+x+x^2)/(1-x+x^2);f2=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);taylor(f1,x,5)%求(1)。展開到x的4次冪時應(yīng)選擇n=5taylor(f2,6)%求(2)。MATLAB還提供可視化的Taylor級數(shù)計算器,使用方法:taylortool張衛(wèi)華MATLAB課堂
例24將多項式表示成x+1的冪的多項式。命令如下:x=sym('x');p=1+3*x+5*x^2-2*x^3;f=taylor(p,x,-1,4)張衛(wèi)華MATLAB課堂7.5代數(shù)方程的符號求解7.5.1線性方程組的符號求解MATLAB中提供了一個求解線性代數(shù)方程組的函數(shù)linsolve,其調(diào)用格式為:linsolve(A,b)張衛(wèi)華MATLAB課堂例27求線性方程組AX=b的解。解方程組(1)的命令如下:A=[34,8,4;3,34,3;3,6,8];b=[4;6;2];X=linsolve(A,b)%調(diào)用linsolve函數(shù)求(1)的解A\b%用另一種方法求(1)的解解方程組(2)的命令如下:symsa11a12a13a21a22a23a31a32a33b1b2b3;A=[a11,a12,a13;a21,a22,a23;a31,a32,a33];b=[b1;b2;b3];X=linsolve(A,b)%調(diào)用linsolve函數(shù)求(2)的解XX=A\b%用左除運算求(2)的解張衛(wèi)華MATLAB課堂7.5.2非線性方程組的符號求解求解非線性方程組的函數(shù)是solve,調(diào)用格式為:solve(s):求解符號表達式s的代數(shù)方程,求解變量為默認(rèn)變量。solve(s,v):求解符號表達式s的代數(shù)方程,求解變量為v。solve(s1,s2,…,sn,v1,v2,…,vn):求解符號表達式s1,s2,…,sn組成的代數(shù)方程組,求解變量分別v1,v2,…,vn。例28解方程。命令如下:x=solve('1/(x+2)+4*x/(x^2-4)=1+2/(x-2)','x')%解方程(1)f=sym('x-(x^3-4*x-7)^(1/3)=1');x=solve(f)%解方程(2)x=solve('2*sin(3*x-pi/4)=1')%解方程(3)x=solve('x+x*exp(x)-10','x')%解方程(4)。僅標(biāo)出方程的左端張衛(wèi)華MATLAB課堂例29:求方程組的解。命令如下:[xy]=solve('1/x^3+1/y^3=28','1/x+1/y=4','x,y')%解方程組(1)[xy]=solve('x+y-98','x^(1/3)+y^(1/3)-2','x,y')%解方程組(2)Warning:Explicitsolutioncouldnotbefound.>InC:\MATLABR11\toolbox\symbolic\solve.matline136x=[emptysym]y=[]對方程組(2)MATLAB給出了無解的結(jié)論,顯然錯誤,請看完全與其同構(gòu)的方程組(3)。輸入命令如下:[u,v]=solve('u^3+v^3-98','u+v-2','u,v')%解方程組(3)[xy]=solve('x^2+y^2-5','2*x^2-3*x*y-2*y^2')%解方程組(4)張衛(wèi)華MATLAB課堂7.6常微分方程的符號求解求解常微分方程的函數(shù)dsolve。該函數(shù)的調(diào)用格式為:dsolve('eqn1','condition','var')該函數(shù)求解微分方程eqn1在初值條件condition下的特解。參數(shù)var描述方程中的自變量符號,省略時按缺省原則處理,若沒有給出初值條件condition,則求方程的通解。dsolve在求微分方程組時的調(diào)用格式為:dsolve('eqn1','eqn2',…,'eqnN','condition1',…,'conditionN','var1',…,'varN')函數(shù)求解微分方程組eqn1、…、eqnN在初值條件conditoion1、…、conditionN下的解,若不給出初值條件,則求方程組的通解,var1、…、varN給出求解變量。另:在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張衛(wèi)華MATLAB課堂例30求微分方程的通解。命令如下:y=dsolve('Dy-(x^2+y^2)/x^2/2','x')%解(1)。方程的右端為0時可以不寫y=dsolve('Dy*x^2+2*x*y-exp(x)','x')%解(2)y=dsolve('Dy-x/y/sqrt(1-x^2)','x')%解(3)例31求微分方程的特解。命令如下:y=dsolve('Dy=2*x*y^2','y(0)=1','x')%解(1)y=dsolve('Dy-x^2/(1+y^2)','y(2)=1','x')%解(2)張衛(wèi)華MATLAB課堂
例32用微分方程的數(shù)值解法和符號解法解方程,并對結(jié)果進行比較。在MATLAB命令窗口,輸入命令:y=dsolve('Dy+2*y/x-4*x','y(1)=2','x')%用符號方法得到方程的解析解為了求方程的數(shù)值解,需要按要求建立一個函數(shù)文件fxyy.m:functionf=fxyy(x,y)f=(4*x^2-2*y)/x;%只能是y'=f(x,y)的形式,當(dāng)不是這種形式時,要變形。return輸入命令:[t,w]=ode45('fxyy',[1,2],2);%得到區(qū)間[1,2]中的數(shù)值解,以向量t、w存儲。為了對兩種結(jié)果進行比較,在同一個坐標(biāo)系中作出兩種結(jié)果的圖形。輸入命令:x=linspace(1,2,100);y=x.^2+1./x.^2;%為作圖把符號解的結(jié)果離散化plot(x,y,'b.',t,w,'r-');張衛(wèi)華MATLAB課堂例33求微分方程組的解。命令如下:[x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y','t')%解方程組(1)[x,y]=dsolve('D2x-y','D2y+x','t')%解方程組(2)張衛(wèi)華MATLAB課堂1.函數(shù)曲線圖
ezplot(F,[a,b])
作函數(shù)F在[a,b]上的圖
F可以是顯函數(shù)、隱函數(shù)或參變量函數(shù)其表示可以是字符串、函數(shù)句柄、
Inline函數(shù)或匿名函數(shù).[a,b]缺省為[-2*pi,2*pi]7.7符號分析可視化張衛(wèi)華MATLAB課堂例:繪出符號表達式在[0,10]間的曲線程序:symsxy=x^2+exp(x);ezplot(y,[0,10])張衛(wèi)華MATLAB課堂ezpolar(F,[a,b])
作極坐標(biāo)函數(shù)F(
)在a<
<b上的圖,[a,b]缺省值為[0,2*pi]ezplot3(x,y,z,[a,b])
作曲線x=x(t),y=y(t),z=z(t)在a<t<b上的三維曲線圖,[a,b]的缺省值為[0,2*pi]2.函數(shù)曲面圖ezmesh(z,[a,b,c,d])
作函數(shù)z(x,y)在
a<x<b,c<y<d上的圖張衛(wèi)華MATLAB課堂ezmesh(x,y,z,[a,b,c,d])
作參變量函數(shù)x(s,t),y(s,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44985.4-2024農(nóng)業(yè)物聯(lián)網(wǎng)通用技術(shù)要求第4部分:畜禽養(yǎng)殖
- GB/T 21551.6-2024家用和類似用途電器的抗菌、除菌、凈化功能第6部分:空調(diào)器的特殊要求
- 2025年度大型水利工程采砂廠承包權(quán)轉(zhuǎn)讓合同范本3篇
- 二零二五版國際貿(mào)易合同主體欺詐責(zé)任劃分與損害賠償合同3篇
- 2025年度鮮羊奶品牌授權(quán)及區(qū)域代理銷售合同范本3篇
- 2025年度出租車行業(yè)駕駛員權(quán)益保護合作協(xié)議3篇
- 2024版加油站柴油訂貨與銷售協(xié)議范例版B版
- 專業(yè)水泥銷售協(xié)議:2024版細(xì)則版A版
- 二零二五年度高壓電纜敷設(shè)與維護保養(yǎng)合同大全3篇
- 2024版吉陽區(qū)環(huán)衛(wèi)設(shè)施安全檢查評估合同
- 危險性較大分部分項工程及施工現(xiàn)場易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 繼電保護試題庫(含參考答案)
- 《榜樣9》觀后感心得體會四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識》備考題庫(含答案)
- 《水下拋石基床振動夯實及整平施工規(guī)程》
- 2025年云南大理州工業(yè)投資(集團)限公司招聘31人管理單位筆試遴選500模擬題附帶答案詳解
- 風(fēng)電危險源辨識及控制措施
- 《教師職業(yè)道德與政策法規(guī)》課程教學(xué)大綱
- 兒童傳染病預(yù)防課件
- 護理組長年底述職報告
- 《住院患者身體約束的護理》團體標(biāo)準(zhǔn)解讀課件
評論
0/150
提交評論