MATLAB-簡介(5) MATLAB 符號數(shù)學(xué)1_第1頁
MATLAB-簡介(5) MATLAB 符號數(shù)學(xué)1_第2頁
MATLAB-簡介(5) MATLAB 符號數(shù)學(xué)1_第3頁
MATLAB-簡介(5) MATLAB 符號數(shù)學(xué)1_第4頁
MATLAB-簡介(5) MATLAB 符號數(shù)學(xué)1_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

MATLAB符號數(shù)學(xué)在前面,我們已介紹了MATLAB在數(shù)值運算的能力,接著我們再說明另一種不同的運算法「符號數(shù)學(xué)」(symbolicmathematic)。符號代數(shù)一般我們做運算時多半是以數(shù)值做運算,例如一算式1+0.5=1.5就是以數(shù)值運算;符號運算即是能以分數(shù)做運算,而無須轉(zhuǎn)換成數(shù)值再運算。再舉一例,我們皆知cos(x)微分得到sin(x),這樣的數(shù)學(xué)式你是無法用數(shù)值做運算。當然符號數(shù)學(xué)能運算復(fù)雜的數(shù)學(xué)式,這也是我們使用它的目的。MATLAB的符號數(shù)學(xué)是放在一個叫符號數(shù)數(shù)學(xué)的工具箱,它的數(shù)學(xué)函數(shù)其實是來自于Maple(Maple是一個以符號運算為主的數(shù)學(xué)運算軟體)的運算核心。在MATLAB中,符號對象是一種數(shù)據(jù)結(jié)構(gòu),包括符號常數(shù)、符號變量和符號表達式。符號常數(shù)、符號變量、符號函數(shù)、符號操作等則是用來形成符號表達式,嚴格按照代數(shù)、微積分等課程中的規(guī)則、公式進行運算,并盡可能給出解析表達式結(jié)果。數(shù)值表達式的變量必須事先被賦值。符號對象也要定義基本的符號對象,然后才能進行符號運算。創(chuàng)建符號常量Sym(‘常量’)

例:>>a=sym(‘sin(2)’)%創(chuàng)建符號常量

>>a=sym(sin(2))%把常量轉(zhuǎn)換為符號常量Sym(常量,參數(shù))參數(shù)作用D返回最接近的十進制數(shù)值(默認32位)F返回最接近的浮點表示R返回最接近的有理數(shù)型(為系統(tǒng)默認方式),可表示為p/q,p*q,10^q,pi/q,2^q,sqrt(p)形式之一e返回最接近的帶有機器浮點誤差的有理值例:>>a1=2*sqrt(5)+pi

%創(chuàng)建數(shù)值常量>>a2=sym(‘2*sqrt(5)+pi’)%創(chuàng)建符號表達式>>a3=sym(2*sqrt(5)+pi)%按最接近的有理數(shù)型表示符號常量>>a4=sym(2*sqrt(5)+pi,’d’)%按最接近的十進制浮點數(shù)表示符號常量>a5=‘2*sqrt(5)+pi’%字符串常量>>a31=a3-a1%數(shù)值常量和符號常量的計算sym(‘a(chǎn)rgv’,flagv)%falgv的取值可以為positive,real,和unreal。

>>sym(‘x’,’real’)>>sym(‘y’,’real’)syms(’arg1’,’arg2’,…,flagv)%定義字符串變量為符號變量Symsarg1arg2…,flagv

>>symsabcx>>syms(‘a(chǎn)’,’b’,’c’,’x’)f=sym(‘表達式’)>>z=sym(‘x+iy’)創(chuàng)建符號變量和表達式符號表示式在MATLAB中是將一符號表示式儲存唯一字串(characterstring),即是以二個單引號之內(nèi)的表示式來定義其為一符號式,例如'tan(y/x)','x^3-2*x^2+3','1/(cos(angle)+2)'

的三個式子。在一符號表示式中,需要定義所謂的獨立變數(shù)。如果未曾事先指定何者為獨立變數(shù),MATLAB會自行決定。而它所決定變數(shù)的原則如下:它會挑選一個除了i和j之外而在字母上最接近x的小寫字元;如果在式子中并無上述字元,則x會被視為預(yù)設(shè)的獨立變數(shù)。函數(shù)symvar(s)

可以用已決定何者為獨立變數(shù)。請看以下的例子:expressionSsymvar(S)

