




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章符號(hào)計(jì)算12/10/20221第二章符號(hào)計(jì)算12/10/20221符號(hào)計(jì)算功能matlab自產(chǎn)生起就在數(shù)值計(jì)算上功能卓著,深受各專業(yè)計(jì)算人員的歡迎.但由于在數(shù)學(xué),物理等各種科研和工程應(yīng)用中經(jīng)常會(huì)遇到符號(hào)運(yùn)算的問(wèn)題.為此,公司于1993年購(gòu)買了Maple軟件的使用權(quán),并在此基礎(chǔ)上,開(kāi)發(fā)了符號(hào)計(jì)算工具箱(SymbolicToolbox)MATLAB中實(shí)現(xiàn)符號(hào)計(jì)算功能的三種途徑1)調(diào)用matlab自己開(kāi)發(fā)的各種功能函數(shù)進(jìn)行常用的符號(hào)運(yùn)算.包括符號(hào)表達(dá)式與符號(hào)矩陣的基本操作,符號(hào)矩陣的運(yùn)算,符號(hào)微積分,符號(hào)線性方程求解,符號(hào)微分方程求解等.2)為了特殊專業(yè)人員提供方便,matlab還保留mpa.m和maple.m兩個(gè)函數(shù)與Maple接口.3)符號(hào)函數(shù)計(jì)算器功能.12/10/20222符號(hào)計(jì)算功能matlab自產(chǎn)生起就在數(shù)值計(jì)算上功能卓著,深受符號(hào)運(yùn)算與數(shù)值運(yùn)算的區(qū)別:符號(hào)運(yùn)算中,解算數(shù)學(xué)表達(dá)式、方程時(shí),不是在離散化的數(shù)值點(diǎn)上進(jìn)行,而是憑借一系列恒等式和數(shù)學(xué)定理,通過(guò)推理和演繹,獲得解析結(jié)果。這種計(jì)算建立在數(shù)值完全準(zhǔn)確表達(dá)和推演嚴(yán)格解析的基礎(chǔ)上,所得結(jié)果是完全準(zhǔn)確的。符號(hào)運(yùn)算----代數(shù)運(yùn)算,公式推導(dǎo)數(shù)值運(yùn)算---算術(shù)運(yùn)算代值12/10/20223符號(hào)運(yùn)算與數(shù)值運(yùn)算的區(qū)別:符號(hào)運(yùn)算中,解算數(shù)學(xué)表達(dá)式、方程時(shí)2.1符號(hào)對(duì)象和符號(hào)表達(dá)式在matlab中,數(shù)值和數(shù)值變量用于數(shù)值的存儲(chǔ)和各種數(shù)值計(jì)算.而符號(hào)常量,符號(hào)變量,符號(hào)函數(shù),符號(hào)操作等則是用來(lái)形成符號(hào)表達(dá)式,嚴(yán)格按照代數(shù),微積分等課程中的規(guī)則,公式進(jìn)行運(yùn)算,并盡可能給出解析表達(dá)式.2.1.1符號(hào)對(duì)象的生成和使用●
數(shù)值計(jì)算---變量先賦值,再使用.●
符號(hào)計(jì)算---先定義基本的符號(hào)對(duì)象(可以是常量,變量,表達(dá)式),然后用這些基本符號(hào)對(duì)象去構(gòu)成新的表達(dá)式,再進(jìn)行所需的符號(hào)運(yùn)算.12/10/202242.1符號(hào)對(duì)象和符號(hào)表達(dá)式在matlab中,數(shù)值和數(shù)值變量符號(hào)對(duì)象的創(chuàng)建和衍生1.生成符號(hào)對(duì)象的基本規(guī)則①任何基本符號(hào)對(duì)象(數(shù)字、參數(shù)、變量、表達(dá)式)都必須借助專門的符號(hào)函數(shù)指令sym或syms定義。②任何包含符號(hào)對(duì)象的表達(dá)式或方程,將繼承符號(hào)對(duì)象的屬性。即任何包含符號(hào)對(duì)象的表達(dá)式、方程也一定是符號(hào)對(duì)象。12/10/20225符號(hào)對(duì)象的創(chuàng)建和衍生1.生成符號(hào)對(duì)象的基本規(guī)則①任何基本符號(hào)對(duì)象的定義:f=sym(arg)---把數(shù)字,字符串或表達(dá)式arg轉(zhuǎn)為符號(hào)對(duì)象f=sym(argn,flagn)---把數(shù)值或數(shù)值表達(dá)式轉(zhuǎn)換為flagn格式的符號(hào)對(duì)象f=sym(1/2),s=sym(1/3),y=sym(pi),a=sym('b*c')f=1/2,s=1/3,y=pi,a=b*cf=sym(1/2,'d'),s=sym(1/3,'d'),y=sym(pi,'d')f=sym(1/2,'r')=sym(1/2)f=.50000000000000000000000000000000s=.3333333333333333148296162562473912/10/20226符號(hào)對(duì)象的定義:f=sym(arg)---把數(shù)字,字符串或表syms(‘a(chǎn)rgv1’,‘a(chǎn)rgv2’,‘a(chǎn)rgvk’)---把字符argv1,argv2,argvk定義為基本符號(hào)對(duì)象symsargv1argv2argvk---上述格式的簡(jiǎn)潔形式,各符號(hào)對(duì)象間不得有逗號(hào)argv=sym(‘a(chǎn)rgv’,flagv)---按flagv指定的要求把字符串‘a(chǎn)rgv’定義為符號(hào)對(duì)象argvf=sym('pi'),s=sym('2*pi+sin(60*pi*180)+exp(2)')f=pi,s=2*pi+sin(60*pi*180)+exp(2)syms('a','b','c')a=a,b=b,c=csymsabca=a,b=b,c=c只能定義符號(hào)變量12/10/20227syms(‘a(chǎn)rgv1’,‘a(chǎn)rgv2’,‘a(chǎn)rgvk’說(shuō)明:?f=sym(argn,flagn)中的argn是數(shù)值或數(shù)值表達(dá)式時(shí),flagn可選:‘d’---最接近的十進(jìn)制浮點(diǎn)精確表示.‘r’---最接近的有理表示,缺省選項(xiàng).有理是指用兩個(gè)正整數(shù)p,q構(gòu)成的p/q,p*pi/q,sqrt(p),2^q,10^q的形式之一.?argv=sym(‘a(chǎn)rgv’,flagv)中的‘a(chǎn)rgv’是字符時(shí),flagv可取限定選項(xiàng)‘positive’---限定argv是“正,實(shí)”符號(hào)變量‘real’---限定argv是“實(shí)”符號(hào)變量.‘unreal’---argv是非實(shí)符號(hào)變量.12/10/20228說(shuō)明:12/10/202282符號(hào)數(shù)字的定義格式:sc=sym('num')
%sc為值為num的符號(hào)數(shù)字注意:i)單引號(hào)必須在英文狀態(tài)下輸入,構(gòu)成字符串ii)num為一個(gè)具體的數(shù)字如:
sc=sym(‘2/3')sb=sym('pi+sqrt(5)')sc=2/3sb=pi+sqrt(5)12/10/202292符號(hào)數(shù)字的定義格式:sc=sym('num')3符號(hào)參數(shù)定義格式:i)symsparapara=sym('para')
symsa;a=sym('a')ii)symsparaflagpara=sym('para','flag')
symsapositive;a=sym('a','positive')iii)symsabcsymsabcflagflag為參數(shù)屬性:positive----參數(shù)取正實(shí)數(shù)real-----參數(shù)為實(shí)數(shù)unreal-----參數(shù)為限定的復(fù)數(shù)4符號(hào)變量表達(dá)式中的自變量無(wú)逗號(hào)12/10/2022103符號(hào)參數(shù)定義格式:i)symsparapa推薦格式:◆定義符號(hào)變量:syms變量名symsabc◆定義符號(hào)常數(shù):常數(shù)名=sym(‘常數(shù)值’)K=sym(‘2/3’);◆定義符號(hào)常數(shù):表達(dá)式名=sym(‘表達(dá)式’);f=sym(‘a(chǎn)*sin(x)+b’);12/10/202211推薦格式:◆定義符號(hào)變量:syms變量名syms例2.1.1-1符號(hào)對(duì)象的生成a1=[1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)]<1>a2=sym([1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)])<2>a3=sym(‘[1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)]’)<3>a1=0.33330.44882.23613.00005.10005.3777a2=[1/3,pi/7,sqrt(5),3,51/10,q*2^(-50)]a3=[1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)]q=6054707603575008a23=a2-a3a23=[0,0,0,0,0,189209612611719/35184372088832-pi-5^(1/2)]12/10/202212例2.1.1-1符號(hào)對(duì)象的生成a1=[1/3,pi/例5.1.1-2把字符表達(dá)式轉(zhuǎn)換為符號(hào)變量y=sym('2*sin(x)*cos(x)')y=simple(y)
y=sin(2*x)說(shuō)明:1)<1>是數(shù)值常數(shù),<2>是最接近的有理表示,<3>是絕對(duì)準(zhǔn)確的符號(hào)數(shù)值表示2)<2><3>部分元素相同,是因?yàn)?lt;2>中的那幾個(gè)元素是有理表示的基本形式,所以也是絕對(duì)準(zhǔn)確的.3)<3>指令產(chǎn)生的符號(hào)數(shù)值總是絕對(duì)準(zhǔn)確的,因此建議:在產(chǎn)生符號(hào)常量時(shí)應(yīng)優(yōu)先使用這種輸入方式,把數(shù)值放入單引號(hào)對(duì)中,數(shù)組元素間一定要采用逗號(hào)分隔在符號(hào)運(yùn)算中,如果事先沒(méi)有對(duì)表達(dá)式中的獨(dú)立變量進(jìn)行定義,那么系統(tǒng)將自動(dòng)檢查哪些字符是符號(hào)函數(shù),哪些是符號(hào)變量,并且總是把在英文字母表中離x最近的字母認(rèn)做獨(dú)立符號(hào)變量12/10/202213例5.1.1-2把字符表達(dá)式轉(zhuǎn)換為符號(hào)變量y=sym('2例2.1.1-3用符號(hào)計(jì)算驗(yàn)證三角等式symsphi1phi2;y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2));y=sin(phi1-phi2)例2.1.1-4求矩陣的行列式,逆和特征值symsa11a12a21a22;A=[a11,a12;a21,a22];DA=det(A),IA=inv(A),EA=eig(A)A=[a11,a12][a21,a22]DA=a11*a22-a12*a2112/10/202214例2.1.1-3用符號(hào)計(jì)算驗(yàn)證三角等式symsphi1例2.1.1-4驗(yàn)證積分symsAttaow;yf=int(A*exp(-i*w*t),t,-tao/2,tao/2);yf=simple(yf)yf=2*A*sin(1/2*tao*w)/w練習(xí):展開(kāi)sin(4x)(expand)
12/10/202215例2.1.1-4驗(yàn)證積分symsAttaow2.1.2符號(hào)計(jì)算中的算符和基本函數(shù)由于新版matlab采用了重載技術(shù),使得用來(lái)構(gòu)成符號(hào)計(jì)算表達(dá)式的算符和基本函數(shù),無(wú)論在形狀,名稱,還是使用方法上,都與數(shù)值計(jì)算中的算符和基本函數(shù)幾乎完全相同,這給編程帶來(lái)極大的方便.(2)關(guān)系運(yùn)算符在符號(hào)對(duì)象的比較中,沒(méi)有大于,大于等于,小于,小于等于的概念,而只有是否等于的概念.”==““~=“分別用來(lái)對(duì)算符兩邊的對(duì)象進(jìn)行相等和不等的比較,返回為邏輯量(1)基本運(yùn)算符算符”+”,”-”,”*”,”\”,“/”,“^”分別構(gòu)成矩陣的加,減,乘,左除,右除,求冪運(yùn)算.算符”.*”,“./”,“.\”,“.^”分別實(shí)現(xiàn)元素對(duì)元素的數(shù)組乘,除,求冪運(yùn)算.算符”'”,“.'”分別實(shí)現(xiàn)矩陣的共軛轉(zhuǎn)置,非共軛轉(zhuǎn)置12/10/2022162.1.2符號(hào)計(jì)算中的算符和基本函數(shù)由于新版matlab采(4)指數(shù),對(duì)數(shù)函數(shù)函數(shù)sqrt,exp,expm在兩者中用法相同.符號(hào)計(jì)算中只有自然對(duì)數(shù),而沒(méi)有數(shù)值計(jì)算中的log2,log10(5)復(fù)數(shù)函數(shù)conj,imag,real,abs在兩者中用法相同.但在符號(hào)計(jì)算中沒(méi)有求相角的指令.(6)矩陣代數(shù)指令在符號(hào)計(jì)算中,matlab提供的常用矩陣代數(shù)指令有:diag,triu,tril,inv,det,rank,rref,null,colspace,expm,poly,eig,svd(3)三角函數(shù),雙曲線函數(shù)以及他們的反函數(shù)除atan2只能用于數(shù)值計(jì)算外,另外的在兩種運(yùn)算中使用方法相同.12/10/202217(4)指數(shù),對(duì)數(shù)函數(shù)(5)復(fù)數(shù)函數(shù)(6)矩陣代數(shù)指令(數(shù)值計(jì)算對(duì)象,符號(hào)計(jì)算對(duì)象,字符串是MATALB中最常用的數(shù)據(jù)對(duì)象.他們遵循各自不同的運(yùn)算法則,但有時(shí)在外形上卻十分相似.MATLAB提供了一些識(shí)別不同數(shù)據(jù)對(duì)象的指令,常用的有class,isa,whos例2.1.3-1數(shù)據(jù)對(duì)象及其識(shí)別指令的使用(1)生成三種不同類型的矩陣,給出不同的顯示形式clear,a=1;b=2;c=3;d=4%產(chǎn)生四個(gè)數(shù)值變量Mn=[a,b,c,d]%利用已賦值變量構(gòu)成數(shù)值矩陣Mc=‘[a,b,c,d]’%字符串中的a,b,c,d與前面輸入的數(shù)值變量無(wú)關(guān)Ms=sym(Mc)%符號(hào)變量,與前面的各變量無(wú)關(guān)Mn=1234Mc=[a,b;c,d]Ms=[a,b][c,d]2.1.3對(duì)象類別的識(shí)別12/10/202218數(shù)值計(jì)算對(duì)象,符號(hào)計(jì)算對(duì)象,字符串是MATALB中最常用的數(shù)(2)三個(gè)矩陣的大小不同SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms)SizeMn=22SizeMc=19SizeMs=22(3)用class獲得每種矩陣的類別CMn=class(Mn),CMc=class(Mc),CMs=class(Ms)CMn=doubleCMc=charCMs=sym(4)用isa判斷每種矩陣的類別isa(Mn,‘double’),isa(Mc,'char'),isa(Ms,'sym')ans=1ans=1ans=112/10/202219(2)三個(gè)矩陣的大小不同SizeMn=size(Mn),(5)利用whos觀察內(nèi)存變量的類別和其他屬性
NameSizeBytesClassMc1x918chararrayMn2x232doublearrayMs2x2312symobjecta=0:1:6;theta=sym('30*pi/180*a')alfa=sym('30*pi/180')*atheta=30*pi/180*aalfa=[0,1/6*pi,1/3*pi,1/2*pi,2/3*pi,5/6*pi,pi]a與數(shù)組a無(wú)關(guān)12/10/202220(5)利用whos觀察內(nèi)存變量的類別和其他屬性Name2.1.4符號(hào)表達(dá)式中自由變量的確定findsym(expr)---確認(rèn)表達(dá)式expr中所有自由符號(hào)變量findsym(expr,n)---從expr中確認(rèn)出靠x最近的n個(gè)獨(dú)立自變量例2.1.4-1對(duì)獨(dú)立自由符號(hào)變量的自動(dòng)辨認(rèn)(1)生成符號(hào)變量symsabxXY;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');expr=a*z*X+(b*x^2+k)*Y;(2)找出expr中的全部自由符號(hào)變量findsym(expr)ans=X,Y,a,b,c,delta,theta,x,y12/10/2022212.1.4符號(hào)表達(dá)式中自由變量的確定findsym(exp(3)從expr中確定1,2,3個(gè)自由變量findsym(expr,1),findsym(expr,2),findsym(expr,3)ans=xans=x,yans=x,y,thetafindsym確認(rèn)的是表達(dá)式中的”自由”,”獨(dú)立”的符號(hào)變量,由于k不是自由的,z不是獨(dú)立的,所以該指令不將其作為自由變量。該指令把expr表達(dá)式中n個(gè)最靠近x的自由符號(hào)變量確認(rèn)為“獨(dú)立自由變量”,并且認(rèn)為大寫字母離x的距離總大于所有小寫字母離x的距離.作用:在符號(hào)函數(shù)調(diào)用中,當(dāng)沒(méi)有明確指定所針對(duì)的變量時(shí),系統(tǒng)自動(dòng)確定所操作的自由變量12/10/202222(3)從expr中確定1,2,3個(gè)自由變量findsym(2.2符號(hào)對(duì)象的操作與轉(zhuǎn)換2.2.1符號(hào)表達(dá)式的操作collect合并同類項(xiàng)numden提取公因式expand展開(kāi)指定項(xiàng)simplify恒等式簡(jiǎn)化factor因式分解pretty習(xí)慣方式顯示horner轉(zhuǎn)換為嵌套形式simple簡(jiǎn)化例2.2.1-1簡(jiǎn)化symx;f=(1/x^3+6/x^2+12/x+8)^(1/3);g1=simple(f)g2=sinple(g1)g1=(2*x+1)/xg2=2+1/x驗(yàn)證:f2=g2^3;expand(f2)12/10/2022232.2符號(hào)對(duì)象的操作與轉(zhuǎn)換2.2.1符號(hào)表達(dá)式的操作co例2.2.1-2因式分解9876542fx=sym('9876542');factor(fx)ans=(2)*(13)*(19)*(19993)
例2.2.1-3因式分解x12-1symsx;f=x^12-1;factor(f)例2.2.1-4pretty,horner的使用symsx;f=exp(-x);f1=taylor(f);pretty(f1)fh=horner(f1)ans=(x-1)*(x^2+x+1)*(x+1)*(1-x+x^2)*(x^2+1)*(x^4-x^2+1)12/10/202224例2.2.1-2因式分解9876542fx=sym('9f1=1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5
23451-x+1/2x-1/6x+1/24x-1/120x
fh=1+(-1+(1/2+(-1/6+(1/24-1/120*x)*x)*x)*x)*xexpand的使用symsxy;f=sin(x+y)u=expand(f)f=
sin(x+y)u=
sin(x)*cos(y)+cos(x)*sin(y)12/10/202225f1=1-x+1/2*x^2-1/6*x^3+1/24*x^2.2.2置換操作作用:把復(fù)雜表達(dá)式中所含的多個(gè)相同子表達(dá)式用一個(gè)符號(hào)代替,使表達(dá)簡(jiǎn)潔[RS,ssub]=subexpr(S,ssub)---運(yùn)用符號(hào)變量ssub置換子表達(dá)式,重寫S為RS例2.2.2-1表達(dá)式置換symsabcdW;[V,D]=eig([a,b;c,d]);[RVD,W]=subexpr([V;D],W)說(shuō)明:被置換的子表達(dá)式是機(jī)器自動(dòng)尋找的,置換原則為,只有比較長(zhǎng)的子表達(dá)式才被置換,比較短的子表達(dá)式,即使出現(xiàn)多次,也不被置換.1)子表達(dá)式置換操作指令格式:12/10/2022262.2.2置換操作作用:把復(fù)雜表達(dá)式中所含的多個(gè)相同子表達(dá)2)通用置換指令RES=subs(ES,old,new)---用new置換ES中的old后產(chǎn)生RESRES=subs(ES,new)---用new置換ES中的自由變量后產(chǎn)生RES例2.2.2-2subs置換規(guī)則示例(1)產(chǎn)生符號(hào)函數(shù)symsax;f=a*sin(x)+5;(2)符號(hào)變量置換f1=subs(f,'sin(x)',sym('y'))(3)符號(hào)常數(shù)置換f2=subs(f,{a,x},{2,sym(pi/3)})f1=a*y+5a=2x=pi/3,符號(hào)數(shù)字f2=3^(1/2)+5double(f2)代值12/10/2022272)通用置換指令RES=subs(ES,old,new(4)雙精度數(shù)值轉(zhuǎn)換(所有自由變量被雙精度數(shù)值取代)自定義函數(shù)的賦值f3=subs(f,[a,x],[2,pi/3])f3=6.7321(5)數(shù)值數(shù)組置換一(取a=2,x=0:pi/6:pi)f4=subs(subs(f,a,2),x,0:pi/6:pi)f4=5.006.006.737.006.736.005.00(6)數(shù)值數(shù)組置換二(取a=0:6,x=0:pi/6:pi)f5=subs(f,{a,x},{0:6,0:pi/6:pi})f5=5.005.506.738.008.467.505.0012/10/202228(4)雙精度數(shù)值轉(zhuǎn)換(所有自由變量被雙精度數(shù)值取代)自定f6=subs(f,[a,x],{0:6,0:pi/6:pi})f6=5.005.506.738.008.467.505.00比較:f7=subs(f,[a,x],[2,pi/6])f8=subs(f,[a,x],[2,sym(pi/6)])6.732050807568883^(1/2)+5●subs指令的屬性取決于new的屬性,當(dāng)new中全部為數(shù)值數(shù)字時(shí),所得結(jié)果為雙精度數(shù)據(jù),當(dāng)new中有符號(hào)數(shù)字時(shí),所得結(jié)果也為字符數(shù)字?!駈ew可以是數(shù)組【說(shuō)明】12/10/202229f6=subs(f,[a,x],{0:6,0:pi/求n^0.5(n=1,2,….10)之值symsx;f=sqrt(x);res=subs(f,x,[1:1:10])?思考:如何求f=a*n^0.5+b(其中(a=2,3,4…11,n=1,2,3,…10,b=0.1,0.2,0.3,…1))的值12/10/202230求n^0.5(n=1,2,….10)之值symsx;?例2.2.2-2猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè),第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。
symsr;f=2*(r+1);u=f;fork=1:1:8u=subs(f,r,u);endtotal=subs(u,r,1)u=512*r+1022total=1534a(1)=1534;%驗(yàn)算fork=2:1:10a(k)=a(k-1)/2-1;end12/10/202231例2.2.2-2猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)2.2.3符號(hào)數(shù)值精度控制和任意精度的計(jì)算數(shù)值計(jì)算受計(jì)算機(jī)字長(zhǎng)的限制,每次數(shù)值操作都帶有截?cái)嗾`差,因此任何數(shù)值計(jì)算不管采用什么算法都將產(chǎn)生積累誤差.在matlab中,每個(gè)算術(shù)操作結(jié)果的相對(duì)精度約為16位數(shù)字.但是符號(hào)計(jì)算的結(jié)果是絕對(duì)準(zhǔn)確的,不包含任何計(jì)算誤差.符號(hào)計(jì)算中與數(shù)值精度計(jì)算有關(guān)的指令有:double(x)---把符號(hào)常數(shù)轉(zhuǎn)化為16位相對(duì)精度的浮點(diǎn)數(shù)值對(duì)象digits(n)---設(shè)置以后的數(shù)值計(jì)算以n位相對(duì)精度進(jìn)行xs=vpa(x)---在digits指定精度下,給出x的數(shù)值型符號(hào)結(jié)果xsxs=vpa(x,n)---在n位相對(duì)精度下,給出x的數(shù)值型符號(hào)結(jié)果xs12/10/2022322.2.3符號(hào)數(shù)值精度控制和任意精度的計(jì)算數(shù)值計(jì)算受計(jì)算機(jī)說(shuō)明:●double指令運(yùn)作所得結(jié)果一定是雙精度數(shù)值對(duì)象●除了vpa(x,n)對(duì)特定符號(hào)對(duì)象指定具體精度外,所有vpa(x)的精度都受到其前面的digits指令控制,digits指令缺省精度為32位●x可以是符號(hào)對(duì)象或數(shù)值對(duì)象,但運(yùn)行后所得結(jié)果xs一定是符號(hào)對(duì)象12/10/202233說(shuō)明:12/10/2022332.2.4符號(hào)對(duì)象與其他數(shù)據(jù)對(duì)象間的轉(zhuǎn)換數(shù)值,符號(hào),字符是matlab中三種不同的數(shù)據(jù)類型,matlab為每種數(shù)據(jù)類型提供了各自特定的生成指令和操作指令.為實(shí)現(xiàn)不同數(shù)據(jù)類型間的交互,matlab提供了一系列的轉(zhuǎn)換指令.
數(shù)值型符號(hào)結(jié)果符號(hào)常數(shù)數(shù)值符號(hào)量(表達(dá)式)字符串(表達(dá)式)
ASCII碼vpadoublevpasymdoublestr2num,str2double,sscanfint2str,num2str,mat2strcharsymcharabsdouble12/10/2022342.2.4符號(hào)對(duì)象與其他數(shù)據(jù)對(duì)象間的轉(zhuǎn)換數(shù)值,符號(hào),字符是數(shù)值數(shù)字和符號(hào)數(shù)字之間的相互轉(zhuǎn)換1)數(shù)值數(shù)字符號(hào)數(shù)字sk=sym(num,'flag')flag:r----數(shù)值類數(shù)字的廣義有理表達(dá)d---十進(jìn)制浮點(diǎn)近似表達(dá)e---帶誤差的理性近似表達(dá)f---十六進(jìn)制浮點(diǎn)近似表達(dá)PI=sym(pi,'r');PI=pi注意:在符號(hào)運(yùn)算中,數(shù)值類數(shù)字會(huì)自動(dòng)轉(zhuǎn)換為符號(hào)數(shù)字symst;y=1/3*sin(t)+2/4y=1/3*sin(t)+1/2sk=sym('num')sk=sym(num)12/10/202235數(shù)值數(shù)字和符號(hào)數(shù)字之間的相互轉(zhuǎn)換1)數(shù)值數(shù)字符號(hào)數(shù)字sPI=sym(pi,'d');PI=3.14159265358979311599796346854422)符號(hào)數(shù)字?jǐn)?shù)值數(shù)字double(num_sym)PI=sym('pi');double(PI)ans=3.141612/10/202236PI=sym(pi,'d');PI=2)符號(hào)數(shù)字?jǐn)?shù)值2.2.5符號(hào)表達(dá)式的復(fù)合函數(shù)和反函數(shù)1)復(fù)合函數(shù)運(yùn)算●compose(f,g)---返回復(fù)合函數(shù)f(g(y)),這里f=f(x),g=g(y)●compose(f,g,z)---返回自變量為z的復(fù)合函數(shù)f(g(z)),這里2)反函數(shù)●g=finverse(f)---返回符號(hào)函數(shù)f的反函數(shù)g,滿足g(f(x))=x●g=finverse(f,v)---返回自變量為v的符號(hào)函數(shù)f的反函數(shù)使得f=f(x),g=g(y)g(f(v))=v,當(dāng)f包含不止一個(gè)符號(hào)變量時(shí),使用這種格式.12/10/2022372.2.5符號(hào)表達(dá)式的復(fù)合函數(shù)和反函數(shù)1)復(fù)合函數(shù)運(yùn)算●例2.2.5-1復(fù)合函數(shù)和反函數(shù)示例symsxy;f=1/x^3;g=tan(y);fg=compose(f,g)fin=finverse(fg)fg=1/tan(y)^3fin=atan(1/y^(1/3))12/10/202238例2.2.5-1復(fù)合函數(shù)和反函數(shù)示例symsxy;fg2.3符號(hào)微積分1)符號(hào)極限limit(F,x,a)---計(jì)算F在xa時(shí)的極限limit(F,x,a,'left/right')---計(jì)算左/右極限例5.3-1極限示例symsx;f=3/(x^2+6);val1=limit(f,x,inf)val2=limit(f,x,0)val1=0val2=1/212/10/2022392.3符號(hào)微積分1)符號(hào)極限limit(F,x,a)--例已知f(x)=sin(|x|),求f'x(0),f'x(x)f(x)=sin(|x|)曲線圖12/10/202240例已知f(x)=sin(|x|),求f'x(0),symsx;symsdxpositive;x0=sym('0');f_p=sin(x);df_p=limit((subs(f_p,x,x+dx)-f_p)/dx,dx,0)df_p0=limit((sin(x0+dx)-sin(x0))/dx,dx,0)數(shù)學(xué)分析:f(x)=sin(|x|)12/10/202241symsx;數(shù)學(xué)分析:f(x)=sin(|x|)12繪圖要繪制原函數(shù)在x>0時(shí)的導(dǎo)函數(shù)曲線,應(yīng)先將導(dǎo)函數(shù)離散化,采用通用置換指令進(jìn)行離散化deltx=pi/200;xx=0:deltx:2*pi;y=subs(df_p,x,xx);plot(xx,y);12/10/202242繪圖要繪制原函數(shù)在x>0時(shí)的導(dǎo)函數(shù)曲線,應(yīng)先將導(dǎo)函數(shù)離散化,2)符號(hào)序列求和對(duì)于數(shù)學(xué)上的求和可用matlab的求和指令解決.其指令為:s=symsum(f,v,a,b)---求通式f字指定變量v取遍[a,b]中所有整數(shù)時(shí)的和.說(shuō)明:●f是矩陣時(shí),對(duì)矩陣的元素逐個(gè)求和,但自變量定義在整個(gè)矩陣上●v缺省時(shí)f中的自變量由findsym自動(dòng)辨認(rèn);b可以取有限整數(shù),也可以取無(wú)窮大inf●a,b可同時(shí)缺省,此時(shí)默認(rèn)求和的自變量區(qū)間為[0,v-1]12/10/2022432)符號(hào)序列求和對(duì)于數(shù)學(xué)上的求和可用matlab的求和指令例2.3-2求symsn;f=[n^2,1/n^2];s1=symsum(f(1),1,100)s2=symsum(f(2),1,inf)s1=338350s2=1/6*pi^212/10/202244例2.3-2求symsn;s1=12/10/20224例2.3-3求symskt;f1=[t,k^3];f2=[1/(2*k-1)^2,(-1)^k/k];s1=simple(symsum(f1));s2=simple(symsum(f2,1,inf))3)符號(hào)微分和Jacobian矩陣求導(dǎo)數(shù),高階導(dǎo)數(shù),偏導(dǎo)數(shù)和多元向量函數(shù)的Jacobian矩陣是數(shù)學(xué)分析的重要內(nèi)容,有機(jī)器實(shí)現(xiàn)求導(dǎo)的指令有:dfdvn=diff(f,v,n)--->求fjac=jacobian(f,v)--->求多元向量函數(shù)的Jacobian矩陣12/10/202245例2.3-3求symskt;3)符號(hào)微分和Jaco●f是矩陣時(shí),求導(dǎo)對(duì)矩陣的元素逐個(gè)進(jìn)行,但自變量定義在整個(gè)矩陣上.●v缺省時(shí),自變量會(huì)自動(dòng)由findsym確認(rèn),n缺省時(shí),默認(rèn)n=1●在數(shù)值計(jì)算中,指令diff是用來(lái)求差分的.●如f的Jacobian矩陣為說(shuō)明:12/10/202246●f是矩陣時(shí),求導(dǎo)對(duì)矩陣的元素逐個(gè)進(jìn)行,但自變量定義在整個(gè)例2.3-4求symsatx;f=[a,t^3;t*cos(x),log(x)];df=diff(f),dfdt2=diff(f,t,2),dfdxdt=diff(diff(f,x),t)12/10/202247例2.3-4求symsatx;12/10/202244)符號(hào)積分與數(shù)值積分相比,符號(hào)積分指令簡(jiǎn)單,適應(yīng)性強(qiáng),但可能占用機(jī)器時(shí)間很長(zhǎng).intf=int(f,v)--->f對(duì)v的不定積分intf=int(f,v,a,b)--->f對(duì)v的定積分說(shuō)明:●當(dāng)f是矩陣時(shí),積分對(duì)矩陣的元素逐個(gè)進(jìn)行●v缺省時(shí),積分對(duì)findsym確認(rèn)的變量進(jìn)行●a,b分別是積分的上下限.例2.3-5求symsabx;f=[a*x,b*x^2;1/x,sin(x)];int(f)12/10/2022484)符號(hào)積分與數(shù)值積分相比,符號(hào)積分指令簡(jiǎn)單,適應(yīng)性強(qiáng),但例2.3-6求積分symsxyz;f=x^2+y^2+z^2;s=int(int(int(f,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2)第一重積分第二重積分12/10/202249例2.3-6求積分symsxyz;第一重積分第ft=ilaplace(Fs,s,t)--->求頻域函數(shù)Fs的Laplace反變換ftFZ=ztrans(fn,n,z)--->求時(shí)域系列fn的Z變換FZfn=iztrans(FZ,z,n)--->求頻域系列FZ的Z變換fn5)符號(hào)積分變換傅立葉變換,拉普拉斯變換,Z變換在信號(hào)處理和系統(tǒng)動(dòng)態(tài)特性研究中起著重要作用.Fw=fourier(ft,t,w)--->求時(shí)域函數(shù)ft的傅立葉變換Fwft=ifourier(Fw,w,t)--->求頻域函數(shù)Fw的傅立葉反變換ftFs=laplace(ft,t,s)--->求時(shí)域函數(shù)ft的Laplace變換Fs12/10/202250ft=ilaplace(Fs,s,t)--->求頻域函數(shù)symsAttaoxw;Fw1=int(A*exp(-i*w*t),t,-tao/2,tao/2);Fw1=simple(Fw1)ft=exp(x-t)*exp(-i*w*t);Fw2=int(ft,t,x,inf)%被積變量不能省略12/10/202251symsAttaoxw;12/10/2022.4符號(hào)代數(shù)方程求解1)線性方程組的符號(hào)解矩陣計(jì)算是求解線性方程組最簡(jiǎn)單有效的方法,在matlab中,不管數(shù)據(jù)對(duì)象是數(shù)值還是符號(hào),實(shí)現(xiàn)矩陣運(yùn)算的指令形式幾乎完全相同.例2.4-1求:d+n/2+p/2=q,n+d+q-p=10,q+d-n/4=p,q+p-n-8d=1線性方程組的解A=sym([1,1/2,1/2,-1;1,1,-1,1;1,-1/4,-1,1;-8,-1,1,1]);b=sym([0;10;0;1])x=A\b12/10/2022522.4符號(hào)代數(shù)方程求解1)線性方程組的符號(hào)解矩陣計(jì)算是求2)一般代數(shù)方程組的解這里所講的一般代數(shù)方程包括線性,非線性和超越方程等,求解指令為solve.S=solve('
eq1','
eq2',…,‘eqn’,‘v1’,‘v2’,…,’vn’)--->方程組指定變量的解(推薦格式)S=solve(exp1,exp2,…,expn,v1,v2,…,vn)--->方程組指定變量的解(可用格式)12/10/2022532)一般代數(shù)方程組的解這里所講的一般代數(shù)方程包括線性,非線說(shuō)明:●‘eq1’,‘eq2’,…,‘eqn’或是字符串表達(dá)的方程,或是字符串表達(dá)式.‘v1’,‘v2’,…,’vn’是字符串表達(dá)的求解變量名.●exp1,exp2,…,expn只能是符號(hào)表達(dá)式.v1,v2,…,vn是求解的符號(hào)變量.●如eq1,eq2,…,eqn是不含等號(hào)的表達(dá)式,則指令是對(duì)eq1=0,
eq2=0,…,eqn=0求解.●S是一個(gè)結(jié)構(gòu)數(shù)組,如要顯示求解結(jié)果,必須采用S.V1,S.V2,…,S.Vn的援引方式.12/10/202254說(shuō)明:12/10/202254例2.4-1求(x+2)x=2的解symsx;S=solve('(x+2)^x=2','x')解方程組:x+sin(y)=3/2x*sin(y)=1/2S=solve('x+sin(y)=3/2','x*sin(y)=1/2');S.x=[1][1/2]S.y=[1/6*pi][1/2*pi]12/10/202255例2.4-1求(x+2)x=2的解symsx;解方程組:2.5符號(hào)微分方程求解S=dsolve(‘eqn1’,‘eqn2’,…)--->符號(hào)微分方程組求解指令格式.說(shuō)明:●輸入宗量包括三部分內(nèi)容:微分方程,初始條件,指定獨(dú)立變量.其中微分方程是必不可少的.其余可以沒(méi)有.●對(duì)于獨(dú)立變量,若要指定獨(dú)立變量,總是由全部輸入宗量的最后一個(gè)指令,默認(rèn)的獨(dú)立變量是t●字母D代表微分算子,即d/dt,D2代表d^2/dt^2,dny代表對(duì)y(t)的n階微分.●初始條件可以寫成格式:y(a)=b,Dy(c)=d,在解中可以出現(xiàn)任意常數(shù)符C1,C2等.●輸出S為結(jié)構(gòu)對(duì)象.12/10/2022562.5符號(hào)微分方程求解S=dsolve(‘eqn1’,‘例2.5-1求dx/dt=y,dy/dt=-x的解S=dsolve(‘Dx=y,Dy=-x’);disp([blanks(12),‘x’,blanks(21),‘y’],disp([S.x,S.y])
xy[cos(t)*C1+sin(t)*C2,-sin(t)*C1+cos(t)*C2]12/10/202257例2.5-1求dx/dt=y,dy/dt=-x的解S=d2.6符號(hào)函數(shù)畫圖ezplot(f)-->在默認(rèn)區(qū)間(-2pi,2pi)繪制f=f(x)的函數(shù)圖.ezplot(f,[a,b])-->在區(qū)間(a,b)繪制f=f(x)的函數(shù)圖.fplot(fun,lims)-->繪制fun函數(shù)在區(qū)間lims=[xmin,xmax]的圖形例2.6-1ezplot繪圖示例ezplot('4*cos(t)','3*sin(t)')ezplot('x^2+y^2-4')ezplot('x^3-10*x',[0,10])12/10/2022582.6符號(hào)函數(shù)畫圖ezplot(f)-->在默認(rèn)區(qū)間(-22.7圖形化函數(shù)計(jì)算器在matlab命令窗中輸入funtool,即可進(jìn)入圖形化符號(hào)函數(shù)計(jì)算器.2.8maple接口本章前幾節(jié)僅介紹了符號(hào)計(jì)算的最基本內(nèi)容,它們只涉及用簡(jiǎn)單的幾條指令在單一的符號(hào)計(jì)算范圍內(nèi)所解決的問(wèn)題.事實(shí)上,用戶還會(huì)遇到混合使用符號(hào)計(jì)算和數(shù)值計(jì)算的問(wèn)題,也會(huì)遇到使用maple深層資源的問(wèn)題.matlab提供了五個(gè)與maple交互的指令:mfun--->對(duì)maple中若干經(jīng)典特殊函數(shù)實(shí)施數(shù)值計(jì)算12/10/2022592.7圖形化函數(shù)計(jì)算器在matlab命令窗中輸入funtomfunlist--->能被mfun計(jì)算的maple經(jīng)典特殊函數(shù)列表.mhelp--->查閱maple中的庫(kù)函數(shù)及其調(diào)用方法.maple--->進(jìn)入maple工作空間計(jì)算,結(jié)果送回matlab工作空間.procread--->把按maple格式寫的源程序讀入maple工作空間.maple命令在matlab環(huán)境下,為了實(shí)現(xiàn)maple絕大多數(shù)的符號(hào)計(jì)算命令的調(diào)用,符號(hào)計(jì)算工具箱提供了一個(gè)通用的命令maple,它的調(diào)用格式為:maple(statement)--->statement為一完整的maple語(yǔ)法的可執(zhí)行語(yǔ)句的字符串.輸出結(jié)果也是maple語(yǔ)法的字符串2)maple(‘fun’,arg1,arg2,…)--->fun為輸入函數(shù)名,arg1,arg2為輸入此函數(shù)中的變量.且fun(arg1,arg2,…)構(gòu)成maple語(yǔ)法的執(zhí)行語(yǔ)句.個(gè)變量必須以字符串的形式輸入,輸出結(jié)果也是符合maple語(yǔ)法的字符串.如要使它成為matlab符號(hào)變量環(huán)境下的有效語(yǔ)句,可用sym進(jìn)行轉(zhuǎn)換.12/10/202260mfunlist--->能被mfun計(jì)算的maple經(jīng)典特殊例2.8-1計(jì)算遞推方程f(n)=-3f(n-1)-2f(n-2)的通解maple(‘rsolve’,‘f(n)=-3*f(n-1)-2*f(n-2),’f(k)’)說(shuō)明:在matlab符號(hào)計(jì)算工具箱中沒(méi)有提供求解遞推方程的專用函數(shù),因此,用戶必須調(diào)用maple函數(shù)與maple庫(kù)函數(shù)接口.再調(diào)用maple的rsolve來(lái)解決此遞推方程.從而使matlab的符號(hào)計(jì)算的功能得到了擴(kuò)充.12/10/202261例2.8-1計(jì)算遞推方程f(n)=-3f(n-1)-2f(第二章符號(hào)計(jì)算12/10/202262第二章符號(hào)計(jì)算12/10/20221符號(hào)計(jì)算功能matlab自產(chǎn)生起就在數(shù)值計(jì)算上功能卓著,深受各專業(yè)計(jì)算人員的歡迎.但由于在數(shù)學(xué),物理等各種科研和工程應(yīng)用中經(jīng)常會(huì)遇到符號(hào)運(yùn)算的問(wèn)題.為此,公司于1993年購(gòu)買了Maple軟件的使用權(quán),并在此基礎(chǔ)上,開(kāi)發(fā)了符號(hào)計(jì)算工具箱(SymbolicToolbox)MATLAB中實(shí)現(xiàn)符號(hào)計(jì)算功能的三種途徑1)調(diào)用matlab自己開(kāi)發(fā)的各種功能函數(shù)進(jìn)行常用的符號(hào)運(yùn)算.包括符號(hào)表達(dá)式與符號(hào)矩陣的基本操作,符號(hào)矩陣的運(yùn)算,符號(hào)微積分,符號(hào)線性方程求解,符號(hào)微分方程求解等.2)為了特殊專業(yè)人員提供方便,matlab還保留mpa.m和maple.m兩個(gè)函數(shù)與Maple接口.3)符號(hào)函數(shù)計(jì)算器功能.12/10/202263符號(hào)計(jì)算功能matlab自產(chǎn)生起就在數(shù)值計(jì)算上功能卓著,深受符號(hào)運(yùn)算與數(shù)值運(yùn)算的區(qū)別:符號(hào)運(yùn)算中,解算數(shù)學(xué)表達(dá)式、方程時(shí),不是在離散化的數(shù)值點(diǎn)上進(jìn)行,而是憑借一系列恒等式和數(shù)學(xué)定理,通過(guò)推理和演繹,獲得解析結(jié)果。這種計(jì)算建立在數(shù)值完全準(zhǔn)確表達(dá)和推演嚴(yán)格解析的基礎(chǔ)上,所得結(jié)果是完全準(zhǔn)確的。符號(hào)運(yùn)算----代數(shù)運(yùn)算,公式推導(dǎo)數(shù)值運(yùn)算---算術(shù)運(yùn)算代值12/10/202264符號(hào)運(yùn)算與數(shù)值運(yùn)算的區(qū)別:符號(hào)運(yùn)算中,解算數(shù)學(xué)表達(dá)式、方程時(shí)2.1符號(hào)對(duì)象和符號(hào)表達(dá)式在matlab中,數(shù)值和數(shù)值變量用于數(shù)值的存儲(chǔ)和各種數(shù)值計(jì)算.而符號(hào)常量,符號(hào)變量,符號(hào)函數(shù),符號(hào)操作等則是用來(lái)形成符號(hào)表達(dá)式,嚴(yán)格按照代數(shù),微積分等課程中的規(guī)則,公式進(jìn)行運(yùn)算,并盡可能給出解析表達(dá)式.2.1.1符號(hào)對(duì)象的生成和使用●
數(shù)值計(jì)算---變量先賦值,再使用.●
符號(hào)計(jì)算---先定義基本的符號(hào)對(duì)象(可以是常量,變量,表達(dá)式),然后用這些基本符號(hào)對(duì)象去構(gòu)成新的表達(dá)式,再進(jìn)行所需的符號(hào)運(yùn)算.12/10/2022652.1符號(hào)對(duì)象和符號(hào)表達(dá)式在matlab中,數(shù)值和數(shù)值變量符號(hào)對(duì)象的創(chuàng)建和衍生1.生成符號(hào)對(duì)象的基本規(guī)則①任何基本符號(hào)對(duì)象(數(shù)字、參數(shù)、變量、表達(dá)式)都必須借助專門的符號(hào)函數(shù)指令sym或syms定義。②任何包含符號(hào)對(duì)象的表達(dá)式或方程,將繼承符號(hào)對(duì)象的屬性。即任何包含符號(hào)對(duì)象的表達(dá)式、方程也一定是符號(hào)對(duì)象。12/10/202266符號(hào)對(duì)象的創(chuàng)建和衍生1.生成符號(hào)對(duì)象的基本規(guī)則①任何基本符號(hào)對(duì)象的定義:f=sym(arg)---把數(shù)字,字符串或表達(dá)式arg轉(zhuǎn)為符號(hào)對(duì)象f=sym(argn,flagn)---把數(shù)值或數(shù)值表達(dá)式轉(zhuǎn)換為flagn格式的符號(hào)對(duì)象f=sym(1/2),s=sym(1/3),y=sym(pi),a=sym('b*c')f=1/2,s=1/3,y=pi,a=b*cf=sym(1/2,'d'),s=sym(1/3,'d'),y=sym(pi,'d')f=sym(1/2,'r')=sym(1/2)f=.50000000000000000000000000000000s=.3333333333333333148296162562473912/10/202267符號(hào)對(duì)象的定義:f=sym(arg)---把數(shù)字,字符串或表syms(‘a(chǎn)rgv1’,‘a(chǎn)rgv2’,‘a(chǎn)rgvk’)---把字符argv1,argv2,argvk定義為基本符號(hào)對(duì)象symsargv1argv2argvk---上述格式的簡(jiǎn)潔形式,各符號(hào)對(duì)象間不得有逗號(hào)argv=sym(‘a(chǎn)rgv’,flagv)---按flagv指定的要求把字符串‘a(chǎn)rgv’定義為符號(hào)對(duì)象argvf=sym('pi'),s=sym('2*pi+sin(60*pi*180)+exp(2)')f=pi,s=2*pi+sin(60*pi*180)+exp(2)syms('a','b','c')a=a,b=b,c=csymsabca=a,b=b,c=c只能定義符號(hào)變量12/10/202268syms(‘a(chǎn)rgv1’,‘a(chǎn)rgv2’,‘a(chǎn)rgvk’說(shuō)明:?f=sym(argn,flagn)中的argn是數(shù)值或數(shù)值表達(dá)式時(shí),flagn可選:‘d’---最接近的十進(jìn)制浮點(diǎn)精確表示.‘r’---最接近的有理表示,缺省選項(xiàng).有理是指用兩個(gè)正整數(shù)p,q構(gòu)成的p/q,p*pi/q,sqrt(p),2^q,10^q的形式之一.?argv=sym(‘a(chǎn)rgv’,flagv)中的‘a(chǎn)rgv’是字符時(shí),flagv可取限定選項(xiàng)‘positive’---限定argv是“正,實(shí)”符號(hào)變量‘real’---限定argv是“實(shí)”符號(hào)變量.‘unreal’---argv是非實(shí)符號(hào)變量.12/10/202269說(shuō)明:12/10/202282符號(hào)數(shù)字的定義格式:sc=sym('num')
%sc為值為num的符號(hào)數(shù)字注意:i)單引號(hào)必須在英文狀態(tài)下輸入,構(gòu)成字符串ii)num為一個(gè)具體的數(shù)字如:
sc=sym(‘2/3')sb=sym('pi+sqrt(5)')sc=2/3sb=pi+sqrt(5)12/10/2022702符號(hào)數(shù)字的定義格式:sc=sym('num')3符號(hào)參數(shù)定義格式:i)symsparapara=sym('para')
symsa;a=sym('a')ii)symsparaflagpara=sym('para','flag')
symsapositive;a=sym('a','positive')iii)symsabcsymsabcflagflag為參數(shù)屬性:positive----參數(shù)取正實(shí)數(shù)real-----參數(shù)為實(shí)數(shù)unreal-----參數(shù)為限定的復(fù)數(shù)4符號(hào)變量表達(dá)式中的自變量無(wú)逗號(hào)12/10/2022713符號(hào)參數(shù)定義格式:i)symsparapa推薦格式:◆定義符號(hào)變量:syms變量名symsabc◆定義符號(hào)常數(shù):常數(shù)名=sym(‘常數(shù)值’)K=sym(‘2/3’);◆定義符號(hào)常數(shù):表達(dá)式名=sym(‘表達(dá)式’);f=sym(‘a(chǎn)*sin(x)+b’);12/10/202272推薦格式:◆定義符號(hào)變量:syms變量名syms例2.1.1-1符號(hào)對(duì)象的生成a1=[1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)]<1>a2=sym([1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)])<2>a3=sym(‘[1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)]’)<3>a1=0.33330.44882.23613.00005.10005.3777a2=[1/3,pi/7,sqrt(5),3,51/10,q*2^(-50)]a3=[1/3,pi/7,sqrt(5),sqrt(9),5.1,pi+sqrt(5)]q=6054707603575008a23=a2-a3a23=[0,0,0,0,0,189209612611719/35184372088832-pi-5^(1/2)]12/10/202273例2.1.1-1符號(hào)對(duì)象的生成a1=[1/3,pi/例5.1.1-2把字符表達(dá)式轉(zhuǎn)換為符號(hào)變量y=sym('2*sin(x)*cos(x)')y=simple(y)
y=sin(2*x)說(shuō)明:1)<1>是數(shù)值常數(shù),<2>是最接近的有理表示,<3>是絕對(duì)準(zhǔn)確的符號(hào)數(shù)值表示2)<2><3>部分元素相同,是因?yàn)?lt;2>中的那幾個(gè)元素是有理表示的基本形式,所以也是絕對(duì)準(zhǔn)確的.3)<3>指令產(chǎn)生的符號(hào)數(shù)值總是絕對(duì)準(zhǔn)確的,因此建議:在產(chǎn)生符號(hào)常量時(shí)應(yīng)優(yōu)先使用這種輸入方式,把數(shù)值放入單引號(hào)對(duì)中,數(shù)組元素間一定要采用逗號(hào)分隔在符號(hào)運(yùn)算中,如果事先沒(méi)有對(duì)表達(dá)式中的獨(dú)立變量進(jìn)行定義,那么系統(tǒng)將自動(dòng)檢查哪些字符是符號(hào)函數(shù),哪些是符號(hào)變量,并且總是把在英文字母表中離x最近的字母認(rèn)做獨(dú)立符號(hào)變量12/10/202274例5.1.1-2把字符表達(dá)式轉(zhuǎn)換為符號(hào)變量y=sym('2例2.1.1-3用符號(hào)計(jì)算驗(yàn)證三角等式symsphi1phi2;y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2));y=sin(phi1-phi2)例2.1.1-4求矩陣的行列式,逆和特征值symsa11a12a21a22;A=[a11,a12;a21,a22];DA=det(A),IA=inv(A),EA=eig(A)A=[a11,a12][a21,a22]DA=a11*a22-a12*a2112/10/202275例2.1.1-3用符號(hào)計(jì)算驗(yàn)證三角等式symsphi1例2.1.1-4驗(yàn)證積分symsAttaow;yf=int(A*exp(-i*w*t),t,-tao/2,tao/2);yf=simple(yf)yf=2*A*sin(1/2*tao*w)/w練習(xí):展開(kāi)sin(4x)(expand)
12/10/202276例2.1.1-4驗(yàn)證積分symsAttaow2.1.2符號(hào)計(jì)算中的算符和基本函數(shù)由于新版matlab采用了重載技術(shù),使得用來(lái)構(gòu)成符號(hào)計(jì)算表達(dá)式的算符和基本函數(shù),無(wú)論在形狀,名稱,還是使用方法上,都與數(shù)值計(jì)算中的算符和基本函數(shù)幾乎完全相同,這給編程帶來(lái)極大的方便.(2)關(guān)系運(yùn)算符在符號(hào)對(duì)象的比較中,沒(méi)有大于,大于等于,小于,小于等于的概念,而只有是否等于的概念.”==““~=“分別用來(lái)對(duì)算符兩邊的對(duì)象進(jìn)行相等和不等的比較,返回為邏輯量(1)基本運(yùn)算符算符”+”,”-”,”*”,”\”,“/”,“^”分別構(gòu)成矩陣的加,減,乘,左除,右除,求冪運(yùn)算.算符”.*”,“./”,“.\”,“.^”分別實(shí)現(xiàn)元素對(duì)元素的數(shù)組乘,除,求冪運(yùn)算.算符”'”,“.'”分別實(shí)現(xiàn)矩陣的共軛轉(zhuǎn)置,非共軛轉(zhuǎn)置12/10/2022772.1.2符號(hào)計(jì)算中的算符和基本函數(shù)由于新版matlab采(4)指數(shù),對(duì)數(shù)函數(shù)函數(shù)sqrt,exp,expm在兩者中用法相同.符號(hào)計(jì)算中只有自然對(duì)數(shù),而沒(méi)有數(shù)值計(jì)算中的log2,log10(5)復(fù)數(shù)函數(shù)conj,imag,real,abs在兩者中用法相同.但在符號(hào)計(jì)算中沒(méi)有求相角的指令.(6)矩陣代數(shù)指令在符號(hào)計(jì)算中,matlab提供的常用矩陣代數(shù)指令有:diag,triu,tril,inv,det,rank,rref,null,colspace,expm,poly,eig,svd(3)三角函數(shù),雙曲線函數(shù)以及他們的反函數(shù)除atan2只能用于數(shù)值計(jì)算外,另外的在兩種運(yùn)算中使用方法相同.12/10/202278(4)指數(shù),對(duì)數(shù)函數(shù)(5)復(fù)數(shù)函數(shù)(6)矩陣代數(shù)指令(數(shù)值計(jì)算對(duì)象,符號(hào)計(jì)算對(duì)象,字符串是MATALB中最常用的數(shù)據(jù)對(duì)象.他們遵循各自不同的運(yùn)算法則,但有時(shí)在外形上卻十分相似.MATLAB提供了一些識(shí)別不同數(shù)據(jù)對(duì)象的指令,常用的有class,isa,whos例2.1.3-1數(shù)據(jù)對(duì)象及其識(shí)別指令的使用(1)生成三種不同類型的矩陣,給出不同的顯示形式clear,a=1;b=2;c=3;d=4%產(chǎn)生四個(gè)數(shù)值變量Mn=[a,b,c,d]%利用已賦值變量構(gòu)成數(shù)值矩陣Mc=‘[a,b,c,d]’%字符串中的a,b,c,d與前面輸入的數(shù)值變量無(wú)關(guān)Ms=sym(Mc)%符號(hào)變量,與前面的各變量無(wú)關(guān)Mn=1234Mc=[a,b;c,d]Ms=[a,b][c,d]2.1.3對(duì)象類別的識(shí)別12/10/202279數(shù)值計(jì)算對(duì)象,符號(hào)計(jì)算對(duì)象,字符串是MATALB中最常用的數(shù)(2)三個(gè)矩陣的大小不同SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms)SizeMn=22SizeMc=19SizeMs=22(3)用class獲得每種矩陣的類別CMn=class(Mn),CMc=class(Mc),CMs=class(Ms)CMn=doubleCMc=charCMs=sym(4)用isa判斷每種矩陣的類別isa(Mn,‘double’),isa(Mc,'char'),isa(Ms,'sym')ans=1ans=1ans=112/10/202280(2)三個(gè)矩陣的大小不同SizeMn=size(Mn),(5)利用whos觀察內(nèi)存變量的類別和其他屬性
NameSizeBytesClassMc1x918chararrayMn2x232doublearrayMs2x2312symobjecta=0:1:6;theta=sym('30*pi/180*a')alfa=sym('30*pi/180')*atheta=30*pi/180*aalfa=[0,1/6*pi,1/3*pi,1/2*pi,2/3*pi,5/6*pi,pi]a與數(shù)組a無(wú)關(guān)12/10/202281(5)利用whos觀察內(nèi)存變量的類別和其他屬性Name2.1.4符號(hào)表達(dá)式中自由變量的確定findsym(expr)---確認(rèn)表達(dá)式expr中所有自由符號(hào)變量findsym(expr,n)---從expr中確認(rèn)出靠x最近的n個(gè)獨(dú)立自變量例2.1.4-1對(duì)獨(dú)立自由符號(hào)變量的自動(dòng)辨認(rèn)(1)生成符號(hào)變量symsabxXY;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');expr=a*z*X+(b*x^2+k)*Y;(2)找出expr中的全部自由符號(hào)變量findsym(expr)ans=X,Y,a,b,c,delta,theta,x,y12/10/2022822.1.4符號(hào)表達(dá)式中自由變量的確定findsym(exp(3)從expr中確定1,2,3個(gè)自由變量findsym(expr,1),findsym(expr,2),findsym(expr,3)ans=xans=x,yans=x,y,thetafindsym確認(rèn)的是表達(dá)式中的”自由”,”獨(dú)立”的符號(hào)變量,由于k不是自由的,z不是獨(dú)立的,所以該指令不將其作為自由變量。該指令把expr表達(dá)式中n個(gè)最靠近x的自由符號(hào)變量確認(rèn)為“獨(dú)立自由變量”,并且認(rèn)為大寫字母離x的距離總大于所有小寫字母離x的距離.作用:在符號(hào)函數(shù)調(diào)用中,當(dāng)沒(méi)有明確指定所針對(duì)的變量時(shí),系統(tǒng)自動(dòng)確定所操作的自由變量12/10/202283(3)從expr中確定1,2,3個(gè)自由變量findsym(2.2符號(hào)對(duì)象的操作與轉(zhuǎn)換2.2.1符號(hào)表達(dá)式的操作collect合并同類項(xiàng)numden提取公因式expand展開(kāi)指定項(xiàng)simplify恒等式簡(jiǎn)化factor因式分解pretty習(xí)慣方式顯示horner轉(zhuǎn)換為嵌套形式simple簡(jiǎn)化例2.2.1-1簡(jiǎn)化symx;f=(1/x^3+6/x^2+12/x+8)^(1/3);g1=simple(f)g2=sinple(g1)g1=(2*x+1)/xg2=2+1/x驗(yàn)證:f2=g2^3;expand(f2)12/10/2022842.2符號(hào)對(duì)象的操作與轉(zhuǎn)換2.2.1符號(hào)表達(dá)式的操作co例2.2.1-2因式分解9876542fx=sym('9876542');factor(fx)ans=(2)*(13)*(19)*(19993)
例2.2.1-3因式分解x12-1symsx;f=x^12-1;factor(f)例2.2.1-4pretty,horner的使用symsx;f=exp(-x);f1=taylor(f);pretty(f1)fh=horner(f1)ans=(x-1)*(x^2+x+1)*(x+1)*(1-x+x^2)*(x^2+1)*(x^4-x^2+1)12/10/202285例2.2.1-2因式分解9876542fx=sym('9f1=1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5
23451-x+1/2x-1/6x+1/24x-1/120x
fh=1+(-1+(1/2+(-1/6+(1/24-1/120*x)*x)*x)*x)*xexpand的使用symsxy;f=sin(x+y)u=expand(f)f=
sin(x+y)u=
sin(x)*cos(y)+cos(x)*sin(y)12/10/202286f1=1-x+1/2*x^2-1/6*x^3+1/24*x^2.2.2置換操作作用:把復(fù)雜表達(dá)式中所含的多個(gè)相同子表達(dá)式用一個(gè)符號(hào)代替,使表達(dá)簡(jiǎn)潔[RS,ssub]=subexpr(S,ssub)---運(yùn)用符號(hào)變量ssub置換子表達(dá)式,重寫S為RS例2.2.2-1表達(dá)式置換symsabcdW;[V,D]=eig([a,b;c,d]);[RVD,W]=subexpr([V;D],W)說(shuō)明:被置換的子表達(dá)式是機(jī)器自動(dòng)尋找的,置換原則為,只有比較長(zhǎng)的子表達(dá)式才被置換,比較短的子表達(dá)式,即使出現(xiàn)多次,也不被置換.1)子表達(dá)式置換操作指令格式:12/10/2022872.2.2置換操作作用:把復(fù)雜表達(dá)式中所含的多個(gè)相同子表達(dá)2)通用置換指令RES=subs(ES,old,new)---用new置換ES中的old后產(chǎn)生RESRES=subs(ES,new)---用new置換ES中的自由變量后產(chǎn)生RES例2.2.2-2subs置換規(guī)則示例(1)產(chǎn)生符號(hào)函數(shù)symsax;f=a*sin(x)+5;(2)符號(hào)變量置換f1=subs(f,'sin(x)',sym('y'))(3)符號(hào)常數(shù)置換f2=subs(f,{a,x},{2,sym(pi/3)})f1=a*y+5a=2x=pi/3,符號(hào)數(shù)字f2=3^(1/2)+5double(f2)代值12/10/2022882)通用置換指令RES=subs(ES,old,new(4)雙精度數(shù)值轉(zhuǎn)換(所有自由變量被雙精度數(shù)值取代)自定義函數(shù)的賦值f3=subs(f,[a,x],[2,pi/3])f3=6.7321(5)數(shù)值數(shù)組置換一(取a=2,x=0:pi/6:pi)f4=subs(subs(f,a,2),x,0:pi/6:pi)f4=5.006.006.737.006.736.005.00(6)數(shù)值數(shù)組置換二(取a=0:6,x=0:pi/6:pi)f5=subs(f,{a,x},{0:6,0:pi/6:pi})f5=5.005.506.738.008.467.505.0012/10/202289(4)雙精度數(shù)值轉(zhuǎn)換(所有自由變量被雙精度數(shù)值取代)自定f6=subs(f,[a,x],{0:6,0:pi/6:pi})f6=5.005.506.738.008.467.505.00比較:f7=subs(f,[a,x],[2,pi/6])f8=subs(f,[a,x],[2,sym(pi/6)])6.732050807568883^(1/2)+5●subs指令的屬性取決于new的屬性,當(dāng)new中全部為數(shù)值數(shù)字時(shí),所得結(jié)果為雙精度數(shù)據(jù),當(dāng)new中有符號(hào)數(shù)字時(shí),所得結(jié)果也為字符數(shù)字。●new可以是數(shù)組【說(shuō)明】12/10/202290f6=subs(f,[a,x],{0:6,0:pi/求n^0.5(n=1,2,….10)之值symsx;f=sqrt(x);res=subs(f,x,
溫馨提示
- 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年02月??谑旋埲A區(qū)事業(yè)編制人員79人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年02月濟(jì)寧微山縣事業(yè)單位人員(綜合類)(50人)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年02月廣西梧州市考試公開(kāi)招聘事業(yè)單位(非中小學(xué)教師崗位)人員1257人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 課題開(kāi)題報(bào)告:大學(xué)生學(xué)術(shù)思維能力培育研究
- 課題開(kāi)題報(bào)告:產(chǎn)教融合促進(jìn)高等教育服務(wù)創(chuàng)新發(fā)展的路徑措施、機(jī)制模式、實(shí)踐創(chuàng)新研究
- 制劑包裝材料的創(chuàng)新與環(huán)保研究企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 健康教育宣傳平臺(tái)與運(yùn)營(yíng)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- PU女鞋企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 制劑國(guó)際市場(chǎng)開(kāi)拓與品牌企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 寫字臺(tái)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- (高清版)JTG 3810-2017 公路工程建設(shè)項(xiàng)目造價(jià)文件管理導(dǎo)則
- 《ISO31000:2024風(fēng)險(xiǎn)管理指南》指導(dǎo)手冊(cè)(雷澤佳譯2024-04)
- 2024年甘肅省公務(wù)員公共基礎(chǔ)知識(shí)重點(diǎn)考試題庫(kù)(含答案)
- 《拒絕校園欺凌 防霸凌主題班會(huì)》課件
- 高血壓腦出血相關(guān)的課件
- 2024年云南呈貢區(qū)城市投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2024年工貿(mào)行業(yè)安全知識(shí)考試題庫(kù)500題(含答案)
- T-ZJASE 024-2023 呼吸閥定期校驗(yàn)規(guī)則
- 新生兒藥物過(guò)敏
- 《指南針》完整版
- 《手腕上的菩提子》課件
評(píng)論
0/150
提交評(píng)論