版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)學(xué)軟件Matlab——Matlab符號運算1數(shù)學(xué)軟件Matlab——Matlab符號運算1主要內(nèi)容Matlab符號運算介紹符號對象與基本符號運算
symvar、subs和
vpa
常見的符號計算(重點內(nèi)容)2主要內(nèi)容Matlab符號運算介紹2符號運算
計算以推理方式進(jìn)行,不受計算誤差累積所帶來的困擾
符號計算指令的調(diào)用比較簡單,與教科書上的公式相近
符號計算可以給出完全正確的封閉解,或任意精度的數(shù)值解(封閉解不存在時)
符號計算所需的運行時間相對較長
符號運算的特點
3符號運算計算以推理方式進(jìn)行,不受計算誤差累積所帶來的困擾Matlab符號運算Matlab符號運算是通過符號數(shù)學(xué)工具箱(SymbolicMathToolbox)來實現(xiàn)的。
Matlab的符號數(shù)學(xué)工具箱可以完成幾乎所有得符號運算功能,如:符號表達(dá)式的運算,符號矩陣的運算,符號微積分,符號作圖,符號代數(shù)方程求解,符號微分方程求解等。此外,該工具箱還支持可變精度運算,即支持以指定的精度返回結(jié)果。Matlab符號運算4Matlab符號運算Matlab符號運算是通過符號數(shù)學(xué)符號運算舉例
求一元二次方程ax2+bx+c=0
的根solve('a*x^2+b*x+c=0')
求的根f(x)=(cos
x)2
的一次導(dǎo)數(shù)x=sym('x');diff(cos(x)^2)
計算f(x)=x2
在區(qū)間[a,b]
上的定積分symsabx;int(x^2,a,b)5符號運算舉例求一元二次方程ax2+bx+c=內(nèi)容提要Matlab符號運算介紹
符號對象與基本符號運算
symvar、subs和vpa常見的符號計算6內(nèi)容提要Matlab符號運算介紹6
在進(jìn)行符號運算時,必須先定義基本的符號對象,可以是
符號變量、符號表達(dá)式等符號對象是一種數(shù)據(jù)結(jié)構(gòu)符號對象符號表達(dá)式:含有符號對象的表達(dá)式稱
符號矩陣/數(shù)組:元素為符號表達(dá)式的矩陣/數(shù)組Matlab符號對象7在進(jìn)行符號運算時,必須先定義基本的符號對象,可以是
sym
用來建立單個符號對象,一般調(diào)用格式為:符號對象的定義/聲明:sym、syms符號對象的建立例:a=sym('a')符號變量
=
sym(x)參數(shù)x
可以是一個數(shù)或數(shù)值矩陣,也可以是字符串a(chǎn)
是符號變量b
是符號常量b=sym('1/3')C
是符號矩陣C=sym('[1ab;cd]')8sym用來建立單個符號對象,一般調(diào)用格式為:符號對象的符號對象的建立syms符號變量1符號變量2...符號變量n例:symsabc;a=sym('a');b=sym('b');c=sym('c');
syms
用來聲明多個符號變量,一般調(diào)用格式為:符號對象的定義/聲明:sym、syms9符號對象的建立syms符號變量1符號變量2...符號例:建立符號表達(dá)式通常有以下2種方法:(1)用sym
函數(shù)直接建立符號表達(dá)式
(2)使用已經(jīng)定義的符號變量組成符號表達(dá)式y(tǒng)=sym('sin(x)+cos(x)')x=sym('x');y=sin(x)+cos(x)符號表達(dá)式symsx;y=sin(x)+cos(x)符號表達(dá)式:含符號對象的表達(dá)式10例:建立符號表達(dá)式通常有以下2種方法:y=sym('sMatlab符號運算采用的運算符和基本函數(shù),在形狀、名稱和使用上,都與數(shù)值計算中的運算符和基本函數(shù)完全相同基本符號運算普通運算:數(shù)組運算:矩陣轉(zhuǎn)置:基本運算基本數(shù)學(xué)函數(shù)三角函數(shù)與反三角函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)等sin,cos,asin,acos,exp,log,abs,diag,tril,triu,...+
-
*
\
/
^.*.\./.^'.'11Matlab符號運算采用的運算符和基本函數(shù),在形狀、名稱和符號矩陣A=sym('[1+x,sin(x);5,exp(x)]')
使用
sym
函數(shù)直接生成
將數(shù)值矩陣轉(zhuǎn)化成符號矩陣
符號矩陣中元素的引用和修改B=[2/3,sqrt(2);5.2,log(3)];C=sym(B)A=sym('[1+x,sin(x);5,exp(x)]');A(1,2)
%引用A(2,2)=sym('cos(x)')
%重新賦值
符號矩陣的生成12符號矩陣A=sym('[1+x,sin(x);5,ex內(nèi)容提要Matlab符號運算介紹符號對象與基本符號運算
symvar、subs和
vpa常見的符號計算13內(nèi)容提要Matlab符號運算介紹13symvarsymvar(s)symvar(s,N)列出符號表達(dá)式中的符號變量按字母順序列出符號表達(dá)式s
中的所有符號變量列出符號表達(dá)式
s
中離x
最近的N
個符號變量若有兩個符號變量與x
的距離相等,則ASCII碼大者優(yōu)先
常量pi,i,j
不作為符號變量f=sym('2*v-3*y+z^2+5*a')symvar(f)symvar(f,2)例:14symvarsymvar(s)symvar(s,N)列出subs用a
替換符號表達(dá)式
s
中的符號變量x這里a
可以是數(shù)/變量/表達(dá)式或符號變量/表達(dá)式符號替換用給定的數(shù)據(jù)替換符號表達(dá)式中的指定的符號變量subs(s,x,a)symsxyuv;f1=2*x+y-1;f2=subs(f1,x,u)f3=subs(f1,y,2+3)f3=subs(f1,{x,y},{u,v})例:15subs用a替換符號表達(dá)式s中的符號變量x符號subs舉例f=sym('2*u');f1=subs(f,'u',2)f2=subs(f,'u','u+2')f3=subs(f,'u',[1,2])a=3;f4=subs(f2,'u',a+2)f5=subs(f2,'u','a+2')symsxy;f6=subs(f,'u',x+y)f7=subs(f6,{x,y},{1,2})f8=subs(f6,{x,y},{x+y,x+y})例:指出下面各條語句的輸出結(jié)果符號變量若沒有聲明,則需要加上單引號!f=2*uf1=4f2=2*u+4f3=[2,4]f4=14f5=2*a+8f6=2*x+2*yf7=6f8=4*x+4*y16subs舉例f=sym('2*u');例:指出下面各條語句vpa計算表達(dá)式s
的值,保留n
位有效數(shù)字返回值是符號對象可變精度vpa(s,n)x1=vpa(sin(pi/2),10)x2=vpa(pi^3,3)x3=vpa(pi,100)例:17vpa計算表達(dá)式s的值,保留n位有效數(shù)字可變精度內(nèi)容提要Matlab符號運算介紹符號對象與基本符號運算
symvar、subs和vpa
常見的符號計算(六類運算)
因式分解、展開、合并、簡化、通分和反函數(shù)等
計算極限
計算導(dǎo)數(shù)
計算積分
符號級數(shù)求和
代數(shù)方程和微分方程的求解(重點與難點)18內(nèi)容提要Matlab符號運算介紹因式分解、展開、合并、因式分解factor(f)symsx;f=x^6+1;factor(f)
factor
也可用于正整數(shù)的分解s=factor(100)factor(12345678901234567890)
%ERRORfactor(sym('12345678901234567890'))對大整數(shù)進(jìn)行因式分解時可以先將其轉(zhuǎn)化成符號常量例:例:
因式分解19因式分解factor(f)symsx;f=x^6+1;函數(shù)展開expand(f)symsx;f=(x+1)^6;expand(f)多項式展開三角函數(shù)展開symsxy;f=sin(x+y);expand(f)函數(shù)展開例:例:20函數(shù)展開expand(f)symsx;多項式展開三合并同類項symsxy;f=x^2*y+y*x+y^2+2*x;collect(f)collect(f,y)例:collect(f,v)%按指定變量v進(jìn)行合并collect(f)%按默認(rèn)變量進(jìn)行合并合并同類項
默認(rèn)變量:symvar(f)
的返回結(jié)果symsuv;g=u^2*v+u*v^3-u^2+v;collect(g)21合并同類項symsxy;f=x^2*y+y*x+y^函數(shù)簡化y=simplify(f)函數(shù)簡化
對符號表達(dá)式f
進(jìn)行簡化symsx;f=sin(x)^2+cos(x)^2;y=simplify(f)例:22函數(shù)簡化y=simplify(f)函數(shù)簡化對符號表達(dá)式函數(shù)簡化y=simple(f)函數(shù)簡化
對
f嘗試多種不同的方法(包括simplify)進(jìn)行簡化,
以尋求其最簡短形式例:化簡symsx;f=(cos(x)^2-sin(x)^2)*sin(2*x)*(exp(2*x)
...
-2*exp(x)+1)/(exp(2*x)-1);y1=simplify(f)y2=simple(f)23函數(shù)簡化y=simple(f)函數(shù)簡化對f嘗試多種不函數(shù)簡化[N,D]=numden(f)通分
N
為通分后的分子,D
為通分后的分母symsxy;f=x/y+y/x;[N,D]=numden(f
)[n,d]=numden(sym(112/1024))例:24函數(shù)簡化[N,D]=numden(f)通分N為通分后的horner
多項式
horner
多項式:嵌套形式的多項式symsx;f=x^4+2*x^3+4*x^2+x+1;g=horner(f)例:25horner多項式horner多項式:嵌套形式的多項式求反函數(shù)反函數(shù)finverse(f,v)%
求f
關(guān)于指定變量v
的反函數(shù)finverse(f)%
求f
關(guān)于默認(rèn)變量的反函數(shù)symsxt;f=x^2+2*t;g1=finverse(f,x)g2=finverse(f,t)例:計算函數(shù)的反函數(shù)26求反函數(shù)反函數(shù)finverse(f,v)%求f關(guān)計算極限limit(f,x,a)
%
計算limit(f,a)
%
當(dāng)默認(rèn)變量趨向于a時的極限limit(f)
%
計算a=0時的極限limit(f,x,a,'right')
%
計算右極限limit(f,x,a,'left')
%
計算左極限例:計算
,symsxhn;L=limit((log(x+h)-log(x))/h,h,0)M=limit((1-x/n)^n,n,inf)
計算極限27計算極限limit(f,x,a)%計算例:計算計算導(dǎo)數(shù)g=diff(f,v)
%求符號表達(dá)式
f
關(guān)于變量
v
的導(dǎo)數(shù)g=diff(f)
%
計算關(guān)于默認(rèn)變量的導(dǎo)數(shù)g=diff(f,v,n)
%求
f
關(guān)于
v
的
n
階導(dǎo)數(shù)
計算導(dǎo)數(shù)symsx;f=sin(x)+3*x^2;g1=diff(f,x)g2=diff(f,x,3)例:28計算導(dǎo)數(shù)g=diff(f,v)%求符號表達(dá)式f關(guān)于計算積分int(f,v,a,b)
%
計算定積分int(f,a,b)
%
計算關(guān)于默認(rèn)變量的定積分int(f,v)
%
計算不定積分int(f)
%
計算關(guān)于默認(rèn)變量的不定積分symsx;f=(x^2+1)/(x^2-2*x+2)^2;I=int(f,x)K=int(exp(-x^2),x,0,inf)例:計算和
計算積分29計算積分int(f,v,a,b)%計算定積分syms符號級數(shù)求和symsn;f=1/n^2;S=symsum(f,n,1,inf)S100=symsum(f,n,1,100)symsum(f,v,a,b)%
級數(shù)求和symsum(f,a,b)%
關(guān)于默認(rèn)變量求和例:計算級數(shù)及其前100項的部分和S100例:計算函數(shù)級數(shù)symsnx;f=x/n^2;S=symsum(f,n,1,inf)
符號級數(shù)求和30符號級數(shù)求和symsn;f=1/n^2;symsum(f代數(shù)方程求解solve(f,v)%求方程關(guān)于指定自變量的解詳細(xì)用法見Matlab08:多項式運算與代數(shù)方程求解器
代數(shù)方程求解這里f
可以用字符串表示或符號表達(dá)式
solve
也可解方程組(通常是非線性的)得不到解析解時,給出數(shù)值解例:solve('2*x-3')%
或
solve('2*x-3=0')symsx;solve(2*x-3)%
不能寫成
solve(2*x-3=0)symsx;solve(2*x-sin(x)+1)31代數(shù)方程求解solve(f,v)%求方程關(guān)于指定自變量微分方程求解
用Maltab自帶函數(shù)解初值問題
求微分方程解析解:dsolve
求微分方程數(shù)值解*(自學(xué),選學(xué)):
ode45、ode23、
ode113、ode23t、ode15s、ode23s、ode23tb32微分方程求解用Maltab自帶函數(shù)解初值問題求微分方dsolve求解析解
dsolve的使用y=dsolve('eq1','eq2',...,'cond1','cond2',...,'v')其中
y為輸出,
eq1、eq2、...為微分方程,cond1、cond2、...為初值條件,v
為自變量。例1:求微分方程的通解,并驗證。y=dsolve('Dy+2*x*y=x*exp(-x^2)','x')symsx;diff(y)+2*x*y-x*exp(-x^2)33dsolve求解析解dsolve的使用y=dsolvedsolve的使用
幾點說明如果省略初值條件,則表示求通解;如果省略自變量,則默認(rèn)自變量為t
dsolve('Dy=2*x','x');%
dy/dx=2xdsolve('Dy=2*x');%dy/dt=2x若找不到解析解,則返回其積分形式。微分方程中用D
表示對自變量的導(dǎo)數(shù),如:Dyy';D2yy'';D3yy'''34dsolve的使用幾點說明如果省略初值條件,則表示求通例2:求微分方程在初值條件下的特解,并畫出解函數(shù)的圖形。y=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x')ezplot(y);dsolve的使用35例2:求微分方程在初值條例3:求微分方程組
在初值條件下的特解,并畫出解函數(shù)的圖形。[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0',...'x(0)=1','y(0)=0','t')ezplot(x,y,[0,1.3]);注:解微分方程組時,如果所給的輸出個數(shù)與方程個數(shù)相同,則方程組的解按詞典順序輸出;如果只給一個輸出,則輸出的是一個包含解的結(jié)構(gòu)(structure)類型的數(shù)據(jù)。dsolve的使用36例3:求微分方程組例:[x,y]=dsolve('Dx+5*x=0','Dy-3*y=0',...'x(0)=1','y(0)=1','t')r=dsolve('Dx+5*x=0','Dy-3*y=0',...'x(0)=1','y(0)=1','t')這里返回的r
是一個結(jié)構(gòu)類型的數(shù)據(jù)r.x%查看解函數(shù)
x(t)r.y%查看解函數(shù)
y(t)只有很少一部分微分方程(組)能求出解析解。
大部分微分方程(組)只能利用數(shù)值方法求數(shù)值解。dsolve的輸出個數(shù)只能為一個或與方程個數(shù)相等dsolve的使用37例:[x,y]=dsolve('Dx+5*x=0','Dy-上機作業(yè)教材P33的習(xí)題6~10,寫入文件m04_1.m;2.教材P32的習(xí)題4,寫入文件m04_2.m;3.求解下列微分方程(組),寫入文件m04_3.m,并且對于初值問題還要求畫出解函數(shù)的圖形;(5)(6)選做。38上機作業(yè)教材P33的習(xí)題6~10,寫入文件m04_1.m;2上機要求將完成每題所用的命令寫入一個規(guī)定文件名的文件中然后將這些文件作為附件,通過foxmail以郵件形式發(fā)給
admin@system.mail郵件主題為:機號-學(xué)號-姓名其中機號為兩位數(shù)三個字段之間用英文狀態(tài)下的減號鏈接
上機要求強調(diào)39上機要求將完成每題所用的命令寫入一個規(guī)定文件名的文件中上機求微分方程數(shù)值解*(自學(xué),選學(xué))[T,Y]=solver(odefun,tspan,y0)其中y0
為初值條件,tspan為求解區(qū)間;Matlab在數(shù)值求解時自動對求解區(qū)間進(jìn)行分割,T(列向量)中返回的是分割點的值(自變量),Y(數(shù)組)中返回的是這些分割點上的近似解,其列數(shù)等于因變量的個數(shù)。solver
為Matlab的ODE求解器(可以是ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb)沒有一種算法可以有效地解決所有的ODE問題,因此MATLAB提供了多種ODE求解器,對于不同的ODE,可以調(diào)用不同的求解器。40求微分方程數(shù)值解*(自學(xué),選學(xué))[T,Y]=solverMatlab的ODE求解器*(自學(xué),選學(xué))求解器ODE類型特點 說明ode45非剛性單步法;4,5階R-K方法;累計截斷誤差為(△x)3大部分場合的首選方法ode23非剛性單步法;2,3階R-K方法;累計截斷誤差為(△x)3使用于精度較低的情形ode113非剛性多步法;Adams算法;高低精度均可到10-3~10-6
計算時間比
ode45
短ode23t適度剛性采用梯形算法適度剛性情形ode15s剛性多步法;Gear’s反向數(shù)值微分;精度中等若
ode45
失效時,可嘗試使用ode23s剛性單步法;2階Rosebrock算法;低精度當(dāng)精度較低時,計算時間比ode15s
短ode23tb剛性梯形算法;低精度當(dāng)精度較低時,計算時間比ode15s短41Matlab的ODE求解器*(自學(xué),選學(xué))求解器ODE類型特參數(shù)說明*(自學(xué),選學(xué))odefun
為顯式常微分方程,可以用命令inline
定義,或在函數(shù)文件中定義,然后通過函數(shù)句柄調(diào)用。fun=inline('-2*y+2*x^2+2*x','x','y');[x,y]=ode23(fun,[0,0.5],1);注:也可以在tspan
中指定對求解區(qū)間的分割,如:[x,y]=ode23(fun,[0:0.1:0.5],1);%此時x=[0:0.1:0.5][T,Y]=solver(odefun,tspan,y0)求初值問題
的數(shù)值解,求解范圍為[0,0.5]例:42參數(shù)說明*(自學(xué),選學(xué))odefun為顯式常微分方程,可以數(shù)值求解舉例*(自學(xué),選學(xué))如果需求解的問題是高階常微分方程,則需將其化為一階常微分方程組,此時必須用函數(shù)文件來定義該常微分方程組。令
,則原方程可化為求解VerderPol初值問題例:43數(shù)值求解舉例*(自學(xué),選學(xué))如果需求解的問題是高階常微分方程數(shù)值求解舉例*(自學(xué),選學(xué))
先編寫函數(shù)文件
verderpol.mfunctionxprime=verderpol(t,x)globalmu;xprime=[x(2);mu*(1-x(1)^2)*x(2)-x(1)];再編寫腳本文件vdpl.m,在命令窗口直接運行該文件。clear;globalmu;mu=7;y0=[1;0];[t,x]=ode45('verderpol',[0,40],y0);
plot(t,x(:,1),'r-',
t,x(:,2),'b-');44數(shù)值求解舉例*(自學(xué),選學(xué))先編寫函數(shù)文件verderp數(shù)學(xué)軟件Matlab——Matlab符號運算45數(shù)學(xué)軟件Matlab——Matlab符號運算1主要內(nèi)容Matlab符號運算介紹符號對象與基本符號運算
symvar、subs和
vpa
常見的符號計算(重點內(nèi)容)46主要內(nèi)容Matlab符號運算介紹2符號運算
計算以推理方式進(jìn)行,不受計算誤差累積所帶來的困擾
符號計算指令的調(diào)用比較簡單,與教科書上的公式相近
符號計算可以給出完全正確的封閉解,或任意精度的數(shù)值解(封閉解不存在時)
符號計算所需的運行時間相對較長
符號運算的特點
47符號運算計算以推理方式進(jìn)行,不受計算誤差累積所帶來的困擾Matlab符號運算Matlab符號運算是通過符號數(shù)學(xué)工具箱(SymbolicMathToolbox)來實現(xiàn)的。
Matlab的符號數(shù)學(xué)工具箱可以完成幾乎所有得符號運算功能,如:符號表達(dá)式的運算,符號矩陣的運算,符號微積分,符號作圖,符號代數(shù)方程求解,符號微分方程求解等。此外,該工具箱還支持可變精度運算,即支持以指定的精度返回結(jié)果。Matlab符號運算48Matlab符號運算Matlab符號運算是通過符號數(shù)學(xué)符號運算舉例
求一元二次方程ax2+bx+c=0
的根solve('a*x^2+b*x+c=0')
求的根f(x)=(cos
x)2
的一次導(dǎo)數(shù)x=sym('x');diff(cos(x)^2)
計算f(x)=x2
在區(qū)間[a,b]
上的定積分symsabx;int(x^2,a,b)49符號運算舉例求一元二次方程ax2+bx+c=內(nèi)容提要Matlab符號運算介紹
符號對象與基本符號運算
symvar、subs和vpa常見的符號計算50內(nèi)容提要Matlab符號運算介紹6
在進(jìn)行符號運算時,必須先定義基本的符號對象,可以是
符號變量、符號表達(dá)式等符號對象是一種數(shù)據(jù)結(jié)構(gòu)符號對象符號表達(dá)式:含有符號對象的表達(dá)式稱
符號矩陣/數(shù)組:元素為符號表達(dá)式的矩陣/數(shù)組Matlab符號對象51在進(jìn)行符號運算時,必須先定義基本的符號對象,可以是
sym
用來建立單個符號對象,一般調(diào)用格式為:符號對象的定義/聲明:sym、syms符號對象的建立例:a=sym('a')符號變量
=
sym(x)參數(shù)x
可以是一個數(shù)或數(shù)值矩陣,也可以是字符串a(chǎn)
是符號變量b
是符號常量b=sym('1/3')C
是符號矩陣C=sym('[1ab;cd]')52sym用來建立單個符號對象,一般調(diào)用格式為:符號對象的符號對象的建立syms符號變量1符號變量2...符號變量n例:symsabc;a=sym('a');b=sym('b');c=sym('c');
syms
用來聲明多個符號變量,一般調(diào)用格式為:符號對象的定義/聲明:sym、syms53符號對象的建立syms符號變量1符號變量2...符號例:建立符號表達(dá)式通常有以下2種方法:(1)用sym
函數(shù)直接建立符號表達(dá)式
(2)使用已經(jīng)定義的符號變量組成符號表達(dá)式y(tǒng)=sym('sin(x)+cos(x)')x=sym('x');y=sin(x)+cos(x)符號表達(dá)式symsx;y=sin(x)+cos(x)符號表達(dá)式:含符號對象的表達(dá)式54例:建立符號表達(dá)式通常有以下2種方法:y=sym('sMatlab符號運算采用的運算符和基本函數(shù),在形狀、名稱和使用上,都與數(shù)值計算中的運算符和基本函數(shù)完全相同基本符號運算普通運算:數(shù)組運算:矩陣轉(zhuǎn)置:基本運算基本數(shù)學(xué)函數(shù)三角函數(shù)與反三角函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)等sin,cos,asin,acos,exp,log,abs,diag,tril,triu,...+
-
*
\
/
^.*.\./.^'.'55Matlab符號運算采用的運算符和基本函數(shù),在形狀、名稱和符號矩陣A=sym('[1+x,sin(x);5,exp(x)]')
使用
sym
函數(shù)直接生成
將數(shù)值矩陣轉(zhuǎn)化成符號矩陣
符號矩陣中元素的引用和修改B=[2/3,sqrt(2);5.2,log(3)];C=sym(B)A=sym('[1+x,sin(x);5,exp(x)]');A(1,2)
%引用A(2,2)=sym('cos(x)')
%重新賦值
符號矩陣的生成56符號矩陣A=sym('[1+x,sin(x);5,ex內(nèi)容提要Matlab符號運算介紹符號對象與基本符號運算
symvar、subs和
vpa常見的符號計算57內(nèi)容提要Matlab符號運算介紹13symvarsymvar(s)symvar(s,N)列出符號表達(dá)式中的符號變量按字母順序列出符號表達(dá)式s
中的所有符號變量列出符號表達(dá)式
s
中離x
最近的N
個符號變量若有兩個符號變量與x
的距離相等,則ASCII碼大者優(yōu)先
常量pi,i,j
不作為符號變量f=sym('2*v-3*y+z^2+5*a')symvar(f)symvar(f,2)例:58symvarsymvar(s)symvar(s,N)列出subs用a
替換符號表達(dá)式
s
中的符號變量x這里a
可以是數(shù)/變量/表達(dá)式或符號變量/表達(dá)式符號替換用給定的數(shù)據(jù)替換符號表達(dá)式中的指定的符號變量subs(s,x,a)symsxyuv;f1=2*x+y-1;f2=subs(f1,x,u)f3=subs(f1,y,2+3)f3=subs(f1,{x,y},{u,v})例:59subs用a替換符號表達(dá)式s中的符號變量x符號subs舉例f=sym('2*u');f1=subs(f,'u',2)f2=subs(f,'u','u+2')f3=subs(f,'u',[1,2])a=3;f4=subs(f2,'u',a+2)f5=subs(f2,'u','a+2')symsxy;f6=subs(f,'u',x+y)f7=subs(f6,{x,y},{1,2})f8=subs(f6,{x,y},{x+y,x+y})例:指出下面各條語句的輸出結(jié)果符號變量若沒有聲明,則需要加上單引號!f=2*uf1=4f2=2*u+4f3=[2,4]f4=14f5=2*a+8f6=2*x+2*yf7=6f8=4*x+4*y60subs舉例f=sym('2*u');例:指出下面各條語句vpa計算表達(dá)式s
的值,保留n
位有效數(shù)字返回值是符號對象可變精度vpa(s,n)x1=vpa(sin(pi/2),10)x2=vpa(pi^3,3)x3=vpa(pi,100)例:61vpa計算表達(dá)式s的值,保留n位有效數(shù)字可變精度內(nèi)容提要Matlab符號運算介紹符號對象與基本符號運算
symvar、subs和vpa
常見的符號計算(六類運算)
因式分解、展開、合并、簡化、通分和反函數(shù)等
計算極限
計算導(dǎo)數(shù)
計算積分
符號級數(shù)求和
代數(shù)方程和微分方程的求解(重點與難點)62內(nèi)容提要Matlab符號運算介紹因式分解、展開、合并、因式分解factor(f)symsx;f=x^6+1;factor(f)
factor
也可用于正整數(shù)的分解s=factor(100)factor(12345678901234567890)
%ERRORfactor(sym('12345678901234567890'))對大整數(shù)進(jìn)行因式分解時可以先將其轉(zhuǎn)化成符號常量例:例:
因式分解63因式分解factor(f)symsx;f=x^6+1;函數(shù)展開expand(f)symsx;f=(x+1)^6;expand(f)多項式展開三角函數(shù)展開symsxy;f=sin(x+y);expand(f)函數(shù)展開例:例:64函數(shù)展開expand(f)symsx;多項式展開三合并同類項symsxy;f=x^2*y+y*x+y^2+2*x;collect(f)collect(f,y)例:collect(f,v)%按指定變量v進(jìn)行合并collect(f)%按默認(rèn)變量進(jìn)行合并合并同類項
默認(rèn)變量:symvar(f)
的返回結(jié)果symsuv;g=u^2*v+u*v^3-u^2+v;collect(g)65合并同類項symsxy;f=x^2*y+y*x+y^函數(shù)簡化y=simplify(f)函數(shù)簡化
對符號表達(dá)式f
進(jìn)行簡化symsx;f=sin(x)^2+cos(x)^2;y=simplify(f)例:66函數(shù)簡化y=simplify(f)函數(shù)簡化對符號表達(dá)式函數(shù)簡化y=simple(f)函數(shù)簡化
對
f嘗試多種不同的方法(包括simplify)進(jìn)行簡化,
以尋求其最簡短形式例:化簡symsx;f=(cos(x)^2-sin(x)^2)*sin(2*x)*(exp(2*x)
...
-2*exp(x)+1)/(exp(2*x)-1);y1=simplify(f)y2=simple(f)67函數(shù)簡化y=simple(f)函數(shù)簡化對f嘗試多種不函數(shù)簡化[N,D]=numden(f)通分
N
為通分后的分子,D
為通分后的分母symsxy;f=x/y+y/x;[N,D]=numden(f
)[n,d]=numden(sym(112/1024))例:68函數(shù)簡化[N,D]=numden(f)通分N為通分后的horner
多項式
horner
多項式:嵌套形式的多項式symsx;f=x^4+2*x^3+4*x^2+x+1;g=horner(f)例:69horner多項式horner多項式:嵌套形式的多項式求反函數(shù)反函數(shù)finverse(f,v)%
求f
關(guān)于指定變量v
的反函數(shù)finverse(f)%
求f
關(guān)于默認(rèn)變量的反函數(shù)symsxt;f=x^2+2*t;g1=finverse(f,x)g2=finverse(f,t)例:計算函數(shù)的反函數(shù)70求反函數(shù)反函數(shù)finverse(f,v)%求f關(guān)計算極限limit(f,x,a)
%
計算limit(f,a)
%
當(dāng)默認(rèn)變量趨向于a時的極限limit(f)
%
計算a=0時的極限limit(f,x,a,'right')
%
計算右極限limit(f,x,a,'left')
%
計算左極限例:計算
,symsxhn;L=limit((log(x+h)-log(x))/h,h,0)M=limit((1-x/n)^n,n,inf)
計算極限71計算極限limit(f,x,a)%計算例:計算計算導(dǎo)數(shù)g=diff(f,v)
%求符號表達(dá)式
f
關(guān)于變量
v
的導(dǎo)數(shù)g=diff(f)
%
計算關(guān)于默認(rèn)變量的導(dǎo)數(shù)g=diff(f,v,n)
%求
f
關(guān)于
v
的
n
階導(dǎo)數(shù)
計算導(dǎo)數(shù)symsx;f=sin(x)+3*x^2;g1=diff(f,x)g2=diff(f,x,3)例:72計算導(dǎo)數(shù)g=diff(f,v)%求符號表達(dá)式f關(guān)于計算積分int(f,v,a,b)
%
計算定積分int(f,a,b)
%
計算關(guān)于默認(rèn)變量的定積分int(f,v)
%
計算不定積分int(f)
%
計算關(guān)于默認(rèn)變量的不定積分symsx;f=(x^2+1)/(x^2-2*x+2)^2;I=int(f,x)K=int(exp(-x^2),x,0,inf)例:計算和
計算積分73計算積分int(f,v,a,b)%計算定積分syms符號級數(shù)求和symsn;f=1/n^2;S=symsum(f,n,1,inf)S100=symsum(f,n,1,100)symsum(f,v,a,b)%
級數(shù)求和symsum(f,a,b)%
關(guān)于默認(rèn)變量求和例:計算級數(shù)及其前100項的部分和S100例:計算函數(shù)級數(shù)symsnx;f=x/n^2;S=symsum(f,n,1,inf)
符號級數(shù)求和74符號級數(shù)求和symsn;f=1/n^2;symsum(f代數(shù)方程求解solve(f,v)%求方程關(guān)于指定自變量的解詳細(xì)用法見Matlab08:多項式運算與代數(shù)方程求解器
代數(shù)方程求解這里f
可以用字符串表示或符號表達(dá)式
solve
也可解方程組(通常是非線性的)得不到解析解時,給出數(shù)值解例:solve('2*x-3')%
或
solve('2*x-3=0')symsx;solve(2*x-3)%
不能寫成
solve(2*x-3=0)symsx;solve(2*x-sin(x)+1)75代數(shù)方程求解solve(f,v)%求方程關(guān)于指定自變量微分方程求解
用Maltab自帶函數(shù)解初值問題
求微分方程解析解:dsolve
求微分方程數(shù)值解*(自學(xué),選學(xué)):
ode45、ode23、
ode113、ode23t、ode15s、ode23s、ode23tb76微分方程求解用Maltab自帶函數(shù)解初值問題求微分方dsolve求解析解
dsolve的使用y=dsolve('eq1','eq2',...,'cond1','cond2',...,'v')其中
y為輸出,
eq1、eq2、...為微分方程,cond1、cond2、...為初值條件,v
為自變量。例1:求微分方程的通解,并驗證。y=dsolve('Dy+2*x*y=x*exp(-x^2)','x')symsx;diff(y)+2*x*y-x*exp(-x^2)77dsolve求解析解dsolve的使用y=dsolvedsolve的使用
幾點說明如果省略初值條件,則表示求通解;如果省略自變量,則默認(rèn)自變量為t
dsolve('Dy=2*x','x');%
dy/dx=2xdsolve('Dy=2*x');%dy/dt=2x若找不到解析解,則返回其積分形式。微分方程中用D
表示對自變量的導(dǎo)數(shù),如:Dyy';D2yy'';D3yy'''78dsolve的使用幾點說明如果省略初值條件,則表示求通例2:求微分方程在初值條件下的特解,并畫出解函數(shù)的圖形。y=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x')ezplot(y);dsolve的使用79例2:求微分方程在初值條例3:求微分方程組
在初值條件下的特解,并畫出解函數(shù)的圖形。[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0',...'x(0)=1','y(0)=0','t')ezplot(x,y,[0,1.3]);注:解微分方程組時,如果所給的輸出個數(shù)與方程個數(shù)相同,則方程組的解按詞典順序輸出;如果只給一個輸出,則輸出的是一個包含解的結(jié)構(gòu)(structure)類型的數(shù)據(jù)。dsolve的使用80例3:求微分方程組例:[x,y]=dsolve('Dx+5*x=0','Dy-3*y=0',...'x(0)=1','y(0)=1','t')r=dsolve('Dx+5*x=0','Dy-3*y=0',...'x(0)=1','y(0)=1','t')這里返回的r
是一個結(jié)構(gòu)類型的數(shù)據(jù)r.x%查看解函數(shù)
x(t)r.y%查看解函數(shù)
y(t)只有很少一部分微分方程(組)能求出解析解。
大部分微分方程(組)只能利用數(shù)值方法求數(shù)值解。dsolve的輸出個數(shù)只能為一個或與方程個數(shù)相等dsolve的使用81例:[x,y]=dsolve('Dx+5*x=0','Dy-上機作業(yè)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024樓頂廣告牌制作加工合同樣本
- 2024棉花收購合同范文
- 2024年安全員職責(zé)履行及待遇約定的合同
- 2024年度租賃物維修保養(yǎng)合同服務(wù)內(nèi)容與責(zé)任劃分
- 2024年度智能穿戴設(shè)備采購供應(yīng)合同
- 2024企業(yè)間就市場營銷合作合同
- 2024云計算服務(wù)提供商股權(quán)轉(zhuǎn)讓合同
- 2024年體育賽事贊助合同贊助金額與權(quán)益分配
- 2024年北京市影視作品制作委托合同
- 2024年企業(yè)碳足跡監(jiān)測與減排合同
- 旅行社行業(yè)發(fā)展前景與機遇展望報告
- 項目組織管理機構(gòu)及人員配備(完整版)
- 機械設(shè)備:低空經(jīng)濟(jì)系列報告(一):他山之石-Joby的前世今生
- 信息化作戰(zhàn)平臺
- 眩暈病個案護(hù)理
- 幕墻施工重難點分析及解決措施
- 《Python程序設(shè)計案例教程》 課件 4.3字典
- 環(huán)境測評行業(yè)分析
- 2024年武警部隊招聘專業(yè)技能類文職人員1824人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 人工智能行業(yè)的創(chuàng)新思維培訓(xùn)與發(fā)展
- 肝穿刺病人術(shù)后的護(hù)理措施
評論
0/150
提交評論