symvar('tan(y/x)')xysymvar(‘x^3-2*x^2+3’)xsymvar('1/(cos(angle)+2)')xsymvar('3*a*b-6’)ba自由變量的確定規(guī)則-小寫字母i和j不能作為自由變量;-符號表達式有多個字符變量,則按照以下順序選擇自由變量:

①x;

②字母表順序中最接近x的字符變量;

③如果與x相同距離,則在x后面的優(yōu)先。-大寫字母比小寫字母都靠后。MATLAB提供了一個函數(shù)ezplot

可以畫單變數(shù)的符號式,其預(yù)設(shè)的獨立變數(shù)的范圍是-2π,2π。它的語法為ezplot(S),S代表符號變數(shù);另一個相關(guān)語法ezplot(S,[xmin,xmax]),則是設(shè)定獨立變數(shù)的范圍xmin到xmax。

平面曲線:ezplotMatlab符號函數(shù)繪圖ezplot(f(x))ezplot(f(x),[a,b])ezplot(f(x,y))ezplot(f(x,y),[a,b,c,d])ezplot(f(x,y),[a,b])例:ezplot(‘sin(x)’)ezplot(‘sin(x)’,[-pi,pi])ezplot(‘x^2+y^2-9’)ezplot(‘x^2+y^2-9’,[-3,3])函數(shù)表達式要加單引號。Iffisafunctionofthevariablesuandv(ratherthanxandy),thenthedomainendpointsa,b,c,anddaresortedalphabetically.Thus,

EZPLOT('u^2-v^2-1',[-3,2,-2,3])plotsu^2-v^2-1=0over-3<u<2,-2<v<3.ExamplesEitherofthefollowingcommands,ezplot('erf(x)')ezplot

erf(x)plotagraphoftheerrorfunction::Thestatement,ezplot('sin(x)',[02*pi])createstheplot:>>ezplot('sin(t)','cos(t)')ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi])

符號表達式的書寫有多種形式:多項式表達形式;因式形式表達形式嵌套形式表達形式符號運算中有許多操作指令,如collect(合并同類項)、expand(對指定項展開)、factor(進行因式或因子分解)、horner(轉(zhuǎn)換成嵌套形式)、numden(提取公因式)、simplify(恒等式簡化)、pretty(習慣方式顯示),simple等。注:EXPR可以是符號表達式或矩陣。在這種情況下,這些指令將對該矩陣的元素逐個進行操作。符號表達式的操作以下的函數(shù)用來簡化數(shù)學(xué)式,如展開、化簡或合并同類項。相關(guān)的指令有:collect(S)合并S的同類項collect(S,'v')合并S的同類項,是以v為獨立變數(shù)expand(S)

將S表示式展開factor(S)

還原S的因式(factorization)simple(S)

如果可能的話,將S表示式再做簡化simplify(S)

利用Maple簡化法則化簡S表示式我們來看一些例子

>>symsxy>>factor(x^3-1)ans=(x-1)*(x^2+x+1)>>expand((x-3)^2+(y-4)^2

)ans=x^2-6*x+25+y^2-8*y>>collect((x-3)^2+(y-4)^2

)ans=x^2-6*x+9+(y-4)^2>>collect((x-3)^2+(y-4)^2,’y’)

ans=y^2-8*y+(x-3)^2+16>>S3='sqrt(a^4*b^7)'>>S4='14*x^2/(22*x*y)';

>>simplify(sqrt(a^4*b^7))ans=a^2*b^(7/2)>>simple(14*x^2/(22*x*y))ans=7/11*x/y符號表示式的運算以下列出幾個常用的符號運算函數(shù),它們可以將一符號數(shù)學(xué)式轉(zhuǎn)換成另一種型態(tài)。分列如下:horner(S)

將S轉(zhuǎn)換成巢狀表示式numden(S)

將S的有理數(shù)表示成分子和分母的形式numeric(S)

將S改成數(shù)值式(S不能含有任何符號變數(shù))poly2sym(c)

轉(zhuǎn)換多項式系數(shù)向量c為符號多項式pretty(S)

將S顯示成數(shù)學(xué)式sym2poly(S)

轉(zhuǎn)換S為多項式系數(shù)向量symadd(A,B)執(zhí)行A+B的符號加法symdiv(A,B)

執(zhí)行A+B的符號除法symmul(A,B)

執(zhí)行A+B的符號乘法sympow(S,p)

執(zhí)行S^p的符號次方運算symsub(A,B)

執(zhí)行A+B的符號減法我們接著看幾個應(yīng)用上述函數(shù)的例子>>p2='3*y./(y+2)';>>p1='1/(y-3)';>>p3='(y+4)*(y-3)*y';

>>symmul('1/(y-3)'

,'(y+4)*(y-3)*y’)ans=(y+4)*y>>sympow(p2,3)ans=27*y^3/(y+2)^3>>p1='1/(y-3)';>>p2='3*y/(y+2)';>>p3='(y+4)*(y-3)*y';

>>symadd(p1,p2)ans=1/(y-3)+3*y/(y+2)>>[num,den]=numden(symadd(p1,p2))ans=[-8*y+2+3*y,(y-3)*(y+2)]>>horner(symadd(p3,'1')ans=1+(-12+(1+y)*y)*yTaylorseriesexpansion.TAYLOR(f)isthefifthorderMaclaurinpolynomialapproximationtof.Threeadditionalparameterscanbespecified,inalmostanyorder.TAYLOR(f,n)isthe(n-1)-storderMaclaurinpolynomial.TAYLOR(f,a)istheTaylorpolynomialapproximationaboutpointa.TAYLOR(f,x)usestheindependentvariablexinsteadofFINDSYM(f).Taylor級數(shù)展開Examples:

taylor(exp(-x))returns1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5taylor(log(x),6,1)returnsx-1-1/2*(x-1)^2+1/3*(x-1)^3-1/4*(x-1)^4+1/5*(x-1)^5taylor(sin(x),pi/2,6)returns1-1/2*(x-1/2*pi)^2+1/24*(x-1/2*pi)^4taylor(x^t,3,t)returns1+log(x)*t+1/2*log(x)^2*t^21練習Matlab

ezplot

畫單變數(shù)的符號式2練習M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論