數學工具(五)符號數學

2022-07-22 08:30:32 字數 1602 閱讀 6530

本節介紹專用於符號計算的sympy 庫。

包括:1.基本介紹

2.方程式

3.積分

4.微分

sympy 引人了 新的物件類。最基本的是symbol 類,

import

sympy 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))

2         

0.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 符號函式由於在運算的時候不需要對...

機器學習中涉及到哪些數學工具?

在機器學習中涉及到很多的工具,其中最重要的當屬數學工具。機器學習涉及到的資料工具總共有三種,分別是線性代數 概率統計和最優化理論。在這篇文章中我們就來詳細給大家介紹一下這些知識,讓大家在日常的機器學習中可以更好地運用到數學工具。然後我們說一下概率統計,在評價過程中,我們需要使用到概率統計。概率統計包...