Download presentation
Presentation is loading. Please wait.
1
SCILAB第八章-符號運算 撰文者: 1.中央大氣科學系 楊善文 2. (如對本文有貢獻者,記得在此留名。)
2
Sommaire 簡介與準備工作 簡單的符號運算 極限limit的應用 微積分應用 級數 Laplace轉換
3
簡介與準備工作 Scilab在符號運算方面,是引用另一套自由軟體Maxima 的函式庫。就好比類似的軟體Matlab是引用Maple的函 式庫一樣。 需求工具:Maxima軟體、Scilab符號運算工具箱 Maxima下載點: Scilab符號工具箱:
4
準備工作- Lisp安裝 從maxima網站下載了Maxima後,有一個重要套件要先安裝 :Lisp。Lisp的取得並不困難,許多UNIX或Linux等系統的廠 商皆有包其版本的套件。 筆者已clisp為例: Solaris可以使用blastwave站來下載clisp 指令:pkg-get install clisp 如果是Fedora Linux使用者,在官方FTP站的Extras中即可找 到此一套件。 其他下載處: Windows有gcl(GNU common lisp)可以用: ftp://ftp.gnu.org/pub/gnu/gcl/binaries/stable/
5
準備工作- Maxima安裝與引入函式庫 Maxima的安裝方式:解開Maxima的壓縮檔後,執行: ./configure && make && make install 將maxima的安裝位置內的bin/設入環境變數PATH。 下載Scilab符號工具箱網頁上的兩個檔案。解開後有兩 個目錄:SYM,OVLD 開啟Scilab後分別進入此兩個資料夾,執行: exec updater.sce (只有OVLD有此檔案) exec builder.sce exec loader.sce 完成後即可開始使用Scilab進行符號運算。
6
宣告符號變數 最常使用來宣告變數的指令是sym()和syms。 sym()主要是用來將函式內的運算式以符號方式輸出。
用法: sym(運算式) syms 變數一 變數二 例如: --> sym(sqrt(3)+sqrt(2) --> syms x y z 將符號變數轉回數值形式是用dbl()。
7
簡單的符號運算範例 --> syms s t --> sym(2^(1/3)+sqrt(s)) ans =
47321/33461 (各位可以發現,sym()是將原本計算出來的小數轉成分 數形式輸出。)
8
簡單的符號運算範例(二) --> syms s --> 2*s^3+s^3 ans = 3*s^3
--> sqrt(s)^3 s^(3/2)
9
極限的運用 求解極限的函式是limit()。 用法:limit(待求解函數,需做limit的變數,趨近值) 例如:
計算limit t = ? t-> 3 --> syms t --> limit(t,t,3) ans = 3
10
極限範例(二) 求解:limit (x^(1/2))/x = ? --> syms x
--> limit(sqrt(x)/x,x,%inf) Ans = 1/sqrt(%inf) (這似乎不是我們想看到的結果:0或∞,不過可以重新將它以 數值方式顯示,就是答案了。) --> 1/sqrt(%inf) 0.
11
求解微分 微分運算我們仍然是使用diff()這個指令,不過是符號運 算工具箱的。
用法:diff(待微分函數,x1,x1微分次數,x2,x2微分次數,...) 範例:f(X)=X^3+4X^2+3 , f''(X)=? --> syms x --> diff(x^3+4*x^2+3,x,2) Ans = 6*x+8
12
微分範例二 f(x,y,z)=x²y²z³, d d d² -- ( -- ( --- f(x,y,z) )) = ? dx dy dz²
--> syms x y z --> diff((x^2)*(y^2)*(z^3),x,1,y1,z,2) ans = 12*x*y*z^2
13
積分 執行積分運算我們可以使用integ()指令。 用法: 不定積分:integ(函數,變數) 定積分:integ(函數,變數,下界,上界)
範例: ∫x² dx = ? --> syms x --> integ(x^2,x) ans = X^3/3 (同樣的方式我們也可以用來進行多重積分,語法: integ(integ(...),...)
14
級數Σ 宣告無窮級數指令是symsum(); 語法:symsum(函數,變數,下界,上界) 若上界宣告為%inf即成為無窮級數 例如:
Σ x^n (n=1,2, ) --> syms x n --> symsum(x^n,n,0,6) Ans = x^6+x^5+x^4+x^3+x^2+x+1
15
泰勒級數 在所有級數中,泰勒級數算是一個非常有名的級數。可 以將許多函數展開成此級數。 泰勒級數表示式: 在a=0時,即成為麥克勞林級數。
在所有級數中,泰勒級數算是一個非常有名的級數。可 以將許多函數展開成此級數。 泰勒級數表示式: 在a=0時,即成為麥克勞林級數。 如果各位讀者對此類有興趣,可以參考: %E7%BA%A7%E6%95%B0 Scilab下宣告泰勒級數的語法:taylor(函數,變數,下界,上 界) 例:taylor(sin(x),x,0,6)
16
Laplace轉換 Laplace轉換在工程數學中,佔有非常重要的地位。可以 將複雜難解的微分方程轉成另一種形式,求解後轉回原 型式。
Laplace的轉換原理:F(s)=L{f(t)}=∫f(t)*e^(-st) dt (t從0到 ∞) 關於Laplace轉換的詳細內容,請參考市面上有的工程數 學書集。 在scilab上我們有laplace()和ilaplace()可用。ilaplace是 laplace的反轉換。 語法:laplace/ilaplace (函數,輸入變數,輸出變數)
17
Laplace轉換範例 --> syms s t --> f = 1; <==假設原函數f(t)=1
--> laplace(f,t,s) ans = 1/s <== F(s)= L{f(t)} = 1/s --> laplace(t^3,t,s) <==轉換f(t)=t³ 6/s^4 反轉換: --> ilaplace(6/s^4,s,t) T^ <== f(t)=L-1{F(s)} = t³
Similar presentations