高數計算,我Python替你承包了

      網友投稿 1062 2022-05-30

      在學習與科研中,經常會遇到一些數學運算問題,使用計算機完成運算具有速度快和準確性高的優勢。Python的Numpy包具有強大的科學運算功能,且具有其他許多主流科學計算語言不具備的免費、開源、輕量級和靈活的特點。本文使用Python語言的NumPy庫,解決數學運算問題中的線性方程組問題、積分問題、微分問題及矩陣化簡問題,結果準確快捷,具有一定的借鑒意義。

      SymPy一個用于符號型數學計算(symbolic mathematics)的Python庫。它旨在成為一個功能齊全的計算機代數系統(Computer Algebra System,CAS),同時保持代碼簡潔、易于理解和擴展。SymPy完全是用Python寫的,并不需要外部的庫。

      首先,我們通過pip安裝一下sympy這個計算庫吧!

      pip install sympy

      可用SymPy進行數學表達式的符號推導和演算。可使用isympy運行程序,isympy在 IPython的基礎上添加了數學表達式的直觀顯示 功能。啟動時還會自動運行下面的程序:

      這段程序首先將Python的除法操作符“/” 從整數除法改為普通除法。然后從SymPy庫載 入所有符號,并且定義了四個通用的數學符號x 、y、z 、t,三個表示整數的符號k、m、n, 以及三個表示數學函數的符號f、g、h。

      歐拉恒等式

      此公式被稱為歐拉恒等式,其中e是自然 常數,i是虛數單位, 是圓周率。此公式被譽 為數學中最奇妙的公式,它將5個基本數學常數 用加法、乘法和冪運算聯系起來。 從SymPy庫載入的符號中,E表示自然常 數,I表示虛數單位,pi表示圓周率,因此上面 的公式可以直接如下計算:

      print(E**(I*pi)+1)

      輸出結果為:0

      高數計算,我Python替你承包了

      SymPy除了可以直接計算公式的值之外, 還可以幫助做數學公式的推導和證明。歐拉恒等 式可以將 代入下面的歐拉公式得到:

      在SymPy中可以使用expand()將表達式展 開e^ix,用它展開看(expand()中x是復數):

      print(expand(exp(I*x), complex=True) )

      輸出:

      為了指定x為實數,需要重新定義x

      x = Symbol("x", real=True)

      print(expand(exp(I*x), complex=True))

      輸出:

      數學表達式

      創建一個符號使用symbols(),此函數會 返回一個Symbol對象,用于表示符號變量, 其有name屬性,這是符號名,如:

      x0=symbols('x0')

      其中左邊的x是一個符號對象,而右邊括 號中用引號包著的x是符號對象的name屬性, 兩個x不要求一樣,但是為了易于理解,通常將 符號對象和name屬性顯示成一樣,另外name 屬性是引號包起來的。如要同時配置多個符號 對象,symbols()中多個name屬性可以以空格或者逗號分隔,然后用引號包住,如下:

      一次配置三個符號,由于符號對象名和 name屬性名經常一致,所以可以使用var() 函數,如:

      上面的語句創建了名為x0、y0、x1、y1的4 個Symbol對象,同時還在當前的環境中創建 了 4個同名的變量來分別表示這4個Symbol對象。 因為符號對象在轉換為字符串時直接使用它的 name 屬性,因此在交互式環境中看到變量,x0的 值就是x0,但是査看變量x0的類型時就可以發現 ,它實際上是一個Symbol對象。

      type(x0)

      數學公式中的符號一般都有特定的假設,例 如m、n通常是整數,而z經常表示復數。在用 var()、symbols()或Symbol()創建Symbol對 象時,可以通過關鍵字參數指定所創建符號的假 設條件,這些假設條件會影響到它們所參與的計 算。

      例如,下面創建了兩個整數符號m和n, 以 及一個正數符號x:

      每個符號都有許多is_*屬性,用以判斷符 號的各種假設條件。

      SymPy的表達式實際上是一個由Basic類 的各種對象進行多層嵌套所得到的樹狀結構。 下面的函數使用遞歸顯示這種樹狀結構:

      除了使用SymPy中預先定義好的具有特殊 運算含義的數學函數之外,還可以使用 Function()創建自定義的數學函數:

      f = Function("f")

      當我使用f創建一個表達式時,就相當于創 建它的一個實例:

      t = f(x,y)

      isinstance(t, Function)

      t.func

      f的實例t可以參與表達式運算:

      t+t*t

      f(x, y)**2 + f(x, y)

      表達式變換和化簡

      simplify()可以對數學表達式進行化簡:

      simplify((x+2)**2 - (x+1)**2)

      輸出:2*x + 3

      radsimp()可以對表達式進行分母有理化,它所得到的表達式分母將沒有無理數:

      radsimp(1/(sqrt(5)+2*sqrt(2)))

      輸出:(-sqrt(5) + 2*sqrt(2))/3

      fraction()獲得ratsimp()通分之后的分子或分母(它不能自動對表達式進行通分):

      fraction(ratsimp(1/x+1/y))

      輸出:(x + y, x*y)

      cancel()對分式的分子分母進行約分計算(不能對內部函數的表達式進行約分):

      cancel((x**2-1)/(1+x))

      輸出:x-1

      cancel(sin((x**2-1)/(1+x)))

      輸出:sin(x**2/(x + 1) - 1/(x + 1))

      trigsimp()是用來對三角函數進行化簡用的:

      trigsimp(sin(x)**2+2*sin(x)*cos(x)+cos(x)**2)

      輸出:sin(2*x) + 1

      expand_trig()展開三角函數表達式:

      expand_trig(sin(2*x+y))

      輸出:(2*cos(x)**2 - 1)*sin(y) + 2*sin(x)*cos(x)*cos(y)

      log()展開乘積和冪運算:

      x,y=symbols("x,y",positive=True)

      expand(log(x*y**2))

      輸出:log(x) + 2*log(y)

      factor()對多項表達式進行因式分解:

      factor(15*x**2+2*y-3*x-10*x*y)

      輸出:(3*x - 2*y)*(5*x - 1)

      integrate()可以用來計算積分,它包含定積分和不定積分:

      integrate(f,x):計算不定積分∫ fdx

      integrate(f,(x,a,b)):計算定積分∫a/b fdx

      當然有時候我們也有多重積分要運算,不要擔心,我們還可以用

      Integrate(f,x,y)來計算雙重積分:∫ ∫ fdxdy

      Integrate(f,(x,a,b),(y,c,d)):計算雙重定積分(x上下限ab,y上下限cd)

      輸出:-x*cos(x) + sin(x))

      當然,sympy還可以求極限,我們大學學的第一個內容!

      語法:limit(function, variable, point),如果是求趨于0,那就把第三個變量改成0,limit(f,x,0),如果是求趨于無窮,第三個變量改成oo(字母)limit(sin(x)/x, x, oo)

      輸出:1

      輸出:0

      其他還有一些求導,矩陣的算法,平面幾何算法,詳細見一下sympy文檔,這里因為時間問題,我們就不再去介紹了,有問題的可以私聊小編!

      下期見!

      Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:兩種方式實現Spring 業務驗證
      下一篇:【FPGA】Buffer專題介紹(二)
      相關文章
      亚洲开心婷婷中文字幕| 亚洲日韩精品A∨片无码| 久久亚洲日韩看片无码| 精品亚洲综合在线第一区| 亚洲国产精品一区二区第一页免| 亚洲AV综合永久无码精品天堂| 国产成人精品日本亚洲18图 | 亚洲中文字幕无码av在线| 亚洲视频手机在线| 亚洲精品美女视频| 亚洲欧洲日产国码在线观看| 亚洲性色成人av天堂| 亚洲不卡视频在线观看| 亚洲91精品麻豆国产系列在线| 亚洲嫩草影院在线观看| 亚洲AV无码久久久久网站蜜桃 | 亚洲经典在线观看| 亚洲中文无码a∨在线观看| 亚洲日本乱码卡2卡3卡新区| 亚洲一区二区三区国产精华液| 2020天堂在线亚洲精品专区| 中文字幕乱码亚洲无线三区| 亚洲精品乱码久久久久久V| 久久亚洲精品无码gv| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲av无码国产精品色午夜字幕| 亚洲成AV人片在WWW色猫咪| 青青草原精品国产亚洲av| 亚洲视频一区二区三区| 亚洲噜噜噜噜噜影院在线播放| 亚洲一区二区三区免费视频| 亚洲无码一区二区三区| 国产亚洲综合久久| 久久国产成人精品国产成人亚洲| 亚洲区小说区图片区QVOD| 久久亚洲AV无码精品色午夜麻| 亚洲视频在线观看不卡| 中文字幕亚洲综合久久综合| 美国毛片亚洲社区在线观看| 国产精品亚洲mnbav网站| 亚洲av永久无码精品秋霞电影影院|