Python SymPy符號計算庫學習

2022-08-12 16:00:22 字數 1621 閱讀 4946

expand(,complex=true):表示式分為實數、虛數兩部分

定積分運算:integrate(表示式,(自變數,積分下界,積分上屆))

in:

import numpy as np

from sympy import *

#將x定義為符號

x=symbol("x",real=true)

#建立多個符號:x,y,r=symbols('x,y,r')

#引數:positive=true,表示符號為正

#var():快速建立變數和symbol物件

#泰勒展開

tmp=series(exp(i*x),x,0,10)

tmp#獲得tmp實部

re(tmp)

#獲得tmp虛部

im(tmp)

out:

1 + i*x - x**2/2 - i*x**3/6 + x**4/24 + i*x**5/120 - x**6/720 - i*x**7/5040 + x**8/40320 + i*x**9/362880 + o(x**10)

x**8/40320 - x**6/720 + x**4/24 - x**2/2 + re(o(x**10)) + 1

deep=true:對所有子表示式化簡

recursive=true:遞迴進行最大程度化簡

in:

var("a,b,x")

#展開eq得到eq2

eq=(1+a*x)**3+(1+b*x)**2

eq2=expand(eq)

eq2#合併同類項

collect(eq2,x)

#得到x的各次冪係數,如獲得x的二次項係數

p=collect(eq2,x,evaluate=false)

p[x**2]

out:

a**3*x**3 + 3*a**2*x**2 + 3*a*x + b**2*x**2 + 2*b*x + 2

a**3*x**3 + x**2*(3*a**2 + b**2) + x*(3*a + 2*b) + 2

3*a**2 + b**2

in:

var("a,b,c")

#解一元二次方程

solve(a*x**2+b*x+c,x)

#解二元二次方程,結果每個元組表示方程的一組解

solve((x**2+x*y+1,y**2+x*y+2),x,y)

out:

[(-b + sqrt(-4*a*c + b**2))/(2*a), -(b + sqrt(-4*a*c + b**2))/(2*a)]

[(-sqrt(3)*i/3, -2*sqrt(3)*i/3), (sqrt(3)*i/3, 2*sqrt(3)*i/3)]

hint=best,返回最簡單的解,得到最簡單的顯函式表示式

(不夠精確,且不適合計算無窮積分)

一些基礎語句補充:

MATLAB符號計算

1.建立符號物件 建立符號變數和符號常量 matlab提供了兩個建立符號物件的函式 sym和syms,兩個函式的用法不同。1 sym函式 sym函式用來建立單個符號量,一般呼叫格式為 符號量名 sym 符號字串 該函式可以建立乙個符號量,符號字串可以是常量 變數 函式或表示式。應用sym函式還可以定...

keras 學習符號計算

本文簡單敘述了如何使用符號計算的方法,方便以後解構keras源 時參閱。正如官網所述 keras使用的後端theano和tensorflow軍委符號運算。符號主義的計算要首先定義各種變數,然後建立乙個 計算圖 計算圖規定了各個變數的計算關係,建立好了的計算圖需要編譯確定其內部細節,最後載入資料流,方...

MATLAB的符號計算

數學計算有數值計算與符號計算之分。這兩者的根本區別是 數值計算的表示式 矩陣變數中不允許有未定義的自由變數 而符號計算可以含有未定義的符號變數。對於一般的程式設計軟體如 c,c 等語言實現數值計算還可以 但是實現符號計算並不是一件容易的事。而 matlab 自帶有符號工具箱 symbolic mat...