版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MATLAB7.0從入門到精通哈爾濱工業(yè)大學(xué)(威海)汽車工程學(xué)院2/4/20231課程主要內(nèi)容第1章MATLAB簡(jiǎn)介第2章數(shù)值運(yùn)算第3章單元數(shù)組和結(jié)構(gòu)第4章字符串第5章符號(hào)運(yùn)算第6章MATLAB繪圖基礎(chǔ)第7章程序設(shè)計(jì)第8章計(jì)算方法的MATLAB實(shí)現(xiàn)第9章優(yōu)化設(shè)計(jì)第10章SIMULINK仿真初探2/4/20232第5章符號(hào)運(yùn)算數(shù)學(xué)問題的求解通常有兩條途徑可循,一是求它的解析解,二是求它的數(shù)值解。求解析解的主要工具是符號(hào)運(yùn)算。所謂符號(hào)運(yùn)算是指運(yùn)算的主要對(duì)象是符號(hào)、文字,或說是變量。2/4/202335.1符號(hào)表達(dá)式的生成符號(hào)表達(dá)式是代表數(shù)字、函數(shù)、算子和變量的MATLAB字符串,或字符串?dāng)?shù)組。不要求變量有預(yù)先確定的值,符號(hào)方程式是含有等號(hào)的符號(hào)表達(dá)式。符號(hào)算數(shù)是使用已知的規(guī)則和給定符號(hào)恒等式求解這些符號(hào)方程的實(shí)踐,它與代數(shù)和微積分所學(xué)到的求解方法完全一樣。符號(hào)矩陣式數(shù)組,其元素是符號(hào)表達(dá)式。符號(hào)表達(dá)式的生成可采用sym和syms函數(shù)生成。2/4/202345.1.1符號(hào)常量符號(hào)常量是一種符號(hào)對(duì)象??捎胹ym函數(shù)生成,可用class函數(shù)來檢測(cè)其數(shù)據(jù)類型。2/4/20235程序?qū)嵗?gt;>a=sqrt(2)a=1.4142>>b=sym(sqrt(2))b=
sqrt(2)>>c=sqrt(sym(2))c=
2^(1/2)2/4/20236程序?qū)嵗?gt;>a=sqrt(2)a=1.4142>>b=sym(sqrt(2))b=sqrt(2)>>class(a)ans=double>>class(b)ans=sym2/4/202375.1.2符號(hào)變量及符號(hào)表達(dá)式使用sym函數(shù)也可定義符號(hào)表達(dá)式,一是將每一個(gè)變量定義為符號(hào)變量,二是將整個(gè)表達(dá)式集體定義。也可以直接用單引號(hào)生成。函數(shù)syms功能比sym更為強(qiáng)大,它可以一次創(chuàng)建任意多個(gè)符號(hào)變量。使用格式如下:symsvar1var2...2/4/20238程序?qū)嵗?gt;>a=sym('a');>>b=sym('b');>>c=sym('c');>>x=sym('x');>>f=a*x^2+b*x+c
f=
a*x^2+b*x+c2/4/20239程序?qū)嵗?gt;>f=sym('a*x^2+b*x+c')
f=
a*x^2+b*x+c
>>g=sym('a*sin(b*x+c)')
g=
a*sin(b*x+c)2/4/202310程序?qū)嵗?gt;>symsabcx>>f=a*x^2+b*x+c
f=
a*x^2+b*x+c
>>g=a*sin(b*x+c)
g=
a*sin(c+b*x)2/4/2023115.1.3符號(hào)矩陣元素是符號(hào)對(duì)象的矩陣叫做符號(hào)矩陣。在MATLAB7.0語言中,符號(hào)矩陣的生成與數(shù)值矩陣的相關(guān)操作很相似。使用sym函數(shù)直接生成符號(hào)矩陣,各符號(hào)表達(dá)式長(zhǎng)度相同。2/4/202312程序?qū)嵗?gt;>m1=sym('[asdwe;reas]')m1=
[asd,we][re,as]
>>m2=sym('[56;12]')m2=
[5,6][1,2]2/4/2023135.2符號(hào)變量的基本操作符號(hào)變量的基本操作主要包括符號(hào)變量的查找、符號(hào)變量的精度設(shè)置、數(shù)值型變量與符號(hào)型變量的轉(zhuǎn)換。2/4/2023145.2.1符號(hào)變量查詢函數(shù)findsym用于找出一個(gè)表達(dá)式中存在哪些符號(hào)變量。findsym(s)列出全部符號(hào)變量,findsym(s,n)列出靠x最近的n個(gè)符號(hào)變量。2/4/202315程序?qū)嵗?gt;>f=sym('a*x^2+b*x+c');>>m1=findsym(f)m1=a,b,c,x>>m2=findsym(f,2)m2=x,c>>m3=findsym(f,3)m3=x,c,b2/4/2023165.2.2符號(hào)變量精度設(shè)置單獨(dú)使用digits或d=digits在命令窗口顯示當(dāng)前設(shè)定的數(shù)值精度。digits(d)命令設(shè)置數(shù)值的精度為d位。r=vpa(s)命令將顯示符號(hào)表達(dá)式s在當(dāng)前精度下的值。r=vpa(s,d)命令將顯示符號(hào)表達(dá)式s在精度d下的值。顯示的數(shù)字個(gè)數(shù)為d。2/4/202317程序?qū)嵗?gt;>digits
Digits=32
>>digits(100)>>digits
Digits=100
>>digits(32)>>digits
Digits=322/4/202318程序?qū)嵗?gt;>r1=vpa(pi)r1=3.1415926535897932384626433832795
>>r2=vpa(pi,4)r2=3.142
>>r2=vpa(pi,5)r2=3.14162/4/2023195.2.3數(shù)值型變量與符號(hào)型變量的轉(zhuǎn)換將數(shù)值形式轉(zhuǎn)換為符號(hào)形式:對(duì)于任意數(shù)值型變量t,使用sym函數(shù)可以將其轉(zhuǎn)換為4種形式的符號(hào)變量,分別為:有理數(shù)形式sym(t)或sym(t,’r’)、浮點(diǎn)數(shù)形式sym(t,’f’)、指數(shù)形式sym(t,’e’)和數(shù)值精度形式sym(t,’d’)。也可以采用這種方法將數(shù)值型矩陣轉(zhuǎn)換為符號(hào)型矩陣,但此時(shí)只能把它轉(zhuǎn)換成有理數(shù)形式。另外,函數(shù)poly2sym實(shí)現(xiàn)將某一向量轉(zhuǎn)化為它對(duì)應(yīng)的多項(xiàng)式。2/4/202320程序?qū)嵗?gt;>t=0.1;>>sym(t,'r')ans=1/10>>sym(t,'f')ans='1.999999999999a'*2^(-4)>>sym(t,'e')ans=1/10+eps/40>>sym(t,'d')ans=.100000000000000005551115123125782/4/202321程序?qū)嵗?gt;>a=[12345];>>f=poly2sym(a)
f=
x^4+2*x^3+3*x^2+4*x+52/4/202322將符號(hào)形式轉(zhuǎn)換為數(shù)值形式:將符號(hào)形式轉(zhuǎn)化為數(shù)值形式主要用函數(shù)eval來實(shí)現(xiàn)。另外,使用sym2poly函數(shù)實(shí)現(xiàn)將多項(xiàng)式轉(zhuǎn)化為它對(duì)應(yīng)的系數(shù)向量。2/4/202323程序?qū)嵗?gt;>a=sym(sqrt(5))
a=
sqrt(5)>>b=eval(a)b=2.23612/4/202324程序?qū)嵗?gt;>symsx>>f=x^3-4*x+5;>>c=sym2poly(f)c=10-452/4/2023255.3符號(hào)表達(dá)式的操作用戶可以對(duì)符號(hào)表達(dá)式進(jìn)行各種操作,包括四則運(yùn)算、合并同類項(xiàng)、多項(xiàng)式分解和簡(jiǎn)化等。2/4/2023265.3.1符號(hào)表達(dá)式的四則運(yùn)算符號(hào)表達(dá)式也與通常的算術(shù)式一樣,可以進(jìn)行四則運(yùn)算。在符號(hào)對(duì)象的比較中只有相等與否,沒有大小關(guān)系比較;三角函數(shù)的符號(hào)運(yùn)算與數(shù)值運(yùn)算法則基本相同;符號(hào)運(yùn)算的指數(shù)函數(shù)運(yùn)算與前面數(shù)值運(yùn)算法則相同,對(duì)數(shù)運(yùn)算對(duì)于符號(hào)運(yùn)算來說只能使用log函數(shù),因此log2(sym(a))=log(a)/log(2)。符號(hào)運(yùn)算的復(fù)數(shù)運(yùn)算與數(shù)值復(fù)數(shù)運(yùn)算相同。2/4/202327程序?qū)嵗?gt;>symsxyab>>f1=sin(x)+cos(y);>>f2=a+b;>>f=f1*f2
f=
(a+b)*(cos(y)+sin(x))2/4/2023285.3.2符號(hào)表達(dá)式合并同類項(xiàng)collect(s,v)命令將符號(hào)矩陣s中所有同類項(xiàng)合并,并以v為符號(hào)變量輸出。collect(s)命令使用findsym函數(shù)規(guī)定的默認(rèn)變量代替上式中的v。2/4/202329程序?qū)嵗?gt;>symsxy>>collect(x^2*y+y*x-x^2-2*x,x)ans=(y-1)*x^2+(y-2)*x>>collect(x^2*y+y*x-x^2-2*x,y)ans=(x^2+x)*y-x^2-2*x>>collect(x^2*y+y*x-x^2-2*x)ans=(y-1)*x^2+(y-2)*x2/4/2023305.3.3符號(hào)多項(xiàng)式的因式分解使用expand函數(shù)將表達(dá)式中的括號(hào)進(jìn)行展開;使用factor函數(shù)將表達(dá)式進(jìn)行因式分解;使用horner函數(shù)將一般的表達(dá)式變換為嵌套的形式,默認(rèn)x為第一變量。2/4/202331程序?qū)嵗?gt;>symsxy>>f=(x-1)*(x-2)*(x-3)*(y-4);>>g=expand(f)
g=
x^3*y-4*x^3-6*x^2*y+24*x^2+11*x*y-44*x-6*y+242/4/202332程序?qū)嵗?gt;>symsxy>>g=x^3*y-4*x^3-6*x^2*y+24*x^2+11*x*y-44*x-6*y+24;>>f=factor(g)
f=
(x-1)*(x-2)*(x-3)*(y-4)2/4/202333程序?qū)嵗?gt;>symsxy>>g=x^3*y-4*x^3-6*x^2*y+24*x^2+11*x*y-44*x-6*y+24;>>f=horner(g)
f=
-6*y+24+(11*y-44+(-6*y+24+(y-4)*x)*x)*x2/4/202334程序?qū)嵗?gt;>symsxy>>f=x^2-2*x+y^2-3*y*x;>>horner(f)
ans=
y^2+(-2-3*y+x)*x2/4/2023355.3.4符號(hào)表達(dá)式的簡(jiǎn)化使用simplify函數(shù)和simple函數(shù)進(jìn)行符號(hào)表達(dá)式的簡(jiǎn)化。simplify(s)命令將符號(hào)表達(dá)式s中的每一個(gè)元素都進(jìn)行簡(jiǎn)化,該函數(shù)的缺點(diǎn)是即使多次運(yùn)用此函數(shù)也不一定得到最簡(jiǎn)形式。simple(s)命令使用多種代數(shù)簡(jiǎn)化方法對(duì)符號(hào)表達(dá)式s進(jìn)行簡(jiǎn)化,并顯示其中最簡(jiǎn)單的結(jié)果。[r,how]=simple命令在返回最簡(jiǎn)單的結(jié)果的同時(shí),返回一個(gè)描述得到該最簡(jiǎn)結(jié)果所用簡(jiǎn)化方法的字符串how。2/4/202336程序?qū)嵗?gt;>symsx>>f=(x-2).^2+3*(x-3);>>simplify(f)
ans=
x^2-x-52/4/202337程序?qū)嵗?gt;>symsx>>f=(x-2).^2+3*(x-3);>>[r,how]=simple(f)
r=x^2-x-5how=simplify2/4/202338程序?qū)嵗?gt;>symsx>>f=(x-3).^3-3*x+(x-1)/(x+2).^2-2*x.^2;>>simplify(f)
ans=
(x^5-7*x^4-16*x^3+25*x^2-109-11*x)/(x+2)^22/4/202339程序?qū)嵗?gt;>symsx>>f=(x-3).^3-3*x+(x-1)/(x+2).^2-2*x.^2;>>simple(f)simplify:(x^5-7*x^4-16*x^3+25*x^2-109-11*x)/(x+2)^2radsimp:(x^5-7*x^4-16*x^3+25*x^2-109-11*x)/(x+2)^2combine(trig):(x^5-7*x^4-16*x^3+25*x^2-109-11*x)/(x^2+4*x+4)2/4/202340factor:(x^5-7*x^4-16*x^3+25*x^2-109-11*x)/(x+2)^2expand:x^3-11*x^2+24*x-27+1/(x+2)^2*x-1/(x+2)^2combine:(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^2convert(exp):(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^2convert(sincos):(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^2convert(tan):(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^22/4/202341collect(x):(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^2mwcos2sin:(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^2ans=(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^2>>symsx>>f=(x-3).^3-3*x+(x-1)/(x+2).^2-2*x.^2;>>[r,how]=simple(f)r=(x-3)^3-3*x+(x-1)/(x+2)^2-2*x^2how=[]2/4/2023425.3.5書寫形式的轉(zhuǎn)化pretty函數(shù)的使用pretty(s)將符號(hào)表達(dá)式用書寫方式表示出來,默認(rèn)寬度為79。pretty(s,n)將符號(hào)表達(dá)式用書寫方式表示出來,寬度指定為n。2/4/202343程序?qū)嵗?gt;>p=sym('(x^2-1)/(x+2)+(2*x+5)/(3*x-2)')p=(x^2-1)/(x+2)+(2*x+5)/(3*x-2)>>pretty(p)2x-12x+5------+-------x+23x-22/4/2023445.3.6subs函數(shù)用于替換求值subs(s)命令將符號(hào)表達(dá)式s中的所有符號(hào)變量用調(diào)用函數(shù)中的值或matlab工作區(qū)間的值替代。subs(s,new)命令將符號(hào)表達(dá)式s中的自由符號(hào)變量用數(shù)值型變量或表達(dá)式new替換。subs(s,old,new)命令將符號(hào)表達(dá)式s中的符號(hào)變量old用數(shù)值型變量或表達(dá)式new替換。如沒指定被替換的變量,則默認(rèn)選擇與x最接近的字母。2/4/202345程序?qū)嵗?gt;>symsxy>>f=x^2*y+5*x*sqrt(y);>>subs(f)ans=x^2*y+5*x*y^(1/2)>>subs(f,2)ans=4*y+10*y^(1/2)>>subs(f,y,2)ans=2*x^2+5*x*2^(1/2)>>subs(f,{x,y},{2,3})或subs(f,[x,y],[2,3])ans=29.32052/4/202346程序?qū)嵗?gt;>symsaxy>>f=x^2*y+5*x*sqrt(y);>>subs(f,a)
ans=a^2*y+5*a*y^(1/2)
>>subs(f,y,a)ans=a*x^2+5*x*a^(1/2)2/4/2023475.3.7反函數(shù)的運(yùn)算g=finverse(f)命令用于求函數(shù)f的反函數(shù)。g=finverse(f,v)指定對(duì)變量v求反函數(shù)。2/4/202348程序?qū)嵗?gt;>symsxy>>f=x^2+y;>>finverse(f,x)Warning:finverse(x^2+y)isnotunique.>Insym.finverseat43ans=(-y+x)^(1/2)>>finverse(f,y)ans=-x^2+y2/4/2023495.3.8復(fù)合函數(shù)的運(yùn)算compose(f,g)返回f=f(x)和g=g(y)時(shí)的復(fù)合函數(shù)f(g(y)),就是原來的默認(rèn)變量用函數(shù)g完整替代。compose(f,g,z)返回f=f(x)和g=g(y)時(shí)的復(fù)合函數(shù)f(g(z)),z為指定變量,代替復(fù)合函數(shù)中默認(rèn)變量,即先用z替代默認(rèn)變量再?gòu)?fù)合。compose(f,g,x,z)返回復(fù)合函數(shù)f(g(z))。即指定變量x用g(z)替代,如果g(z)中有z,則g(z)函數(shù)保持原形不變,如沒有,則默認(rèn)變量用z替代。compose(f,g,x,y,z)返回復(fù)合函數(shù)f(g(y))。首先g(y)中的指定變量y用z代替,原有的z不變,然后f(x)中的指定變量x用g(z)代替。2/4/202350程序?qū)嵗?gt;>symsxyztu>>f=1/(1+x^2);>>g=sin(y);>>h=x^t;>>p=exp(-y/u);>>compose(f,g)ans=1/(1+sin(y)^2)>>compose(f,g,t)ans=1/(1+sin(t)^2)2/4/202351程序?qū)嵗?gt;>compose(h,g,x,z)ans=sin(z)^t>>compose(h,g,t,z)ans=x^sin(z)>>compose(h,p,x,y,z)ans=exp(-z/u)^t>>compose(h,p,t,u,z)ans=x^exp(-y/z)2/4/202352程序?qū)嵗?gt;>symsxyztu>>f=1/(1+x^2)+y-z*t+sin(u);>>g=x+z*sin(y)-t*u;>>h=x^t-y*z+z^u;>>p=x*z+exp(-y/u)-log(t);>>compose(f,g)ans=1/(1+(x+z*sin(y)-t*u)^2)+y-z*t+sin(u)>>compose(f,g,t)ans=1/(1+(t+z*sin(y)-t*u)^2)+y-z*t+sin(u)2/4/202353程序?qū)嵗?gt;>symsxyztu>>f=1/(1+x^2)+y-z*t+sin(u);>>g=x+z*sin(y)-t*u;>>h=x^t-y*z+z^u;>>p=x*z+exp(-y/u)-log(t);>>compose(h,g,x,z)ans=(x+z*sin(y)-t*u)^t-y*z+z^u>>compose(h,g,t,z)ans=x^(x+z*sin(y)-t*u)-y*z+z^u2/4/202354程序?qū)嵗?gt;>symsxyztu>>f=1/(1+x^2)+y-z*t+sin(u);>>g=x+z*sin(y)-t*u;>>h=x^t-y*z+z^u;>>p=x*z+exp(-y/u)-log(t);>>compose(h,p,x,y,z)ans=(x*z+exp(-z/u)-log(t))^t-y*z+z^u>>compose(h,p,t,u,z)ans=x^(x*z+exp(-y/z)-log(t))-y*z+z^u2/4/2023555.3.9提取分子、分母如果符號(hào)表達(dá)式是有理式形式或可展開為有理分式的形式,則可通過函數(shù)numden來提取符號(hào)表達(dá)式中的分子與分母。numden函數(shù)可將符號(hào)表達(dá)式合并、有理化,并返回所得的分子與分母。其調(diào)格式如下:[n,d]=numden(a)提取符號(hào)表達(dá)式a的分子與分母,并分別把其存放在n與d中;n=numden(a)提取符號(hào)表達(dá)式a的分子與分母,但只把分子存放在n中。2/4/202356程序?qū)嵗?gt;>f=sym('a*x^2/(b-x)');>>[n,d]=numden(f)n=-a*x^2d=-b+x>>k=numden(f)k=-a*x^22/4/2023575.4符號(hào)微積分微積分是高等數(shù)學(xué)中最重要的基礎(chǔ)內(nèi)容之一,它被廣泛地應(yīng)用于許多的工程學(xué)科中。MATLAB的符號(hào)數(shù)學(xué)工具箱為我們提供了快速、簡(jiǎn)便地計(jì)算微積分的工具。MATLAB符號(hào)數(shù)學(xué)工具箱中的符號(hào)微積分包括符號(hào)極限、符號(hào)微分、符號(hào)積分等。2/4/2023585.4.1符號(hào)極限極限是高等數(shù)學(xué)的出發(fā)點(diǎn),同時(shí)它也是微積分學(xué)的基礎(chǔ)。在MATLAB中,符號(hào)極限由函數(shù)“l(fā)imit”來實(shí)現(xiàn)的。Limit函數(shù)的調(diào)用格式如下:limit(f,x,a)計(jì)算符號(hào)表達(dá)式當(dāng)x→a時(shí)f=f(x)的極限值。limit(f,a)命令使用命令findsym(f)確定f中的自變量當(dāng)其→a時(shí)f的極限。limit(f)命令使用命令findsym(f)確定f中的自變量當(dāng)其→0時(shí)f的極限。limit(f,x,a,’right(left)’)求x→a的左、右極限。limit(f,x,±inf)計(jì)算符號(hào)表達(dá)式當(dāng)x→正負(fù)無窮時(shí)f=f(x)的極限值。2/4/202359程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>a=limit(f)a=cos(t*y)>>b=limit(f,t)b=cos(t*y)+sin(t*y)2/4/202360程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>c=limit(f,t,0)c=sin(x*y)+1>>d=limit(f,t,pi)d=cos(pi*y)+sin(x*y)2/4/202361程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>a=limit(f,y,3,'left')a=
cos(3*t)+sin(3*x)>>b=limit(f,x,2,'right')b=
sin(2*y)+cos(t*y)2/4/202362程序?qū)嵗?gt;>symsxn>>f1=limit((1+x/n)^n,n,inf)f1=exp(x)>>f2=limit((1-x/n)^n,n,inf)f2=1/exp(x)2/4/2023635.4.2符號(hào)微分和求導(dǎo)微分是高等數(shù)學(xué)中最基礎(chǔ)的內(nèi)容之一。在MATLAB中,符號(hào)微分由函數(shù)“diff”來實(shí)現(xiàn)的。diff函數(shù)可同時(shí)計(jì)算數(shù)值微分與符號(hào)微分。diff函數(shù)的調(diào)用格式如下:diff(f)對(duì)f中默認(rèn)的符號(hào)變量求導(dǎo)。diff(f,n)對(duì)f中默認(rèn)的符號(hào)變量求n階導(dǎo)。diff(f,x)對(duì)f中指定的自變量x求導(dǎo)。diff(f,x,n)對(duì)f中指定的自變量x求n階導(dǎo)。說明:n是正整數(shù)時(shí),對(duì)指定的變量求n階導(dǎo),當(dāng)n是小數(shù)時(shí),按四舍五入原則先取整,然后求導(dǎo),當(dāng)n是負(fù)數(shù)時(shí),默認(rèn)求指定變量的一階導(dǎo)數(shù)。n還可以是字符串,相當(dāng)于對(duì)新指定的符號(hào)變量求導(dǎo),結(jié)果為0。小于1的數(shù)將對(duì)函數(shù)求一階導(dǎo)。2/4/202364程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>a=diff(f)
a=
y*cos(x*y)
>>b=diff(f,3)
b=
-y^3*cos(x*y)2/4/202365程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>c=diff(f,t)
c=
-y*sin(t*y)
>>d=diff(f,t,3)
d=
y^3*sin(t*y)2/4/202366程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>a=diff(f,7.5)
a=
y^8*sin(x*y)
>>b=diff(f,pi)
b=
-y^3*cos(x*y)2/4/202367程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>a=diff(f,-3)
a=
y*cos(x*y)
>>b=diff(f,-5.2)
b=
y*cos(x*y)2/4/202368程序?qū)嵗?gt;>symsxyt>>f=sin(x*y)+cos(y*t);>>diff(f,a)???Illegalrighthandsideinassignment.Toomanyelements.Errorin==>sym.diffat30x=a.s;>>diff(f,'a')ans=02/4/202369程序?qū)嵗?gt;>symsxy>>a=[x^2+x*y;sin(x)*cos(y)];>>diff(a)ans=2*x+ycos(x)*cos(y)>>diff(a,y)ans=x-sin(x)*sin(y)2/4/202370jacobian(f,v)命令用于計(jì)算數(shù)量或向量f對(duì)于向量v的jacobi矩陣,所得結(jié)果的第i行第j列的數(shù)是df(i)/df(j)。f是數(shù)量時(shí)返回f的梯度。2/4/202371程序?qū)嵗?gt;>symsxyz>>a=[x^2+x*y;sin(x)*cos(y)];>>jacobian(a,[x,y])ans=[2*x+y,x][cos(x)*cos(y),-sin(x)*sin(y)]2/4/202372程序?qū)嵗?gt;>symsxyz>>a=[x^2+x*y,sin(x)*cos(y)];>>jacobian(a,[x,y,z])
ans=
[2*x+y,x,0][cos(x)*cos(y),-sin(x)*sin(y),0]2/4/202373程序?qū)嵗?gt;>symsxyz>>a=[x^2+x*y,sin(x)*cos(y);x+sin(y),sin(x*y)-cos(x)];>>jacobian(a,[x,y])ans=[2*x+y,x][1,cos(y)][cos(x)*cos(y),-sin(x)*sin(y)][cos(x*y)*y+sin(x),cos(x*y)*x]2/4/202374程序?qū)嵗?gt;>symsxyz>>a=[x^2+x*y,sin(x)*cos(y);x+sin(y),sin(x*y)-cos(x)];>>jacobian(a,[x,y,z])ans=[2*x+y,x,0][1,cos(y),0][cos(x)*cos(y),-sin(x)*sin(y),0][cos(x*y)*y+sin(x),cos(x*y)*x,0]2/4/2023755.4.3符號(hào)積分由高等數(shù)學(xué)可知,積分比微分復(fù)雜得多。很多情況下,積分不一定能成功。當(dāng)在MATLAB中進(jìn)行符號(hào)積分,找不到原函數(shù)時(shí),它將返回未經(jīng)計(jì)算的命令。符號(hào)積分由函數(shù)int來實(shí)現(xiàn)。int函數(shù)的調(diào)用格式如下所示:int(f)命令對(duì)f求不定積分,常數(shù)項(xiàng)默認(rèn)為0。int(f,v)命令對(duì)f中的變量v求不定積分。int(f,a,b)命令對(duì)f進(jìn)行[a,b]上求定積分。int(f,v,a,b)命令對(duì)f中的變量v進(jìn)行[a,b]上求定積分。MATLAB還提供了一個(gè)交互性的近似積分命令rsums,該命令可以計(jì)算一元函數(shù)在某有限的閉區(qū)間上的積分?jǐn)?shù)值。調(diào)用格式為rsums(f,a,b)其中f為積分表達(dá)式,a,b為積分上下限。2/4/202376程序?qū)嵗?gt;>symsxyt>>f=x^2+y^2+t^2;>>a=int(f)
a=
x^3/3+(t^2+y^2)*x
>>b=int(f,y)
b=
y^3/3+(t^2+x^2)*y2/4/202377程序?qū)嵗?gt;>symsxyt>>f=x^2+y^2+t^2;>>c=int(f,1,2)
c=
t^2+y^2+7/3
>>d=int(f,y,1,2)
d=
t^2+x^2+7/32/4/202378程序?qū)嵗?gt;>symsxytab>>f=x^2+y^2+t^2;>>m1=int(f,a,b)
m1=
-((a-b)*(a^2+a*b+b^2+3*t^2+3*y^2))/3
>>m2=int(f,t,a,b)
m2=
-((a-b)*(a^2+a*b+b^2+3*x^2+3*y^2))/32/4/202379程序?qū)嵗?gt;>symsx>>f=(x-1)^3+x^2+4*x;>>rsums(f,-1,2)2/4/2023802/4/2023812/4/2023825.4.4符號(hào)級(jí)數(shù)求和在數(shù)學(xué)分析中,級(jí)數(shù)求和是一個(gè)重要內(nèi)容,MATLAB中使用symsum函數(shù)求解符號(hào)表達(dá)式的和。調(diào)用格式如下:R=symsum(s,a,b)將符號(hào)表達(dá)式s中默認(rèn)變量從a到b時(shí)的有限和。R=symsum(s,v,a,b)將符號(hào)表達(dá)式s中指定變量從a到b時(shí)的有限和。2/4/202383程序?qū)嵗?yàn)證下列結(jié)果2/4/202384程序?qū)嵗?gt;>symsxk>>a=symsum(1/k^2,1,inf)a=pi^2/6>>b=symsum(x^k/sym('k!'),k,0,inf)b=exp(x)2/4/2023855.5符號(hào)代數(shù)方程的求解在MATLAB符號(hào)數(shù)學(xué)工具箱中,符號(hào)方程式是含有等號(hào)的符號(hào)表達(dá)式。符號(hào)方程的求解包括符號(hào)線性方程的求解、非線性方程的求解和符號(hào)微分方程的求解等。2/4/2023865.5.1符號(hào)非線性方程組的求解符號(hào)代數(shù)非線性方程的求解可以通過函數(shù)fsolve來實(shí)現(xiàn)。fsolve函數(shù)以最小二乘法求解非線性方程,其調(diào)用格式如下:x=fsolve(fun,x0)命令以x0為初始矩陣來求解方程fun。[x,fval]=fsolve(fun,x0)命令以x0為初始矩陣來求解方程fun,同時(shí)輸出方程根對(duì)應(yīng)的函數(shù)值。其中fun可以是函數(shù)名也可以是符號(hào)表達(dá)式。2/4/202387程序?qū)嵗?gt;>x1=fsolve('x(1).^2-2*x(2)',[12])x1=1.64621.3551>>x2=fsolve('x(1).^2-sin(x(2))',[12])x2=0.95561.99082/4/202388程序?qū)嵗褂胒solve函數(shù)求解下面非線性方程組。2/4/202389程序?qū)嵗紫染帉懛匠探M的M文件。functiony=myfun2(x)y(1)=3*x(1)^2-x(2)^2;y(2)=3*x(1)*x(2)^2-x(1)^2-1;2/4/202390程序?qū)嵗诿畲翱谳斎?gt;>x0=[0.80.4];>>x=fsolve('myfun2',x0)Optimizationterminated:first-orderoptimalityislessthanoptions.TolFun.x=0.52080.90202/4/202391程序?qū)嵗?gt;>x0=[0.80.4];>>[x,fval]=fsolve('myfun2',x0)Optimizationterminated:first-orderoptimalityislessthanoptions.TolFun.x=0.52080.9020fval=1.0e-006*-0.02090.19282/4/2023925.5.2一般符號(hào)代數(shù)方程求解在MATLAB7.0語言中,使用solve函數(shù)求解一般的符號(hào)代數(shù)方程組。其使用格式為:solve(eq1,eq2,……eqn)求解由符號(hào)表達(dá)式或不帶等號(hào)的字符串eq1,eq2,……eqn組成的方程組。自變量為默認(rèn)自變量。solve(eq1,eq2,……eqn,var1,var2,……varn)求解由符號(hào)表達(dá)式或不帶等號(hào)的字符eq1,eq2,……eqn組成的方程組。自變量由var1,var2,……varn來指定。得到結(jié)構(gòu)體形式的解。當(dāng)方程組中的符號(hào)變量個(gè)數(shù)大于求解的變量個(gè)數(shù)時(shí)只求解靠x最近的n個(gè)變量的解,其他變量作為常量對(duì)待。輸出結(jié)果時(shí),可采用解的結(jié)構(gòu)體輸出方式自動(dòng)判斷求解變量。2/4/202393程序?qū)嵗?gt;>x=solve('p*sin(x)=r')x=asin(r/p)
>>r=solve('p*sin(x)=r')r=asin(r/p)
>>x=solve('p*sin(x)-r')x=asin(r/p)2/4/202394程序?qū)嵗?gt;>x=solve('p*sin(x)=r','p')x=r/sin(x)>>p=solve('p*sin(x)=r','p')p=r/sin(x)>>p=solve('p*sin(x)-r','p')p=r/sin(x)2/4/202395程序?qū)嵗?gt;>[x,y]=solve('x+y=5','x-y=1')x=3y=2>>[y,x]=solve('x+y=5','x-y=1')y=3x=22/4/202396程序?qū)嵗?gt;>s=solve('x+y=5','x-y=1')s=x:[1x1sym]y:[1x1sym]>>s.x
ans=3
>>s.y
ans=22/4/202397程序?qū)嵗?gt;>x=solve('x+y=5','x-y=1','x')Warning:2equationsin1variables.>Insolveat113Warning:Explicitsolutioncouldnotbefound.>Insolveat140
x=
[emptysym]2/4/202398程序?qū)嵗?gt;>[x,y,z]=solve('x+y+z=5','x-y-z=1')???Errorusing==>solve2variablesdoesnotmatch3outputs.>>[x,y,z]=solve('x+y+z=5','x-y-z=1','x-y+z=7')x=3y=-1z=32/4/202399程序?qū)嵗?gt;>[x,y,z]=solve('a+b+c=15','a+b-c=3','a-b+c=5')
x=
4
y=
5
z=
62/4/2023100程序?qū)嵗?gt;>[a,b,c]=solve('a+b+c=15','a+b-c=3','a-b+c=5')
a=
4
b=
5
c=
62/4/2023101程序?qū)嵗?gt;>s=solve('a+b+c=15','a+b-c=3','a-b+c=5')s=a:[1x1sym]b:[1x1sym]c:[1x1sym]>>s.aans=4>>s.bans=5>>s.cans=62/4/2023102程序?qū)嵗?gt;>[a,b]=solve('a+b+c=15','a+b-c=3','a-b+c=5')???Errorusing==>solve3variablesdoesnotmatch2outputs.>>[a,b]=solve('a+b+c=15','a+b-c=3')
a=
-a+9
b=
62/4/2023103程序?qū)嵗?gt;>s=solve('a+b+c=15','a+b-c=3')s=b:[1x1sym]c:[1x1sym]>>s.bans=-a+9>>s.cans=6>>s.a???Referencetonon-existentfield'a'.2/4/2023104工程實(shí)例問題描述:一圓半徑為2,并以x=3,y=5為圓心,另一圓半徑為b,并以x=5,y=3為圓心。找兩圓的交點(diǎn)。且當(dāng)b=3時(shí)的解。解題過程:首先建立兩個(gè)圓的方程,然后采用符號(hào)方程求解計(jì)算出交點(diǎn)坐標(biāo),左后采用符號(hào)代換計(jì)算出焦點(diǎn)的具體坐標(biāo)。第一圓方程(x-3)*(x-3)+(y-5)*(y-5)=2*2第二圓方程(x-3)*(x-3)+(y-5)*(y-5)=b*b2/4/2023105求解過程>>symsxyb>>[x,y]=solve((x-3).^2+(y-5).^2-4,(x-5).^2+(y-3).^2-b.^2)x=9/2-1/8*b^2+1/8*(-16+24*b^2-b^4)^(1/2)9/2-1/8*b^2-1/8*(-16+24*b^2-b^4)^(1/2)y=7/2+1/8*b^2+1/8*(-16+24*b^2-b^4)^(1/2)7/2+1/8*b^2-1/8*(-16+24*b^2-b^4)^(1/2)>>subs(x,b,3)ans=4.73862.0114>>subs(y,b,3)ans=5.98863.26142/4/20231065.6符號(hào)微分方程的求解符號(hào)微分方程求解可以通過函數(shù)dsolve來實(shí)現(xiàn),dsolve函數(shù)的調(diào)用格式如下:dsolve(‘eqn1’,’eqn2’,...,cond1,cond2,…,’v’),其中,對(duì)給定的常微分方程(組)eq1、eq2......中指定的符號(hào)自變量v,與給定的邊界條件和初始條件cond1、cond2......求符號(hào)解。若沒有指定變量v,則默認(rèn)變量為t,在微分方程表達(dá)式中,D=d/dt、D2=d2/dt2......。微分算子D后面的字母就是待求解的未知函數(shù)。初始和邊界條件由字符串表示,若邊界條件少于方程組的階數(shù),則結(jié)果中會(huì)出現(xiàn)任意常數(shù)c。2/4/2023107函數(shù)的輸出結(jié)果可能存在三種情況:(1)一個(gè)方程和一個(gè)輸出,則返回符號(hào)向量中非線性方程的聯(lián)立解;(2)幾個(gè)方程與相同個(gè)數(shù)的輸出,返回的結(jié)果是按字母順序排序,并且分配給輸出參數(shù);(3)幾個(gè)方程和一個(gè)輸出,則返回解的結(jié)構(gòu)。如果解不是顯式形式,則被認(rèn)為是隱式形式。當(dāng)一個(gè)隱式形式的解返回時(shí),會(huì)給出警告。如果解既不是顯式形式,也不是隱式形式,也會(huì)給出警告,同時(shí)返回的是一個(gè)空字符串。在一些非線性方程中,輸出結(jié)果可能是降階的微分方程或是積分方程。2/4/2023108程序?qū)嵗?gt;>y1=dsolve('Dx=-a*x')
y1=
C1*exp(-a*t)
>>y2=dsolve('(Dy)^2+y^2=1','y(0)=0')
y2=
sin(t)-sin(t)2/4/2023109程序?qū)嵗?gt;>[f,g]=dsolve('Df=f+g','Dg=-f+g','f(0)=1','g(0)=2')f=exp(t)*(2*sin(t)+cos(t))g=exp(t)*(2*cos(t)-sin(t))
>>[f,g]=dsolve('Df=f+g','Dg=-f+g','f(0)=1','g(0)=2','x')f=exp(x)*(2*sin(x)+cos(x))g=exp(x)*(2*cos(x)-sin(x))2/4/2023110程序?qū)嵗?gt;>s=dsolve('Df=f+g','Dg=-f+g','f(0)=1','g(0)=2')s=f:[1x1sym]g:[1x1sym]>>s.fans=exp(t)*(2*sin(t)+cos(t))
>>s.gans=exp(t)*(2*cos(t)-sin(t))2/4/20231115.7符號(hào)函數(shù)畫圖MATLAB的符號(hào)工具箱也為用戶對(duì)符號(hào)函數(shù)進(jìn)行畫圖提供了方便。符號(hào)函數(shù)畫圖可以通過函數(shù)ezplot或fplot來實(shí)現(xiàn)。其中,函數(shù)ezplot的調(diào)用格式如下:ezplot(f)表示在默認(rèn)區(qū)間-2*pi<x<2*pi繪制f=f(x)的函數(shù)圖或在默認(rèn)區(qū)間-2*pi<x<2*pi和-2*pi<y<2*pi繪制f(x,y)=0的函數(shù)圖。ezplot(f,[a,b])同上,繪圖區(qū)間變?yōu)閇a,b]。ezplot(f,[xmin,xmax,ymin,ymax])同上,繪圖區(qū)間變?yōu)閤為[xmin,xmax],y為[ymin,ymax]。ezplot(x,y)表示在區(qū)間0<t<2*pi繪制x=x(t)和y=y(t)的函數(shù)圖。ezplot(x,y,[tmin,tmax])表示在區(qū)間tmin<t<tmax繪制x=x(t)和y=y(t)的函數(shù)圖。2/4/2023112程序?qū)嵗?gt;>symsx>>f=x^2-9;>>ezplot(f)2/4/2023113結(jié)果圖形2/4/2023114程序?qū)嵗?gt;>symsxy>>f=x^2+y^2-9;>>ezplot(f)2/4/2023115結(jié)果圖形2/4/2023116ezplot('x.^2+y.^2-9')2/4/2023117ezplot('x.^2+y.^2-9=0')2/4/2023118程序?qū)嵗?gt;>symsxy>>f=x^2+y^2-9;>>ezplot(f,[-3,3])2/4/2023119結(jié)果圖形2/4/2023120程序?qū)嵗?gt;>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)四年級(jí)數(shù)學(xué)小數(shù)加減法計(jì)算題練習(xí)卷
- 電焊管道焊接技術(shù)
- 美食烹飪行業(yè)調(diào)味技巧培訓(xùn)實(shí)踐
- 物流行業(yè)倉(cāng)儲(chǔ)管理心得總結(jié)
- 電影院服務(wù)員的服務(wù)技巧
- 印刷行業(yè)采購(gòu)工作心得
- 文化傳媒推廣經(jīng)營(yíng)合同三篇
- 五年級(jí)班主任期中工作總結(jié)培養(yǎng)學(xué)生的團(tuán)隊(duì)合作精神
- 門診部熱情服務(wù)舒心就診工作總結(jié)
- 廣西賀州市八步區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期英語期末試卷
- 中建醫(yī)療工程交付指南
- 譯林版小學(xué)英語二年級(jí)上全冊(cè)教案
- DL∕T 821-2017 金屬熔化焊對(duì)接接頭射線檢測(cè)技術(shù)和質(zhì)量分級(jí)
- DL∕ T 1195-2012 火電廠高壓變頻器運(yùn)行與維護(hù)規(guī)范
- 小學(xué)五年級(jí)英語語法練習(xí)
- NB-T32004-2018光伏并網(wǎng)逆變器技術(shù)規(guī)范
- 領(lǐng)導(dǎo)與班子廉潔談話記錄(4篇)
- 衡陽市耒陽市2022-2023學(xué)年七年級(jí)上學(xué)期期末語文試題【帶答案】
- 文庫(kù)發(fā)布:strata手冊(cè)
- 2024-2030年中國(guó)大棚蔬菜種植行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資前景展望報(bào)告
- 旋挖鉆孔灌注樁施工技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論