Wednesday, July 23, 2008

    

簡簡單單就好

今天把Matlab第四章(數值微分&數值積分)看完。接下來還有微分方程、邊界值問題、數據擬合和最佳化法。不過下午把這通通跳過去,先去看最後一章的符號式工具箱(Symbolic Toolbox),符號式運算是Mathematica的強項,Matlab的符號式工具箱(Symbolic Toolbox)或許沒有Mathematica那麼好用,不過還是很好玩!

舉例來說,如果要對exp(exp(exp(exp(x))))這樣隨便一個看似簡單的函數做泰勒級數展開的話,雖然就只是不斷地微分而已,但是用手解應該會解到天昏地暗。那如果用符號式工具箱的話呢?只要兩行:

>syms x; (宣告 x 為 symbolic object)
>p = taylor(exp(exp(exp(exp(x)))),4); (泰勒級數展開到4階)

然後啪地一聲答案就出來了:

>p = exp(exp(exp(1)))+exp(exp(exp(1)))*exp(exp(1))*exp(1)*x+exp(exp(exp(1)))*(exp(exp(1))*exp(1)+1/2*exp(exp(1))*exp(1)^2+1/2*exp(exp(1))^2*exp(1)^2)*x^2+exp(exp(exp(1)))*(5/6*exp(exp(1))*exp(1)+exp(exp(1))*exp(1)^2+1/6*exp(exp(1))*exp(1)^3+exp(exp(1))^2*exp(1)^2+1/2*exp(exp(1))^2*exp(1)^3+1/6*exp(exp(1))^3*exp(1)^3)*x^3

而且對單變數函數,可以直接用ezplot把圖畫出來,馬上看看這函數長得什麼樣子,不用在那邊自己設grid,(可惜ezplot不能畫雙變數的曲面),真是太方便了!

>ezplot(p);

除此之外還可以做做不定積分、微分(直接算Jacobian給你之類的)、因式分解;算算線性代數的解析解、做Fourier Transform、Laplace Transform等等等等等。實在是太好玩了,不可不推!

  

1 comment:

Anonymous said...

matlab的工具箱
我最愛curve fitting