用Python解方程


我們先從簡單的來

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

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

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

 

1 import sympy   # 引入解方程的專業模塊sympy
2 x = sympy.symbols("x")   # 申明未知數"x"
3 a = sympy.solve([x+(1/5)*x-240],[x])   # 寫入需要解的方程體
4 print(a)  # 打印出結果

 

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

 

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

這是運行后的結果:

 

大家可以看到,結果被一對大括號包裹着,冒號前是要求的未知數,冒號后即是程序運行后得出的結果。

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

 

 

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

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

 

python來實現,

 

1 import sympy   # 引入解方程的專業模塊sympy
2 
3 x,y = sympy.symbols("x y")   # 申明未知數"x"和"y"
4 a = sympy.solve([3*x -2*y-3,x+2*y-5],[x,y])   # 寫入需要解的方程組
5 print(a)  # 打印出結果

 

運行結果:

 

 

 

所以正確答案為:C答案

 

 

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

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

 

 

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

 

1 import sympy
2 
3 x = sympy.symbols("x")
4 a = sympy.solve([((x+1)/x + 1/(x-2))-1],[x])
5 print(a)

 

 

運行結果:

 

 

 

 

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

 

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

 

 

常規解題思路分析:

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

二、如果單從聯立兩個方程,解方程組,然后再將解出來的x和y帶入后面的代數式求結果的話,計算量會稍微大一些,而且計算過程需要非常仔細小心,因為這里面牽涉到小數,更或者是一些無理數,那我們常規的解決辦法就是,觀察后面的代數式,將其變為一個完全平方式子,再將前面兩個方程構造成x+2y的模式,即將兩方程相加,等號左邊的相加,等號右邊的相加,得到一個新方程

,化簡,得,所以原式得

 

Python實現:

 

1 import sympy
2 
3 x,y = sympy.symbols("x y")
4 a = sympy.solve([x + y - 0.2,x + 3*y -1],[x,y])
5 x = a[x]
6 y = a[y]
7 re = x**2+4*x*y +4*y**2
8 print(re)

注意:

  1. 不要省略乘號“*”
  2. “**”代表乘方

 

運行結果截圖:

 

 

 

 

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

 

 

 

 

附錄:

准備工作 sympy的安裝

 

 

 

 

 

筆者會不定時的更新一些跟python相關又和數學相關的一些有趣的程序,喜歡就關注我吧。

特別警示:本文為作者原創作品,禁止不經過本人同意就將其轉載用於商業用途,否則將予以追究。出於學習分享轉載請附上出處鏈接,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM