本節介紹專用於符號計算的sympy 庫。
包括:1.基本介紹
2.方程式
3.積分
4.微分
sympy 引人了 新的物件類。最基本的是symbol 類,
importsympy as sy
x = sy.symbol('x'
)y = sy.symbol('y'
)type(x)
sympy.core.symbol.symbol可以用符號物件定義任何函式。它們不會和python 函式混淆:
f = x ** 2 + 3 + 0.5 * x ** 2 + 3/2-sy.sqrt(x)#化簡sy.simplify(f)
-sqrt(x) + 1.5*x**2 + 4.5
對於$x^2-1=3$這樣的方程,可以用slove函式求解
sy.solve(x**2-1-3)[-2,2]
sympy 的另乙個長處是積分和微分。下面.我們用到用於數值和模擬積分的示例的數,現在既要求出符號解,也要求出精確的數值解我們需要積分上下限的符號:
a, b = sy.symbols('a b')
定義新符號之後,可以"漂亮地列印"符號積分:
print(sy.pretty(sy.integral(sy.sin(x) + 0.5*x ,(x,a,b))))
b⌠
⎮ (0.5⋅x + sin(x)) dx
⌡
a
使用 integrate. 我們可以得積分函式的反導數 (不定積分):
int_func = sy.integrate(sy.sin(x) + 0.5 * x, x)print(sy.pretty(int_func))
20.25⋅x - cos(x)
有了反導數,求積分只需要三步:
1.要求取sympy 表示式的值,
2.用方法subs 將數值代人對應的符號, 在
3.新表示式上呼叫方法evalf:
fb = int_func.subs(x , 9.5).evalf(n=7) #evalf()函式可以用求出表示式的浮點數。
fa = int_func.subs(x, 0.5).evalf(n=7)
#fb 和fa 的差就是積分的準確值:
fb-fa
提供量化的積分上下限,在一步中得出準確的值:
sy.integrate(sy.sin(x) + 0.5 * x, (x, 0.5, 9.5))
24.3747547180867
對不定積分求導通常應該得出原函式我們對前面的符號反導數應用diff函式. 檢查這一點:
int_func.diff()
0.5*x + sin(x)
Matlab 常用數學工具彙總
2 多項式處理 3 傳遞函式模型 4 繪圖 解線性方程組ax b a 11 10 1 21 1 2 1 0 3 335 6 b 1 8 3 5 x inv a b 符號計算求解方程組 syms x y z 定義變數 x,y,z solve x y z 1,x y z 2,2 x y z 1 求解符號...
MATLAB學習筆記 符號數學計算(Maple)
符號變數的建立 clc clear syms x y f x,y 多個符號變數sym要加s f x,y x 2 y 在命令列視窗中如果直接輸入乙個沒有進行初始化的變數,會出現無法識別的情況。而使用符號函式就可以讓你在沒有賦值的情況下去引用乙個變數 f 1,3 輸出7 符號函式由於在運算的時候不需要對...
機器學習中涉及到哪些數學工具?
在機器學習中涉及到很多的工具,其中最重要的當屬數學工具。機器學習涉及到的資料工具總共有三種,分別是線性代數 概率統計和最優化理論。在這篇文章中我們就來詳細給大家介紹一下這些知識,讓大家在日常的機器學習中可以更好地運用到數學工具。然後我們說一下概率統計,在評價過程中,我們需要使用到概率統計。概率統計包...