python数学方程计算_用Python解方程
一元一次方程
例題1: 這是北師大版小學六年級上冊課本95頁的一道解方程練習題:
大家可以先口算一下,這道題里面的x的值為200
接下來我們用python來實現,代碼如下,每一句代碼后面都寫有解釋語:
#一元一次方程
x = sy.symbols("x") #申明未知數"x"
a = sy.solve((x+(1/5)*x-240),[x]) #寫入需要解的方程體
print(a)
大家應該注意到了,在寫入方程體的時候,(上面的第三行代碼)我們并沒有原封不動的將原方程寫進去,而是換了一種寫法,將等號右邊的數移到了等號左邊(當然,移動的過程中注意要變號哦!)然后將等號丟棄,最后變成了一個式子。這個是我們的一個固定寫法,大家記住就可以了。
注意:注意!!在數學里面數字和未知數相乘時中間可以不加任何符號,比如2x就代表2乘以x,但在計算機里,乘法必須寫成*乘的形式。比如2*x,而不能直接寫出2x,此處一定要注意!
這是運行后的結果:
大家可以看到,結果被一對大括號包裹著,冒號前是要求的未知數,冒號后即是程序運行后得出的結果。
我們的計算機還是很聰明的,是吧!
例題2: 接下來,我們再來嘗試一下分式方程:
以下為2018成都市的中考數學真題A卷第8題:
用同樣的程序邏輯,填好我們要求的方程,代碼如下:
x = sy.symbols("x")
a = sy.solve([(x+1)/x+1/(x-2)-1],[x])
print(a)
#{x: 1}
運行結果:
二元一次方程
例題3: 接下來我們來試一下兩個未知數的
這是北師大版初中八年級上冊課本132頁的一道練習題:
用python來實現,
#二元一次方程
x,y = sy.symbols("x y")
a= sy.solve([3*x-2*y-3,x+2*y-5],[x,y])print(a)#{x: 2, y: 3/2}
運行結果:
所以正確答案為:C答案
以下為2018成都市的中考數學真題B卷第21題:
用Python實現:
x,y = sy.symbols("x y")
a= sy.solve([x + y - 0.2,x + 3*y -1],[x,y])
x=a[x]
y=a[y]
re= x**2+4*x*y +4*y**2
print(re)
注意:
不要省略乘號“*”
“**”代表乘方
運行結果截圖:
多元線性方程組求解
求解線性方程組比較簡單,只需要用到一個函數(scipy.linalg.solve)就可以了。
importnumpy as npfrom scipy.linalg importsolve#輸出系數矩陣
a=np.array([[3,1,-2],[1,-1,4],[2,0,3]])#值
b=np.array([5,-2,2.5])#計算
x=solve(a,b)#打印結果
print(x)
[0.5 4.5 0.5]
sympy 數學方程求解
SymPy是比較強大的,可以做到符號的化簡,求值等。SymPy是符號數學的Python庫。它的目標是成為一個全功能的計算機代數系統,同時保持代碼簡潔、易于理解和擴展。 SymPy完全是用Python寫的,并不需要外部的庫。
可以做到先設置變量,然后打印不需要設置值的功能,例如:在我們日常書寫中print(x+y)是會報錯的,然而使用了如下就不會報錯了:
from sympy import *x,y= symbols('x,y')print(x + y+x+y)
2*x + 2*y
公式與代碼之間轉換:
加號 +
減號 -
除號 /
乘號 *
指數 **
對數 log()
e的指數次冪 exp()
總結
以上是生活随笔為你收集整理的python数学方程计算_用Python解方程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Echart 制作柏拉图——带二八法则线
- 下一篇: Blackhat 2012 USA 工具