從計算機這個名字就可以看出來,它的本行就是計算,起初發明計算機也是用來處理複雜計算用的。今天我們就來學習一下,如何用python解決數學問題。
說到數學題,相信大家都不陌生,從小學到大學都跟數學打交道。 其中初中的方程組,高中的二次曲線,大學的微積分最為頭疼。比如這個:
今天我們就來學習一下,如果用python解決實際的數學問題。
from sympy import *
f = Function('f')
x = Symbol('x')
print dsolve(diff(f(x),x) - 2*f(x)*x,f(x))
一、課程介紹
1. 內容簡介今天我們將使用python 來解決方程組問題,微積分問題,矩陣化簡。
2. 課程知識點所需知識:
將學到的知識:
如何用SymPy庫解線性方程組
如何用SymPy庫解微積分相關習題(極限與積分)
如何用SymPy庫解微分方程
如何用SymPy庫化簡矩陣
3. 實驗原理簡單介紹一下要用到SymPy庫。SymPy是符號數學的Python庫。它的目標是成為一個全功能的計算機代數系統,同時保持代碼簡潔、易於理解和擴展。 SymPy完全是用Python寫的,並不需要外部的庫。
大家可能還是不太明白,我稍微解釋一下,單純用語言內置的運算與變量解決的是,由值求結果。如:
上式中的x與y在這條語句執行前你肯定得賦值的,否則就會出錯。
而符號計算不同,你可以在之前將其設為符號。
#僅用於說明,不要直接運行
x = Symbol('x')
y = Symbol('y')
print x + y
上述代碼是可以的。因為Sympy庫將x與y轉換成了符號(概念上)。 經過介紹,你應該稍微懂了一點,經過下面的介紹,你會更加明白。
4. 效果最終效果如下:
安裝即可。
如果沒有用sudo會導致權限不足問題。
二、解二元一次方程功能實現解方程的功能主要是使用Sympy中solve函數實現。
示例題目是:
三、符號表示方程中的符號
from sympy import *
x = Symbol('x')
y = Symbol('y')
或者
from sympy import *
x, y = symbols('x y')
第二個用空格隔開,下面代碼中用x,y。括號裡面的其實可以隨意定義,因為是顯示用。 比如:
但考慮到易讀性還是相同比較好。
四、方程表示代碼表示與手寫還是有區別的,下面列出常用的:
加號 +
減號 -
除號 /
乘號 *
指數 **
對數 log()
e的指數次冪 exp()
對於長的表達式,如果不確定,就加小括號
題目中表達式可表示為:
2 * x - y - 3 = 03 * x + y - 7 = 0
由於需要將表達式都轉化成右端等於0,這裡把常數3和7移到等式左邊。
五、利用solve函數解方程在解決例子之前,我們先解決一個一元一次的方程。
雖然很容易口算出來,我們還是要用solve函數
print solve(x * 2 - 4, x)#result#[2]
solve:第一個參數為要解的方程,要求右端等於0,第二個參數為要解的未知數。還有一些 其他的參數,想了解的可以去看官方文檔。
下面進行例題求解:
solve([2 * x - y - 3, 3 * x + y - 7],[x, y])
完整代碼為:
from sympy import *
x = Symbol('x')
y = Symbol('y')print solve([2 * x - y - 3, 3 * x + y - 7],[x, y])
結果如下:
麻麻,我跟正確答案一樣哦~
後面還有高難度的,解微積分:
示例題目一(求極限):
示例題目二(求定積分):
篇幅有限,具體解法看點擊閱讀原文觀看。當然最好還是打開電腦,直接來實驗樓擼代碼!
關於該項目具體的開發流程以及代碼詳解,由於篇幅有限,這裡就不詳細的介紹了,點擊最下方的「閱讀原文」,即可馬上查看全部的文檔教程~
在線開發環境:
項目開發學習,自然少不了動手實踐,實驗樓給每個學習者都提供了在線的開發環境,可以跟著教程隨時動手操作學習~
在線開發環境示意圖
點擊「閱讀原文」,即可查看如何使用 Python 解數學方程~