天天看點

python中如何反解函數_用Python如何解數學方程

我們先從簡單的來

例題1: 這是北師大版國小六年級上冊課本95頁的一道解方程練習題:

大家可以先口算一下,這道題裡面的x的值為200

接下來我們用python來實作,代碼如下,每一句代碼後面都寫有解釋語:

import sympy # 引入解方程的專業子產品sympy

x = sympy.symbols("x") # 申明未知數"x"

a = sympy.solve([x+(1/5)*x-240],[x]) # 寫入需要解的方程體

print(a) # 列印出結果

大家應該注意到了,在寫入方程體的時候,(上面的第三行代碼)我們并沒有原封不動的将原方程寫進去,而是換了一種寫法,将等号右邊的數移到了等号左邊(當然,移動的過程中注意要變号哦!)然後将等号丢棄,最後變成了一個式子。這個是我們的一個固定寫法,大家記住就可以了。

注意:注意!!在數學裡面數字和未知數相乘時中間可以不加任何符号,比如2x就代表2乘以x,但在計算機裡,乘法必須寫成*乘的形式。比如2*x,而不能直接寫出2x,此處一定要注意!

這是運作後的結果:

大家可以看到,結果被一對大括号包裹着,冒号前是要求的未知數,冒号後即是程式運作後得出的結果。

我們的計算機還是很聰明的,是吧!

例題2: 接下來我們來試一下兩個未知數的

這是北師大版國中八年級上冊課本132頁的一道練習題:

用python來實作,

import sympy # 引入解方程的專業子產品sympy

x,y = sympy.symbols("x y") # 申明未知數"x"和"y"

a = sympy.solve([3*x -2*y-3,x+2*y-5],[x,y]) # 寫入需要解的方程組

print(a) # 列印出結果

運作結果:

是以正确答案為:C答案

例題3: 接下來,我們再來嘗試一下分式方程:

以下為2018成都市的中考數學真題A卷第8題:

(A) X = 1 (B) X = -1 (C) X=3 (D) X = -3

用同樣的程式邏輯,填好我們要求的方程,代碼如下:

import sympy

x = sympy.symbols("x")

a = sympy.solve([((x+1)/x + 1/(x-2))-1],[x])

print(a)

運作結果:

例題4:最後,我們來嘗試一下對于數學中考裡必考的巧算代數式的值:

以下為2018成都市的中考數學真題B卷第21題:

正常解題思路分析:

一、這是一道根據方程組的解計算代數式的值的正常考題,出這道題的意圖就在于讓同學們在不計算出未知數的值的基礎上就能找到一定的技巧,求出答案。

二、如果單從聯立兩個方程,解方程組,然後再将解出來的x和y帶入後面的代數式求結果的話,計算量會稍微大一些,而且計算過程需要非常仔細小心,因為這裡面牽涉到小數,更或者是一些無理數,那我們正常的解決辦法就是,觀察後面的代數式,将其變為一個完全平方式子

,再将前面兩個方程構造成x+2y的模式,即将兩方程相加,等号左邊的相加,等号右邊的相加,得到一個新方程

,化簡,得

,是以原式得

用Python實作:

import sympy

x,y = sympy.symbols("x y")

a = sympy.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)

注意:

1. 不要省略乘号“*”

2. “**”代表乘方

運作結果截圖:

至此,我們就已經完成了用Python來解方程的示範,同學們學會了嗎,如果還有疑問,歡迎留下你們的問題,我們一起來探讨。

附錄:準備工作 sympy的安裝

1.安裝sympy方法一:

缺點,太慢,還有可能會報紅色錯誤

3. 安裝sympy方法二:

優點,添加豆瓣源,速度快,不會報紅色延時的錯誤,推薦

碼小易Python老師會不定時的更新一些跟python相關又和數學相關的一些有趣的程式,喜歡就關注我吧。