SymPy:使用 Python 幫你導煩人的數學公式(一)
SymPy 是一個可以進行數學代數運算的 Python 模組,他的發展目標是一個完整的電腦代數系統,而此模組完全都是使用 Python 寫成的,所以不需要依賴其他的函式庫。
裝完之後,接著就可以執行 Python 了:
進入 Python 的互動式模式(interactive mode)之後,就會看到三個大於符號(>>>),這就是 Python 的主要命令提示字元(primary prompt)。
準備 SymPy 環境
在 Ubuntu 或 Debian Linux 中若要安裝 SymPy,可以直接使用 apt 安裝:sudo apt-get instlal python-sympy
裝完之後,接著就可以執行 Python 了:
python
進入 Python 的互動式模式(interactive mode)之後,就會看到三個大於符號(>>>),這就是 Python 的主要命令提示字元(primary prompt)。
SymPy:使用 Python 幫你導煩人的數學公式(二)
符號(Symbol)與代數運算
SymPy 與其他的 CAS(Computer Algebra System)不同,在 SymPy 中所有的變數都要經過宣告才能使用:
第二行是將 Python 變數 x 指定為 SymPy Symbol。
在 sympy.abc 中有預先定義一些 Symbol(包涵一些以希臘字母命名的 Symbol)。
若要建立多個 Symbol 可以使用 symbols 與 var 兩個函數,兩個函數作用相同,都可以接受 range notation,但 var 會自動將建立的 Symbol 加入命名空間(namespace)。
SymPy 與其他的 CAS(Computer Algebra System)不同,在 SymPy 中所有的變數都要經過宣告才能使用:
>>> from sympy import Symbol
>>> x = Symbol('x')
>>> y = Symbol('y')
第二行是將 Python 變數 x 指定為 SymPy Symbol。
在 sympy.abc 中有預先定義一些 Symbol(包涵一些以希臘字母命名的 Symbol)。
>>> from sympy.abc import x, theta
若要建立多個 Symbol 可以使用 symbols 與 var 兩個函數,兩個函數作用相同,都可以接受 range notation,但 var 會自動將建立的 Symbol 加入命名空間(namespace)。
>>> from sympy import symbols, var
>>> a, b, c = symbols('a,b,c')
>>> d, e, f = symbols('d:f')
>>> var('g:h')
(g, h)
>>> var('g:2')
(g0, g1)
SymPy:使用 Python 幫你導煩人的數學公式(三)
微積分(Calculus)
SymPy 也可以用於微積分的計算,這裡介紹在微積分中常用的運算。
SymPy 提供了ㄧ個 limit(function, variable, point) 函數可以計算函數的極限值。下面的這個指令可以計算 sin(x) 函數在 x 趨近於零的極限值。
亦可計算無限大的極限值:
SymPy 也可以用於微積分的計算,這裡介紹在微積分中常用的運算。
SymPy 提供了ㄧ個 limit(function, variable, point) 函數可以計算函數的極限值。下面的這個指令可以計算 sin(x) 函數在 x 趨近於零的極限值。
>>> from sympy import limit, Symbol, sin, oo
>>> x = Symbol('x')
>>> limit(sin(x)/x, x, 0)
1
亦可計算無限大的極限值:
>>> limit(x, x, oo)
oo
>>> limit(1/x, x, oo)
0
>>> limit(x**x, x, 0)
1
SymPy:使用 Python 幫你導煩人的數學公式(四)
複數(Complex numbers)
SymPy 也可以處理複數,Symbol 亦可以指定屬性(attribute),例如:real、positive 或 complex 等,指定屬性會影響其運算的結果。
SymPy 也可以處理複數,Symbol 亦可以指定屬性(attribute),例如:real、positive 或 complex 等,指定屬性會影響其運算的結果。
>>> from sympy import Symbol, exp, I
>>> x = Symbol("x") # a plain x with no attributes
>>> exp(I*x).expand()
I*x
e
>>> exp(I*x).expand(complex=True)
-im(x) -im(x)
I*e *sin(re(x)) + e *cos(re(x))
>>> x = Symbol("x", real=True)
>>> exp(I*x).expand(complex=True)
I*sin(x) + cos(x)
SymPy:使用 Python 幫你導煩人的數學公式(五)
微分方程(Differential Equations)
>>> from sympy import Function, Symbol, dsolve
>>> f = Function('f')
>>> x = Symbol('x')
>>> f(x).diff(x, x) + f(x)
2
d
f(x) + ---(f(x))
2
dx
>>> dsolve(f(x).diff(x, x) + f(x), f(x))
f(x) = C1*sin(x) + C2*cos(x)
新竹福源花生醬:好吃的新竹名產
新竹的福源花生醬很有名,之前都是親戚送的,最近吃完了想自己去買,第一次去新竹市東大路找的時候,因為查了 Google 地圖,沒記地址,想說應該有招牌,看招牌就可以了,結果福源的招牌很不明顯,結果沒找到,第二次去的時候,就記好門牌,看門牌號碼才找到。
福源的店面很簡單,雖然有招牌,但是他掛的很高,如果騎機車從店門口經過,是完全看不到招牌的,所以沒有仔細看的話,根本不知道這是一家店面,我第一次就是這樣騎過去。
所以若是第一次去福源,記得要記好地址,免得找半天找不到,福源花生醬的店面地址是新竹市東大路一段 155 號。
最近掛了很明顯的新招牌,這樣就好找多了。
新竹市福源花生醬店面 |
最近掛了很明顯的新招牌,這樣就好找多了。
新竹市福源花生醬店面招牌 |
[開箱] 日立 HITACHI FUZZY 感溫適濕除濕機(RD-12FS/RD-12FG)
最近在比較除濕機,感覺日立的品牌比較老,而且網路評價都很好,再加上這一張 PChome 整理的除濕機召回檢修公告:
每個牌子都有,唯獨沒有日立,最後還是選擇買日立的。
日立的除濕機依照功能與除濕能力有好幾款,選了老半天感覺買個 RD-12FS/RD-12FG 應該就夠用了,畢竟是要放房間用的,除濕能力差不多就可以了,然後挑個有 FUZZY 功能的,避免一下除太乾。
這台 RD-12FS/RD-12FG 的售價在 Yahoo 與 PChome 的售價都是 7490,我也找了好多地方也都是這個價格,而有些網路拍賣有很低的價格,六千多就有,不過我想找個維修換貨都方便的地方買,避免麻煩。
後來在竹北博愛街上面的全國電子,老闆不錯,定價一樣是 7490,直接算我 7000,同樣竹北另一家全國電子就沒有這個價格了。
這台是放在外面地展示機,不過看起來是全新沒用過的,用膠膜包好好放在外面,我想日立的應該很耐用,就算有問題,一年保固,反正全國電子維修很方便,就給他買了。
每個牌子都有,唯獨沒有日立,最後還是選擇買日立的。
日立的除濕機依照功能與除濕能力有好幾款,選了老半天感覺買個 RD-12FS/RD-12FG 應該就夠用了,畢竟是要放房間用的,除濕能力差不多就可以了,然後挑個有 FUZZY 功能的,避免一下除太乾。
這台 RD-12FS/RD-12FG 的售價在 Yahoo 與 PChome 的售價都是 7490,我也找了好多地方也都是這個價格,而有些網路拍賣有很低的價格,六千多就有,不過我想找個維修換貨都方便的地方買,避免麻煩。
後來在竹北博愛街上面的全國電子,老闆不錯,定價一樣是 7490,直接算我 7000,同樣竹北另一家全國電子就沒有這個價格了。
這台是放在外面地展示機,不過看起來是全新沒用過的,用膠膜包好好放在外面,我想日立的應該很耐用,就算有問題,一年保固,反正全國電子維修很方便,就給他買了。
訂閱:
文章 (Atom)