版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
6.1符號(hào)對(duì)象的創(chuàng)建與使用6.2數(shù)學(xué)計(jì)算功能
6.3表達(dá)式的化簡(jiǎn)和替換
6.4線性代數(shù)
6.5求解符號(hào)方程6.6簡(jiǎn)易符號(hào)繪圖函數(shù)6.7調(diào)用Maple函數(shù)
6.8積分變換
6.1.1創(chuàng)建符號(hào)變量和表達(dá)式
MATLAB的符號(hào)數(shù)學(xué)工具箱提供了用于創(chuàng)建符號(hào)變量和表達(dá)式的兩個(gè)基本函數(shù),即sym和syms。
sym函數(shù)的常用調(diào)用格式為S=sym(A),其作用是創(chuàng)建一個(gè)由A表示的“sym”類的對(duì)象S。如果輸入?yún)⒘渴亲址?,則生成一個(gè)符號(hào)類型的數(shù)值或變量;如果輸入?yún)⒘渴菙?shù)值標(biāo)量或數(shù)值矩陣,則生成一個(gè)符號(hào)類型的數(shù)值。6.1符號(hào)對(duì)象的創(chuàng)建與使用【例】創(chuàng)建符號(hào)類型數(shù)值。
在命令窗輸入:
>>a=3;
>>b='3';
>>s1=sym(a);
>>s2=sym(b);
>>s1==s2
class_=class(s1)運(yùn)行結(jié)果:
ans=
1
class_=
sym
【例】創(chuàng)建符號(hào)類型變量。
在命令窗輸入:
>>x=sym('x')
a=sym('alpha')運(yùn)行結(jié)果:
x=
x
a=
alpha
【例】創(chuàng)建符號(hào)類型矩陣。
在命令窗輸入:
>>A=magic(3);
>>sym(A)運(yùn)行結(jié)果:
ans=
[8,1,6]
[3,5,7]
[4,9,2]
syms函數(shù)用于創(chuàng)建符號(hào)表達(dá)式時(shí)的變量聲明,這也是最常用的創(chuàng)建符號(hào)表達(dá)式的方法。該函數(shù)的常用調(diào)用格式為symsa1a2…。【例】創(chuàng)建符號(hào)表達(dá)式。
在命令窗輸入:
>>symsab
>>f=a^2+2*b
運(yùn)行結(jié)果:
f=
a^2+2*b其中,表達(dá)式的創(chuàng)建語(yǔ)句定義了f為符號(hào)變量,無(wú)需再定義f。否則,如果繼續(xù)在命令窗輸入:
>>symsf
>>f
運(yùn)行結(jié)果會(huì)將原本創(chuàng)建好的表達(dá)式覆蓋:
f=
f
另外,符號(hào)表達(dá)式也可以通過(guò)sym函數(shù)直接創(chuàng)建。
【例】創(chuàng)建符號(hào)表達(dá)式。
在命令窗輸入:
>>f1=sym(a^2+2*b)
運(yùn)行結(jié)果:
f1=
a^2+2*b
通過(guò)這種方法創(chuàng)建的符號(hào)表達(dá)式與上例中通過(guò)syms創(chuàng)建的符號(hào)表達(dá)式的結(jié)果是相同的。但是,如果采用以字符串作為輸入?yún)⒘康姆椒?,得到的將是另一個(gè)結(jié)果。
【例】創(chuàng)建符號(hào)表達(dá)式。
在命令窗輸入:
>>f2=sym(‘a(chǎn)^2+2*b’)
運(yùn)行結(jié)果:
f2=
a^2+2*b
應(yīng)當(dāng)注意,f2表達(dá)式的“+”號(hào)前后各存在一個(gè)空字符,與前面兩種方法創(chuàng)建的表達(dá)式略有差別。對(duì)于一個(gè)已有的表達(dá)式,利用findsym函數(shù)可以尋找該表達(dá)式中的符號(hào)變量,例如:
【例】尋找符號(hào)變量。
在命令窗輸入:
>>symsab
>>f=a^2+2*b;
>>findsym(f)
運(yùn)行結(jié)果:
ans=
a,b
使用pretty函數(shù)可以使符號(hào)表達(dá)式的顯示形式更為美觀?!纠堪凑諘?shū)寫(xiě)習(xí)慣顯示表達(dá)式。
在命令窗輸入:
>>symsxy
>>y=3*x^3-2*x^2+x+1
pretty(y)
運(yùn)行結(jié)果:
y=
3*x^3-2*x^2+x+1
32
3x-2x+x+16.1.2創(chuàng)建符號(hào)數(shù)學(xué)函數(shù)
符號(hào)數(shù)學(xué)函數(shù)的輸入?yún)⒘恐泻蟹?hào)變量,創(chuàng)建符號(hào)數(shù)學(xué)函數(shù)的方法與創(chuàng)建一般函數(shù)的方法類似。符號(hào)數(shù)學(xué)函數(shù)在一些場(chǎng)合有著特殊的用途。
下面以一個(gè)sinc符號(hào)數(shù)學(xué)函數(shù)為例來(lái)說(shuō)明其創(chuàng)建方法。創(chuàng)建一個(gè)M文件,輸入如下代碼并保存為sincsym.m:
functionz=sincsym(x)
ifisequal(x,sym(0))
z=sym(1);
else
z=sin(x)/x;
end在命令窗輸入:
>>x=sym(2);
y=sincsym(x)
x1=sym(0);
y1=sincsym(x1)
z=class(y1)
運(yùn)行結(jié)果:
y=
1/2*sin(2)
y1=
1
z=
sym6.2.1符號(hào)微積分
微積分運(yùn)算是整個(gè)高等數(shù)學(xué)的基礎(chǔ),本小節(jié)主要介紹如何利用符號(hào)數(shù)學(xué)工具箱對(duì)符號(hào)表達(dá)式進(jìn)行微積分運(yùn)算。
1.微分
在符號(hào)數(shù)學(xué)工具箱中,表達(dá)式的微分由函數(shù)diff實(shí)現(xiàn),其調(diào)用格式如下:
●?diff(S):求符號(hào)表達(dá)式S對(duì)于默認(rèn)自變量的微分。
●?diff(S,y):求符號(hào)表達(dá)式S對(duì)于自變量y的微分。6.2數(shù)學(xué)計(jì)算功能●?diff(S,n):求符號(hào)表達(dá)式S對(duì)于默認(rèn)自變量的n次微分。
●?diff(S,y,n)或diff(S,n,y):求符號(hào)表達(dá)式S對(duì)于自變量y的n次微分。
符號(hào)微分的默認(rèn)自變量為x,如果表達(dá)式中不存在x,則以字母表中最接近x的字母作為微分的默認(rèn)自變量。不論一個(gè)符號(hào)變量是否與表達(dá)式有關(guān),符號(hào)微分都可以求表達(dá)式對(duì)于該符號(hào)變量的微分?!纠糠?hào)微分。
在命令窗輸入:
>>symsxyt
>>z=x^2+2*y^3;
>>dzdx=diff(z)
dzdt=diff(z,t)
d2zdx2=diff(z,2,x)
d3zdy3=diff(z,y,3)運(yùn)行結(jié)果:
dzdx=
2*x
dzdt=
0
d2zdx2=
2
d3zdy3=
12
2.積分
在符號(hào)數(shù)學(xué)工具箱中,表達(dá)式的積分由函數(shù)int實(shí)現(xiàn),其調(diào)用格式如下:
●?int(S):求符號(hào)表達(dá)式S對(duì)于默認(rèn)自變量的不定積分。
●?int(S,v):求符號(hào)表達(dá)式S對(duì)于自變量v的不定積分。
●?diff(S,a,b):求符號(hào)表達(dá)式S對(duì)于默認(rèn)自變量從a到b的定積分。
符號(hào)積分的默認(rèn)自變量選取規(guī)則與符號(hào)微分中的規(guī)則類似。【例】符號(hào)積分。
在命令窗輸入:
>>symsxy
>>ix=int(z)
iy=int(z,y)
ix1_2=int(z,1,2)
iy0_2pi=int(z,y,0,pi/2)運(yùn)行結(jié)果:
ix=
log(x)+2*sin(y)*cos(y)*x
iy=
1/x*y-cos(y)^2
ix1_2=
2*sin(y)*cos(y)+log(2)
iy0_2pi=
1/2*(2*x+pi)/x6.2.2函數(shù)的極限
求極限就是當(dāng)函數(shù)的自變量無(wú)限接近某個(gè)確定值時(shí),求該函數(shù)的值的過(guò)程。譬如微分的計(jì)算就是利用極限定義的(假如該極限存在):函數(shù)的極限在很多場(chǎng)合有重要的作用,本小節(jié)將介紹如何使用符號(hào)數(shù)學(xué)工具箱求函數(shù)的極限。
通常使用limit函數(shù)求函數(shù)的極限,其調(diào)用格式如下:
●?limit(F,x,a):計(jì)算符號(hào)表達(dá)式F在x趨向于a條件下的極限。
●?limit(F,a):計(jì)算符號(hào)表達(dá)式F中默認(rèn)自變量趨向于a條件下的極限。
●?limit(F):計(jì)算符號(hào)表達(dá)式F在默認(rèn)自變量趨向于0時(shí)的極限。
●limit(F,x,a,'right')和limit(F,x,a,'left'):計(jì)算符號(hào)表達(dá)式F在x趨向于a條件下的右極限和左極限。例如,函數(shù)x/|x|在x→0+,x→0-時(shí)存在極限,而在x→0時(shí)不存在極限。下面將利用limit函數(shù)來(lái)求解。
【例】函數(shù)的極限。
在命令窗輸入:
>>symx;
>>F=x/abs(x);
F_2_NEGATIVE=limit(F,-2)
F_0=limit(F,x,0)
F_0_RIGTH=limit(F,x,0,‘right’)
F_0_LEFT=limit(F,x,0,'left')運(yùn)行結(jié)果:
F_2_NEGATIVE=
-1
F_0=
NaN
F_0_RIGTH=
1
F_0_LEFT=
-16.2.3級(jí)數(shù)求和
利用符號(hào)數(shù)學(xué)工具箱中的symsum函數(shù)可以實(shí)現(xiàn)級(jí)數(shù)的求和,其調(diào)用格式如下:
●?symsum(S):求符號(hào)表達(dá)式S對(duì)于默認(rèn)自變量x從0到x?-1的和。
●?symsum(S,v):求符號(hào)表達(dá)式S對(duì)于自變量v從0到v?-1的和。
●?symsum(S,a,b):求符號(hào)表達(dá)式S對(duì)于默認(rèn)自變量x從a到b的和。
●?symsum(S,v,a,b):求符號(hào)表達(dá)式S對(duì)于自變量v從a到b的和。
級(jí)數(shù)求和的默認(rèn)自變量選取規(guī)則與符號(hào)微分中的規(guī)則類似?!纠考?jí)數(shù)求和。
在命令窗輸入:
>>symsxv
>>S=x^2+v;
>>S1=symsum(S)
S2=symsum(S,v)
S3=symsum(S,0,4)
S4=symsum(S,v,0,4)運(yùn)行結(jié)果:
S1=
1/3*x^3-1/2*x^2+1/6*x+v*x
S2=
x^2*v+1/2*v^2-1/2*v
S3=
5*v+30
S4=
5*x^2+106.2.4泰勒級(jí)數(shù)展開(kāi)
利用符號(hào)數(shù)學(xué)工具中taylor函數(shù)可以求得符號(hào)表達(dá)式的泰勒級(jí)數(shù)展開(kāi)式,其調(diào)用格式如下:
●?taylor(f):計(jì)算符號(hào)表達(dá)式f在默認(rèn)自變量等于0處的5階泰勒級(jí)數(shù)展開(kāi)式。
●?taylor(f,n,v):計(jì)算符號(hào)表達(dá)式f在自變量v?=?0處的n?-1階泰勒級(jí)數(shù)展開(kāi)式。
●?taylor(f,n,v,a):計(jì)算符號(hào)表達(dá)式f在自變量v?=?a處的n?-1階泰勒級(jí)數(shù)展開(kāi)式。
當(dāng)符號(hào)表達(dá)式中有多個(gè)自變量時(shí),利用taylor函數(shù)可以求得表達(dá)式對(duì)于一個(gè)自變量的泰勒級(jí)數(shù)展開(kāi),默認(rèn)自變量選取規(guī)則與符號(hào)微分中的規(guī)則類似。【例】泰勒級(jí)數(shù)展開(kāi)。
在命令窗輸入:
>>symsxz
>>f=sin(x)+exp(z);
>>T1=taylor(f)
T2=taylor(f,7,x)
T3=taylor(f,4,z,1)運(yùn)行結(jié)果:
T1=
exp(z)+x-1/6*x^3+1/120*x^5
T2=
exp(z)+x-1/6*x^3+1/120*x^5
T3=
sin(x)+exp(1)+exp(1)*(z-1)+1/2*exp(1)*(z-1)^2+1/6*exp(1)*(z-1)^36.3.1符號(hào)表達(dá)式的化簡(jiǎn)
MATLAB的符號(hào)數(shù)學(xué)工具箱提供了豐富的表達(dá)式代數(shù)恒等變換和三角恒等變換的函數(shù),本小節(jié)將介紹這類變換函數(shù),如collect、expand、horner、factor、numden、simplify和simple。
1.因式分解
因式分解函數(shù)factor的調(diào)用格式為factor(p),返回值為p的因式分解形式。其中,p為有理系數(shù)符號(hào)多項(xiàng)式或符號(hào)類型的整數(shù),如果p不可分解,則返回值為p本身。6.3表達(dá)式的化簡(jiǎn)和替換【例】因式分解。
在命令窗輸入:
>>symsx;
>>n=(1:4)‘;
>>p=x.^n-1;
>>f=factor(p);
>>[p,f]運(yùn)行結(jié)果:
ans=
[x-1,
x-1]
[x^2-1,
(x-1)*(x+1)]
[x^3-1,
(x-1)*(x^2+x+1)]
[x^4-1,(x-1)*(x+1)*(x^2+1)]【例】因數(shù)分解。
在命令窗輸入:
>>N=sym(3);
>>fork=2:4
N(k)=10*N(k-1);
end
>>[N'factor(N')]運(yùn)行結(jié)果:
ans=
[3,(3)]
[30,(2)*(3)*(5)]
[300,(2)^2*(3)*(5)^2]
[3000,(2)^3*(3)*(5)^3]
2.表達(dá)式展開(kāi)
符號(hào)表達(dá)式的展開(kāi)函數(shù)expand的調(diào)用格式為expand(S),返回值為符號(hào)表達(dá)式S的展開(kāi)式。利用expand函數(shù)可以實(shí)現(xiàn)多項(xiàng)式、三角函數(shù)和指數(shù)函數(shù)的展開(kāi)。
【例】表達(dá)式展開(kāi)。
在命令窗輸入:
>>symsabxy
>>f1=a*(x+y)^2;
>>f2=x*(x*(x-a)+b);
>>f3=exp(a+b);
>>f4=cos(a*x+b*y);
>>p=expand([f1;f2;f3;f4])
運(yùn)行結(jié)果:
p=
a*x^2+2*a*x*y+a*y^2
x^3-a*x^2+x*b
exp(a)*exp(b)
cos(a*x)*cos(b*y)-sin(a*x)*sin(b*y)
3.合并同類項(xiàng)
符號(hào)表達(dá)式的同類項(xiàng)合并函數(shù)collect的調(diào)用格式如下:
●?collect(S):按符號(hào)表達(dá)式S中默認(rèn)自變量的同次冪項(xiàng)的系數(shù)合并,默認(rèn)自變量為x。
●?collect(S,v):按符號(hào)表達(dá)式S中自變量v的同次冪項(xiàng)的系數(shù)合并。
【例】合并同類項(xiàng)。在命令窗輸入:
>>symsxy;
>>f=(sin(x)*x)*(x+y)*y;
>>R1=collect(f)
R2=collect(f,y)
R3=collect([(x+1)*(y+1),x+y])運(yùn)行結(jié)果:
R1=
sin(x)*y*x^2+sin(x)*y^2*x
R2=
sin(x)*y*x^2+sin(x)*y^2*x
R3=
[(y+1)*x+y+1,x+y]
4.表達(dá)式化簡(jiǎn)
符號(hào)表達(dá)式的化簡(jiǎn)可以通過(guò)函數(shù)simple和simplify來(lái)實(shí)現(xiàn),其調(diào)用格式如下:
●?r=simple(S):使用多種算數(shù)法則對(duì)符號(hào)表達(dá)式S進(jìn)行化簡(jiǎn),得到所有比S更簡(jiǎn)短的表達(dá)式,返回值r為其中最簡(jiǎn)潔的形式。如果S為符號(hào)表達(dá)式矩陣,則結(jié)果為整個(gè)矩陣的最簡(jiǎn)表達(dá)形式,而不是矩陣的每個(gè)元素最簡(jiǎn)。如果不給出返回值,那么命令simple(S)的結(jié)果將顯示所有可能的表達(dá)式并且返回值為其中的最簡(jiǎn)形式?!?[r,how]=simple(S):返回最簡(jiǎn)形式及其使用的化簡(jiǎn)方法,并且不顯示化簡(jiǎn)的中間過(guò)程。其中,r為化簡(jiǎn)后的符號(hào)表達(dá)式,how為代表化簡(jiǎn)方法的字符串。
●?R=simplify(S):利用Maple化簡(jiǎn)規(guī)則化簡(jiǎn)符號(hào)矩陣S中的每個(gè)元素,返回值為R。
【例】顯示表達(dá)式化簡(jiǎn)的所有形式。在命令窗輸入:
>>symsx
>>S=cos(x)^2+sin(x)^2;
>>simple(S)
運(yùn)行結(jié)果:
simplify:
1
radsimp:
cos(x)^2+sin(x)^2
combine(trig):1
factor:
cos(x)^2+sin(x)^2
expand:
cos(x)^2+sin(x)^2
combine:
1
convert(exp):
(1/2*exp(i*x)+1/2/exp(i*x))^2-1/4*(exp(i*x)-1/exp(i*x))^2
convert(sincos):
cos(x)^2+sin(x)^2convert(tan):
(1-tan(1/2*x)^2)^2/(1+tan(1/2*x)^2)^2+4*tan(1/2*x)^2/(1+tan(1/2*x)^2)^2
collect(x):
cos(x)^2+sin(x)^2
mwcos2sin:
1
ans=
1
【例】顯示表達(dá)式化簡(jiǎn)的最簡(jiǎn)形式及其使用方法。
在命令窗輸入:
>>symsx
>>S=cos(x)^2+sin(x)^2;
>>[r,how]=simple(S)
運(yùn)行結(jié)果:
r=
1
how=
simplify
【例】利用Maple化簡(jiǎn)規(guī)則化簡(jiǎn)。
在命令窗輸入:
>>symsx
>>S=cos(x)^2+sin(x)^2;
>>R=simplify(S)
運(yùn)行結(jié)果:
R=
1
5.表達(dá)式通分
符號(hào)表達(dá)式的通分可以通過(guò)函數(shù)numden來(lái)實(shí)現(xiàn),其調(diào)用格式為[N,D]=numden(A),表示將A轉(zhuǎn)化為分子分母都是整系數(shù)的最佳形式。其中,A為符號(hào)矩陣,N為分子符號(hào)矩陣,D為分母符號(hào)矩陣。
【例】表達(dá)式通分。
在命令窗輸入:
>>symsxy
>>[n,d]=numden([x/y+y/x,sym(1-1/2.4)])運(yùn)行結(jié)果:
n=
[x^2+y^2,7]
d=
[y*x,12]
6.表達(dá)式的嵌套形式
函數(shù)horner可以將符號(hào)表達(dá)式轉(zhuǎn)換成嵌套形式,其調(diào)用格式為F=horner(P)。其中,P為符號(hào)多項(xiàng)式矩陣,該函數(shù)將P的每一個(gè)元素轉(zhuǎn)化為嵌套形式。
【例】表達(dá)式的嵌套形式。
在命令窗輸入:
>>symsx
>>P=[x^2+x;y^3-2*y];
>>F=horner(P)運(yùn)行結(jié)果:
F=
x*(x+1)
(-2+y^2)*y6.3.2符號(hào)表達(dá)式的替換
MATLAB的符號(hào)數(shù)學(xué)工具箱提供了兩個(gè)符號(hào)表達(dá)式替換的函數(shù)subexpr和subs。利用這兩個(gè)函數(shù)可以將表達(dá)式的輸出形式簡(jiǎn)化,從而得到一個(gè)簡(jiǎn)單的表達(dá)式。
subexpr函數(shù)的調(diào)用格式如下:
●?[Y,SIGMA]=subexpr(X,SIGMA):將符號(hào)表達(dá)式X中重復(fù)出現(xiàn)的字符串用SIGMA來(lái)代替,返回值Y為替換后的符號(hào)表達(dá)式。●?[Y,SIGMA]=subexpr(X,‘SIGMA’):將符號(hào)表達(dá)式X中重復(fù)出現(xiàn)的字符串用‘SIGMA’來(lái)代替,返回值Y為替換后的符號(hào)表達(dá)式。
subexpr函數(shù)可以使非常復(fù)雜的表達(dá)式的形式得到一定程度的化簡(jiǎn)。
【例】表達(dá)式重復(fù)字符串的替換。
在命令窗輸入:
>>t=solve(‘a(chǎn)*x^3+b*x^2+c*x+d=0’);
>>[r,s]=subexpr(t,'s')運(yùn)行結(jié)果:
r=
1/6/a*s^(1/3)-2/3*(3*c*a-b^2)/a/s^(1/3)-1/3*b/a
-1/12/a*s^(1/3)+1/3*(3*c*a-b^2)/a/s^(1/3)-1/3*b/a+1/2*i*3^(1/2)*(1/6/a*s^(1/3)
+2/3*(3*c*a-b^2)/a/s^(1/3))
-1/12/a*s^(1/3)+1/3*(3*c*a-b^2)/a/s^(1/3)-1/3*b/a-1/2*i*3^(1/2)*(1/6/a*s^(1/3)
+2/3*(3*c*a-b^2)/a/s^(1/3))s=
36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2
+4*d*b^3)^(1/2)*a
subs函數(shù)的調(diào)用格式如下:
●?R=subs(S):用調(diào)用函數(shù)或工作區(qū)間的變量值替換符號(hào)表達(dá)式S中所有出現(xiàn)的對(duì)應(yīng)變量。
●?R=subs(S,new):用變量new替換S中的默認(rèn)變量。
●?R=subs(S,old,new):用變量new替換S中的變量old。old為符號(hào)變量或代表某個(gè)變量名字符串,new為符號(hào)變量、數(shù)值變量或表達(dá)式。
【例】用工作區(qū)間變量替換。
在命令窗輸入:
>>a=10;
>>C1=2;
>>y=dsolve(‘Dy=-a*y’)
yt=subs(y)運(yùn)行結(jié)果:
y=
C1*exp(-a*t)
yt=
2*exp(-10*t)
【例】用輸入?yún)⒘刻鎿Q。
在命令窗輸入:
>>symsaC1t
>>y=C1*exp(-a*t);
>>yt=subs(y,{a,C1},{10,2})
運(yùn)行結(jié)果:
yt=
2*exp(-10*t)
【例】用矩陣替換標(biāo)量。
在命令窗輸入:
>>subs(exp(a*t),‘a(chǎn)’,magic(2))
運(yùn)行結(jié)果:
ans=
[exp(t),exp(3*t)]
[exp(4*t),exp(2*t)]
【例】相乘標(biāo)量的替換。
在命令窗輸入:
>>symsxy
>>subs(x*y,{x,y},{[01;-10],[11;11]})
運(yùn)行結(jié)果:
ans=
01
-106.4.1基本代數(shù)運(yùn)算
符號(hào)對(duì)象的基本代數(shù)運(yùn)算與double類的MATLAB對(duì)象運(yùn)算方法相同。
【例】符號(hào)矩陣的冪。
在命令窗輸入:
>>symst;
>>G=[cos(t)sin(t);-sin(t)cos(t)];
>>A=G^2
A=simple(A)6.4線性代數(shù)運(yùn)行結(jié)果:
A=
[cos(t)^2-sin(t)^2,2*cos(t)*sin(t)]
[-2*cos(t)*sin(t),cos(t)^2-sin(t)^2]
A=
[cos(2*t),sin(2*t)]
[-sin(2*t),cos(2*t)]
【例】符號(hào)正交矩陣。
在命令窗輸入:
>>symst;
>>G=[cos(t)sin(t);-sin(t)cos(t)];
>>I=G.‘*G
I=simple(I)運(yùn)行結(jié)果:
I=
[cos(t)^2+sin(t)^2,0]
[0,cos(t)^2+sin(t)^2]
I=
[1,0]
[0,1]6.4.2線性代數(shù)運(yùn)算
符號(hào)對(duì)象的線性代數(shù)運(yùn)算與double類的MATLAB對(duì)象的線性代數(shù)運(yùn)算相同。本小節(jié)將以希爾伯特矩陣為例來(lái)介紹符號(hào)數(shù)學(xué)工具箱中的幾種線性代數(shù)運(yùn)算。
【例】符號(hào)線性代數(shù)運(yùn)算。
創(chuàng)建一個(gè)數(shù)值類型的希爾伯特矩陣,在命令窗輸入:
>>H=hilb(3)運(yùn)行結(jié)果:
H=
1.00000.50000.3333
0.50000.33330.2500
0.33330.25000.2000
將H轉(zhuǎn)化為符號(hào)矩陣,在命令窗輸入:
>>H=sym(H)運(yùn)行結(jié)果:
H=
[1,1/2,1/3]
[1/2,1/3,1/4]
[1/3,1/4,1/5]
對(duì)這個(gè)無(wú)限精度的希爾伯特矩陣求逆及行列式,在命令窗輸入:
>>inv(H)
det(H)運(yùn)行結(jié)果:
ans=
[9,-36,30]
[-36,192,-180]
[30,-180,180]
ans=
1/2160利用反斜杠求希爾伯特矩陣構(gòu)成的線性方程組,在命令窗輸入:
>>b=[111]‘;
>>x=H\b
x=
3
-24
30
以上求逆、求行列式、求解線性方程組的結(jié)果都是對(duì)應(yīng)無(wú)限精度有理希爾伯特矩陣的精確解。另一方面,如果以使用16位精度的線性代數(shù)運(yùn)算所得結(jié)果與上例進(jìn)行對(duì)比,可以看出符號(hào)線性代數(shù)運(yùn)算與數(shù)值線性代數(shù)運(yùn)算存在著本質(zhì)上的區(qū)別。
【例】16位精度數(shù)值線性代數(shù)運(yùn)算。
創(chuàng)建一個(gè)16位精度的希爾伯特矩陣,在命令窗輸入:
>>digits(16)
>>V=vpa(hilb(3))
運(yùn)行結(jié)果:上面的矩陣元素的小數(shù)點(diǎn)表明使用的是變精度算法,即將結(jié)果四舍五入至16位阿拉伯?dāng)?shù)字。當(dāng)求矩陣的逆時(shí),由于矩陣條件數(shù)很大(3階希爾伯特矩陣的條件數(shù)約為500),因此誤差將被放大。在命令窗輸入:
>>inv(V)
運(yùn)行結(jié)果:再看行列式的值,在命令窗輸入:
>>det(V)
運(yùn)行結(jié)果:
ans=
.462962962962953e-3
求解線性方程組,在命令窗輸入:
>>V\b運(yùn)行結(jié)果:
ans=
3.000000000000041
-24.00000000000021
30.00000000000019
【例】奇異矩陣的運(yùn)算。
由于H非奇異,求其化零矩陣,在命令窗輸入:
>>null(H)運(yùn)行結(jié)果:
ans=
[emptysym]
求H的列空間,在命令窗輸入:
>>colspace(H)
運(yùn)行結(jié)果:
ans=
[1,0,0]
[0,0,1]
[0,1,0]即得到了一個(gè)單位矩陣的置換形式。下面介紹如何通過(guò)修改H(1,1)的值成為s,使H奇異。在命令窗輸入:
>>symss
H(1,1)=s
Z=det(H)
sol=solve(Z)運(yùn)行結(jié)果:
H=
[s,1/2,1/3]
[1/2,1/3,1/4]
[1/3,1/4,1/5]
Z=
1/240*s-1/270
sol=
8/9接著利用H=subs(H,s,sol)將s用sol替換,在命令窗輸入:
>>H=subs(H,s,sol)
運(yùn)行結(jié)果:
H=
[8/9,1/2,1/3]
[1/2,1/3,1/4]
[1/3,1/4,1/5]此時(shí),H的行列式將為零,H的逆矩陣將不存在。Z?=null(H)以及C=colspace(H)將返回非平凡的結(jié)果。在命令窗輸入:
>>Z=null(H)
C=colspace(H)
運(yùn)行結(jié)果:
Z=
1
-4
10/3
C=
[1,0]
[0,1]
[-3/10,6/5]需要指出的是,即使H奇異,vpa(H)非奇異。行列式不為零,逆矩陣存在。在命令窗輸入:
>>digits(16);
det(vpa(H))
inv(vpa(H))
運(yùn)行結(jié)果:
ans=
-.9e-176.4.3特征值
符號(hào)線性代數(shù)中,常用eig函數(shù)來(lái)求符號(hào)矩陣的特征值或特征向量,其調(diào)用格式如下:
●?E=eig(A):求符號(hào)矩陣A的特征值。
●?[V,E]=eig(A):求符號(hào)矩陣A的特征值E和特征向量V。
下面以上一小節(jié)的奇異矩陣為例,給出符號(hào)矩陣特征值和特征向量的求法。
【例】符號(hào)矩陣的特征值與特征向量。其中,T為特征向量,E為特征值構(gòu)成的對(duì)角矩陣。為使這個(gè)結(jié)果更為明了,在命令窗輸入:
>>Td=double(T)
Ed=double(E)運(yùn)行結(jié)果:
Td=
1.00001.6497-1.2837
-4.00001.00001.0000
3.33330.70511.5851
Ed=
000
01.33440
000.08786.4.4約當(dāng)標(biāo)準(zhǔn)型
約當(dāng)標(biāo)準(zhǔn)型的結(jié)果類似于矩陣的對(duì)角化,即對(duì)于一個(gè)矩陣A,尋找一個(gè)非奇異矩陣V,使得矩陣J?=?V\A*V最接近對(duì)角矩陣。對(duì)于絕大部分矩陣,約當(dāng)標(biāo)準(zhǔn)型為特征值組成的對(duì)角矩陣J,其變換矩陣V的列向量則為對(duì)應(yīng)的特征向量。特征值不相等的對(duì)稱矩陣往往具有這個(gè)特點(diǎn),但是對(duì)于有重特征值的非對(duì)稱矩陣,有可能不能對(duì)其進(jìn)行對(duì)角化。約當(dāng)型的主對(duì)角線上為矩陣的特征值,但是超對(duì)角線上的某些元素為1而不是0。
計(jì)算符號(hào)矩陣約當(dāng)標(biāo)準(zhǔn)型的函數(shù)jordan的常用調(diào)用格式為[V,J]?=?jordan(A),其中,J為約當(dāng)標(biāo)準(zhǔn)型,V為變換矩陣,其列向量代表廣義特征向量。
【例】符號(hào)矩陣的約當(dāng)標(biāo)準(zhǔn)型。
>>A=sym([12,32,66,116;-25,-76,-164,-294;
21,66,143,256;-6,-19,-41,-73]);
>>[V,J]=jordan(A)
V=
[4,-2,4,3]
[-6,8,-11,-8]
[4,-7,10,7]
[-1,2,-3,-2]J=
[1,1,0,0]
[0,1,0,0]
[0,0,2,1]
[0,0,0,2]6.4.5奇異值分解
符號(hào)數(shù)學(xué)工具箱中只支持變精度完全奇異向量分解的數(shù)值計(jì)算,其中的一個(gè)原因就是符號(hào)計(jì)算所得的公式過(guò)長(zhǎng)且過(guò)于復(fù)雜。如果A是一個(gè)浮點(diǎn)或變精度數(shù)值的符號(hào)矩陣,則svd函數(shù)計(jì)算A的奇異分解。svd的常用調(diào)用格式為[U,S,V]=svd(A),其中U、V為正交矩陣,S為對(duì)角矩陣,且滿足A=U*S*V'。
【例】符號(hào)矩陣的奇異值分解。
在命令窗輸入:
>>[J,I]=meshgrid(1:5);
>>digits(8)
A=sym(1./(I-J+1/2))
[U,S,V]=svd(vpa(A))運(yùn)行結(jié)果:
A=
[?2,-2,?-2/3,-2/5,?-2/7]
[2/3,?2,??-2,?-2/3,-2/5]
[2/5,2/3,?2,?-2,?-2/3]
[2/7,2/5,2/3,2,???-2]
[2/9,2/7,2/5,?2/3,2]6.4.6特征值軌跡
本小節(jié)給出一個(gè)在矩陣參數(shù)變化時(shí),矩陣特征值的變化情況。
【例】特征值軌跡。
在命令窗輸入:
>>A=gallery(3)
E=[130,-390,0;43,-129,0;133,-399,0];
symsxt
A=A+t*E
p=poly(A)
x=.8:.01:3.2;
fork=0:2c=sym2poly(subs(p,t,k*0.5e-6));
y=polyval(c,x);
lambda=eig(double(subs(A,t,k*0.5e-6)));
subplot(3,1,3-k)
plot(x,y,'-',x,0*x,':',lambda,0*lambda,'o')
axis([.83.2-.5.5])
text(2.25,.35,['t='num2str(k*0.5e-6)]);
end運(yùn)行結(jié)果如下。圖6-1所示自上至下分別為t=1.0e-6、t=0.5e-6、t=0時(shí)的特征值軌跡。
A=
-149-50?-154
537180546
-27?-9?-25
A=
[-149+130*t,-50-390*t,-154]
[537+43*t,180-129*t,?546]
[-27+133*t,?-9-399*t,-25]
p=
x^3-6*x^2+11*x-t*x^2+492512*t*x-6-1221271*t圖6-1特征值軌跡6.5.1求解代數(shù)方程
符號(hào)數(shù)學(xué)工具箱提供了求解符號(hào)代數(shù)方程的函數(shù)solve,其調(diào)用格式如下:
●?g=solve(eq):求解關(guān)于默認(rèn)自變量的方程式eq或eq=0。其中,eq可以是符號(hào)表達(dá)式或字符串,返回值g是所有解構(gòu)成的列向量。如果eq是不帶等號(hào)的符號(hào)表達(dá)式或字符串,則求解關(guān)于默認(rèn)自變量的方程式eq=0。
●?g=solve(eq,var):求解關(guān)于自變量var的方程式eq或eq=0。
通常方程的默認(rèn)自變量為x。6.5求解符號(hào)方程【例】求解代數(shù)方程。
在命令窗輸入:
>>symsabcx
S=a*x^2+b*x+c;
solve(S)
運(yùn)行結(jié)果:
ans=
-1/2*(b-(b^2-4*a*c)^(1/2))/a
-1/2*(b+(b^2-4*a*c)^(1/2))/a當(dāng)然,也可以指定自變量,繼續(xù)在命令窗輸入:
>>b=solve(S,b)
運(yùn)行結(jié)果:
b=
-(a*x^2+c)/x
需要注意的是,如果待求解的方程形式不是f(x)=0,而是形如g(x)=f(x),則solve函數(shù)的輸入?yún)⒘勘仨毷且?hào)字符串。6.5.2求解代數(shù)方程組
符號(hào)代數(shù)方程組的求解也要使用函數(shù)solve,其調(diào)用格式如下:
●?g=solve(eq1,eq2,…,eqn):求解關(guān)于n個(gè)默認(rèn)自變量的方程組eq1、eq2、…、eqn。其中,eq1、eq2、…、eqn可以是符號(hào)表達(dá)式或字符串。默認(rèn)自變量由函數(shù)findsym作用于方程系統(tǒng)決定。
●?g=solve(eq1,eq2,…,eqn,var1,var2,…,varn):求解關(guān)于n個(gè)自變量var1、var2、…、varn的方程組eq1、eq2、…、eqn。
對(duì)于方程數(shù)等于輸出數(shù)的方程組,其解按照字母表排序;對(duì)于單輸出的方程組,則返回值為所有解組成的結(jié)構(gòu)。
【例】
求解代數(shù)方程組(單輸出)。
在命令窗輸入:
>>S=solve(‘u^2-v^2=a^2’,‘u+v=1’,‘a(chǎn)^2-2*a=3’)
S.a
運(yùn)行結(jié)果:
S=
a:[2x1sym]
u:[2x1sym]
v:[2x1sym]
ans=
3
-1
【例】求解代數(shù)方程組(輸出數(shù)等于方程數(shù))。
在命令窗輸入:
>>symsxyalpha
>>[x,y]=solve(x^2*y^2,x-y/2-alpha)
運(yùn)行結(jié)果:
x=
0
0
alpha
alpha
y=
-2*alpha
-2*alpha
0
0
需要注意的是,由于該方程組第一個(gè)方程的解為x=±0,y=±0,故最終的解向量中含有冗余項(xiàng)。6.5.3求解常微分方程
符號(hào)數(shù)學(xué)工具箱提供了求解符號(hào)常微分方程(組)的函數(shù)dsolve。微分方程中,在變量字母前加D代表對(duì)該變量的微分。符號(hào)D2、D3、…、DN分別對(duì)應(yīng)二階、三階、…、N階微分。例如D2y表示的是d2y/dt2。因變量是前面加D的符號(hào)變量,并且默認(rèn)對(duì)自變量t求導(dǎo)。應(yīng)當(dāng)注意,符號(hào)變量名中不能含有D。
dsolve函數(shù)的調(diào)用格式如下:
●?r?=?dsolve(‘eq1,eq2,…’,‘cond1,cond2,…’,‘v’):求解由eq1、eq2?…構(gòu)成的常微分方程(組),且對(duì)自變量v求導(dǎo),由cond1、cond2…指定邊值或初值條件。
●?r=dsolve(‘eq1’,‘eq2’,…,‘cond1’,‘cond2’,…,‘v’):同上,但輸入?yún)⒘孔疃嗖怀^(guò)12。
●?dsolve('eq1,eq2,…','cond1,cond2,…','v'):同上。如果初值條件數(shù)少于因變量數(shù),求解的結(jié)果中將含有積分常數(shù)C1、C2等。dsolve函數(shù)的輸出形式有以下三種:
●對(duì)于只有一個(gè)方程和一個(gè)輸出的情況,dsolve函數(shù)的返回值為一個(gè)非線性方程多個(gè)解構(gòu)成的列向量。
●對(duì)于多個(gè)方程和方程數(shù)等于輸出數(shù)的情況,dsolve函數(shù)將解按照詞典順序排序并賦給輸出。
●對(duì)于多個(gè)方程和一個(gè)輸出的情況,dsolve函數(shù)的返回值為所有解組成的結(jié)構(gòu)?!纠壳蠼庾灾纬N⒎址匠獭?/p>
在命令窗輸入:
>>dsolve(‘Dx=-a*x’)
運(yùn)行結(jié)果:
ans=
C1*exp(-a*t)【例】求解非自治常微分方程。
在命令窗輸入:
>>dsolve(‘Df=f+sin(t)’)
運(yùn)行結(jié)果:
ans=
-1/2*cos(t)-1/2*sin(t)+exp(t)*C1【例】求解二階常微分方程。
在命令窗輸入:
>>dsolve(‘D2y=-a^2*y’,‘y(0)=1’,‘Dy(pi/a)=0’)
運(yùn)行結(jié)果:
ans=
cos(a*t)
【例】求解常微分方程組。
在命令窗輸入:
>>S=dsolve(‘Dx=y’,‘Dy=-x’)
S.x
S.y運(yùn)行結(jié)果:
S=
x:[1x1sym]
y:[1x1sym]
ans=
-C1*cos(t)+C2*sin(t)
ans=
C1*sin(t)+C2*cos(t)6.6.1二維基本繪圖
函數(shù)ezplot是MATLAB最基本最常用的二維繪圖函數(shù),其調(diào)用格式如下:
●?ezplot(f):在默認(rèn)區(qū)域內(nèi)繪制函數(shù)表達(dá)式f=f(x)。
●?ezplot(f,[xmin,xmax]):在指定的區(qū)域[xmin,xmax]內(nèi)繪制函數(shù)表達(dá)式f=f(x)。如果沒(méi)有圖形窗口存在,則該命令生成標(biāo)題為FigureNo.1的新窗口并在該窗口中作圖;如果已有圖形窗口存在,則在標(biāo)號(hào)最高的圖形窗口中作圖。6.6簡(jiǎn)易符號(hào)繪圖函數(shù)●?ezplot(f,[xminxmax],fign):打開(kāi)并在指定標(biāo)號(hào)fign的窗口中繪制[xmin,xmax]區(qū)域內(nèi)函數(shù)f=f(x)的圖像。
●?ezplot(f):在默認(rèn)區(qū)域,內(nèi)繪制函數(shù)表達(dá)式f(x,y)=0的圖像。
●?ezplot(f,[xmin,xmax,ymin,ymax]):在xmin<x<xmax和ymin<y<ymax區(qū)域內(nèi)繪制函數(shù)f(x,y)=0的圖像。
●?ezplot(f,[min,max]):在min<x<max和min<y<max區(qū)域內(nèi)繪制函數(shù)f(x,y)=0的圖像。
●?ezplot(x,y):在默認(rèn)范圍內(nèi)繪制參數(shù)方程x=x(t)、y=y(t)的圖像。
●?ezplot(x,y,[tmin,tmax]):在指定的范圍tmin<t<tmax內(nèi)繪制參數(shù)方程x=x(t)、y=y(t)的圖像。
●?ezplot(…,figure):在由figure句柄標(biāo)識(shí)的圖形窗口中繪制指定函數(shù)的圖像?!纠坷L制二維圖像x2-y4=0。
在命令窗輸入:
>>symsxy
>>ezplot(x^2-y^4)
運(yùn)行結(jié)果如圖6-2所示。圖6-2x2?-y4=0的圖像
【例】
繪制二維圖像在命令窗輸入:
>>symsx
>>ezplot(erf(x))
grid運(yùn)行結(jié)果如圖6-3所示。圖6-3erf(x)的圖像6.6.2二維極坐標(biāo)繪圖
函數(shù)ezpolar用于二維極坐標(biāo)函數(shù)的繪圖,其調(diào)用格式如下:
●?ezpolar(f):在默認(rèn)區(qū)域0?<theta<?2π內(nèi)繪制極坐標(biāo)函數(shù)rho?=?f(theta)的圖像。
●?ezpolar(f,[a,b]):在指定區(qū)域a?<theta<?b內(nèi)繪制極坐標(biāo)函數(shù)f的圖像。
【例】二維極坐標(biāo)繪圖。
在命令窗輸入:
>>symst
>>ezpolar(1+cos(4*t))
運(yùn)行結(jié)果如圖6-4所示。圖6-4繪制極坐標(biāo)圖6.6.3三維曲線繪圖
函數(shù)ezplot3用于三維曲線的簡(jiǎn)易繪圖,其調(diào)用格式如下:
●?ezplot3(x,y,z):在默認(rèn)區(qū)域0<t<2π內(nèi)繪制由參數(shù)方程x=x(t)、y=y(t)與z=z(t)定義的曲線。
●?ezplot3(x,y,z,[tmin,tmax]):在區(qū)域tmin<t<tmax內(nèi)繪制由參數(shù)方程x=x(t)、y=y(t)與z=z(t)定義的曲線。
●?ezplot3(…,'animate'):繪制參數(shù)方程的動(dòng)態(tài)軌跡。【例】繪制三維參數(shù)曲線。
在命令窗輸入:
>>symst;
>>ezplot3(sin(t),cos(t),t,[0,6*pi])
運(yùn)行結(jié)果如圖6-5所示。圖6-5繪制三維參數(shù)曲線圖6.6.4三維網(wǎng)格繪圖
函數(shù)ezmesh用于繪制三維網(wǎng)格圖,其調(diào)用格式如下:
●ezmesh(f):繪制二元函數(shù)f(x,y)的三維網(wǎng)格圖,f為函數(shù)f的符號(hào)表達(dá)式,默認(rèn)區(qū)域-2π<x<2π,-2π<y<2π。MATLAB將根據(jù)函數(shù)變動(dòng)的程度選擇相應(yīng)的計(jì)算柵格。如果函數(shù)f在某些柵格點(diǎn)上沒(méi)有定義,則這些點(diǎn)將不顯示。
●ezmesh(f,domain):在指定區(qū)域domain內(nèi)繪制二元函數(shù)f的三維網(wǎng)格圖,domain可以是四維向量[xmin,xmax,ymin,ymax]或二維向量[min,max]。●ezmesh(x,y,z):在默認(rèn)區(qū)域?-2π<s<2π、-2π<t<2π內(nèi)繪制由參數(shù)方程x=x(s,t)、y=y(s,t)、z=z(s,t)定義的網(wǎng)格圖。
●?ezmesh(x,y,z,[smin,smax,tmin,tmax]):在指定區(qū)域內(nèi)繪制由參數(shù)方程定義的網(wǎng)格圖。
●?ezmesh(x,y,z,[min,max]):在指定區(qū)域內(nèi)繪制由參數(shù)方程定義的網(wǎng)格圖。
●ezmesh(…,n):用指定的n×n個(gè)柵格點(diǎn)在默認(rèn)區(qū)域內(nèi)繪制函數(shù)f的網(wǎng)格圖。n的默認(rèn)值為60。
●?ezmesh(…,'circ'):在一圓形區(qū)域內(nèi)畫(huà)出函數(shù)f的網(wǎng)格圖。函數(shù)ezmeshc用于同時(shí)繪制三維網(wǎng)格圖與等高線圖,其調(diào)用格式與函數(shù)ezmesh類似。例如繪制如下函數(shù)表達(dá)式的網(wǎng)格圖。
【例】
繪制三維網(wǎng)格圖。在命令窗輸入:
>>symsxy
>>ezmesh(y/(1+x^2+y^2),[-5,5,-2*pi,2*pi])運(yùn)行結(jié)果如圖6-6所示。圖6-6三維網(wǎng)格圖
【例】同時(shí)繪制三維網(wǎng)格圖與等高線圖。
在命令窗輸入:
>>symsxy
>>ezmeshc(y/(1+x^2+y^2),[-5,5,-2*pi,2*pi])
運(yùn)行結(jié)果如圖6-7所示。圖6-7三維網(wǎng)格圖與等高線圖6.6.5三維表面繪圖
ezsurf函數(shù)用于繪制三維表面圖,其調(diào)用格式如下:
●?ezsurf(f):繪制二元函數(shù)f(x,y)的三維表面圖,f為函數(shù)f的符號(hào)表達(dá)式,默認(rèn)區(qū)域-2π<x<2π,-2π<y<2π。MATLAB將根據(jù)函數(shù)變動(dòng)的程度選擇相應(yīng)的計(jì)算柵格。如果函數(shù)f在某些柵格點(diǎn)上沒(méi)有定義,則這些點(diǎn)將不顯示。●ezsurf(f,domain):在指定區(qū)域domain內(nèi)繪制二元函數(shù)f的三維表面圖,domain可以是四維向量[xmin,xmax,ymin,ymax]或二維向量[min,max]。
●ezsurf(x,?y,?z):在默認(rèn)區(qū)域?-2π<s<2π、-2π<t<2π內(nèi)繪制由參數(shù)方程x=x(s,?t)、y=y(s,t)、z=z(s,t)定義的表面圖。
●ezsurf(x,y,z,[smin,smax,tmin,tmax]):在指定區(qū)域內(nèi)繪制由參數(shù)方程定義的表面圖。
●ezsurf(x,y,z,[min,max]):在指定區(qū)域內(nèi)繪制由參數(shù)方程定義的表面圖?!馿zsurf(…,n):用指定n×n個(gè)柵格點(diǎn)在默認(rèn)區(qū)域內(nèi)繪制函數(shù)f的表面圖。n的默認(rèn)值為60。
●ezsurf(…,‘circ’):在一圓形區(qū)域內(nèi)畫(huà)出函數(shù)f的表面圖。
函數(shù)ezsurfc用于同時(shí)繪制三維表面圖與等高線圖,其調(diào)用格式與函數(shù)ezsurf類似。例如繪制如下函數(shù)表達(dá)式的表面圖。【例】繪制三維表面圖。
在命令窗輸入:
>>symsxy
>>ezsurf(y/(1+x^2+y^2),[-5,5,-2*pi,2*pi],35)
運(yùn)行結(jié)果如圖6-8所示。圖6-8三維表面圖【例】同時(shí)繪制三維表面圖與等高線圖。
在命令窗輸入:
>>symsxy
>>ezsurfc(y/(1+x^2+y^2),[-5,5,-2*pi,2*pi],35)
運(yùn)行結(jié)果如圖6-9所示。圖6-9三維表面圖與等高線圖6.6.6等高線繪圖
函數(shù)ezcontour用于繪制函數(shù)的等高線,其調(diào)用格式如下:
●ezcontour(f):繪制二元函數(shù)f(x,y)的等高線圖,f為函數(shù)f的符號(hào)表達(dá)式,默認(rèn)區(qū)域-2π<x<2π,-2π<y<2π。MATLAB將根據(jù)函數(shù)變動(dòng)的程度選擇相應(yīng)的計(jì)算柵格。如果函數(shù)f在某些柵格點(diǎn)上沒(méi)有定義,則這些點(diǎn)將不顯示。
●?ezcontour(f,domain):在指定區(qū)域domain內(nèi)繪制二元函數(shù)f的等高線圖,domain可以是四維向量[xmin,xmax,ymin,ymax]或二維向量[min,max]?!馿zcontour(…,n):用指定n×n個(gè)柵格點(diǎn)在默認(rèn)區(qū)域內(nèi)繪制函數(shù)f的等高線圖。n的默認(rèn)值為60。
函數(shù)ezcontourf用于繪制函數(shù)的等高線并以不同顏色填充,其調(diào)用格式與函數(shù)ezcontour類似。例如繪制如下函數(shù)表達(dá)式的等高線圖。
【例】繪制等高線圖。
在命令窗輸入:
>>symsxy
>>f=3*(1-x)^2*exp(-(x^2)-(y+1)^2)...
-10*(x/5-x^3-y^5)*exp(-x^2-y^2)...
-1/3*exp(-(x+1)^2-y^2);
>>ezcontour(f,[-3,3],49)
運(yùn)行結(jié)果如圖6-10所示。圖6-10等高線圖
【例】繪制等高線圖并以不同顏色填充。
在命令窗輸入:
>>symsxy
>>f=3*(1-x)^2*exp(-(x^2)-(y+1)^2)...
-10*(x/5-x^3-y^5)*exp(-x^2-y^2)...
-1/3*exp(-(x+1)^2-y^2);
>>ezcontourf(f,[-3,3],49)
運(yùn)行結(jié)果如圖6-11所示。圖6-11有填充色的等高線圖6.7.1maple函數(shù)
maple函數(shù)為用戶提供了直接調(diào)用Maple函數(shù)的途徑。該函數(shù)的輸入?yún)⒘繛閟ym對(duì)象、字符串或double類型的數(shù),返回值為對(duì)應(yīng)于輸入類型的sym對(duì)象、字符串或double類型數(shù)。利用maple函數(shù)也可以對(duì)自行開(kāi)發(fā)的符號(hào)數(shù)學(xué)程序進(jìn)行調(diào)試。6.7調(diào)用Maple函數(shù)
maple函數(shù)的調(diào)用格式如下:
●?r=maple(‘statement’):將statement傳遞給Maple內(nèi)核,且返回計(jì)算結(jié)果。必要時(shí)可以在statement后面加分號(hào)(;)。
●?maple('function',arg1,arg2,…):接受任何帶引號(hào)的與輸入?yún)⒘肯嚓P(guān)的Maple函數(shù)名'function',必要時(shí)將輸入?yún)⒘哭D(zhuǎn)換為符號(hào)表達(dá)式并且函數(shù)通過(guò)給定參量調(diào)用。如果輸入?yún)⒘繛閟yms,則maple返回一個(gè)sym類型的結(jié)果,否則返回一個(gè)char類型的結(jié)果?!?[r,status]=maple(…):有條件地返回警告/錯(cuò)誤信息。如果語(yǔ)句執(zhí)行成功,則r為計(jì)算結(jié)果且status為0;如果語(yǔ)句執(zhí)行失敗,則r為相應(yīng)的警告/錯(cuò)誤信息,而status為一正整數(shù)。
●?maple(‘traceon’)或mapletraceon:顯示所有后續(xù)Maple語(yǔ)句及其相應(yīng)結(jié)果。
●?maple('traceoff')或mapletraceoff:關(guān)閉上面的操作特性?!纠坑?jì)算最小公因數(shù)和最小公因式。
在命令窗輸入:
>>num1=maple(‘gcd(14,21)’)
xy1=maple(‘gcd(x^2-y^2,x^3-y^3)’)
運(yùn)行結(jié)果:
num1=
7
xy1=
-y+x6.7.2mfun函數(shù)
mfun函數(shù)的調(diào)用格式為mfun(‘function’,par1,par2,par3,par4)。計(jì)算Maple中的已知數(shù)學(xué)函數(shù)function,返回值為數(shù)值量。每個(gè)參量par為對(duì)應(yīng)function的數(shù)值量。用戶可以輸入的參量最多不超過(guò)4個(gè)。最后指定的參量可以是矩陣,通常對(duì)應(yīng)于X。其他參量的維數(shù)取決于function的Maple規(guī)范。用戶可以通過(guò)以下命令獲得Maple函數(shù)的相關(guān)參數(shù)信息:
●?helpmfunlist;
●?mhelpfunction。
Maple用16位精度計(jì)算function,其結(jié)果的每個(gè)元素為MATLAB數(shù)值量。function中的任何奇異值將返回NaN。
【例】使用mfun函數(shù)。
在命令窗輸入:
>>mfun(‘FresnelC’,0:5)
mfun('Chi',[3*i0])運(yùn)行結(jié)果:
ans=
00.77990.48830.60570.49840.5636
ans=
0.1196+1.5708iNaN+NaNi6.7.3sym函數(shù)
本小節(jié)將給出利用Maple階乘函數(shù)計(jì)算階乘的例子。計(jì)算階乘時(shí)首先要通過(guò)sym函
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年南寧貨運(yùn)從業(yè)資格證模擬考試題庫(kù)及答案
- 2025年?duì)I口交通運(yùn)輸從業(yè)資格證怎樣考試
- 2025購(gòu)買(mǎi)房地產(chǎn)居間合同
- 2024年度互聯(lián)網(wǎng)醫(yī)療服務(wù)平臺(tái)運(yùn)營(yíng)與推廣合同3篇
- 2024商標(biāo)許可及聯(lián)合營(yíng)銷推廣合作協(xié)議3篇
- 單位人力資源管理制度匯編大合集
- 2024實(shí)習(xí)教師教育實(shí)習(xí)期間生活服務(wù)保障合同2篇
- 廚房刀具安全使用指南
- 電力工程招投標(biāo)代理協(xié)議范例
- 2024年度全球物流網(wǎng)絡(luò)優(yōu)化服務(wù)合同3篇
- 乙烯裂解汽油加氫裝置設(shè)計(jì)
- 計(jì)劃分配率和實(shí)際分配率_CN
- 小學(xué)語(yǔ)文作文技巧六年級(jí)寫(xiě)人文章寫(xiě)作指導(dǎo)(課堂PPT)
- NLP時(shí)間線療法
- JJG596-2012《電子式交流電能表檢定規(guī)程》
- 醫(yī)療質(zhì)量檢查分析、總結(jié)、反饋
- 《APQP培訓(xùn)資料》
- 通信線路架空光纜通用圖紙指導(dǎo)
- 家具銷售合同,家居訂購(gòu)訂貨協(xié)議A4標(biāo)準(zhǔn)版(精編版)
- 食品加工與保藏課件
- 銅芯聚氯乙烯絕緣聚氯乙烯護(hù)套控制電纜檢測(cè)報(bào)告可修改
評(píng)論
0/150
提交評(píng)論