回歸計算機本質——使用 Python 解數學方程

2022-01-02 藍橋雲課精選

從計算機這個名字就可以看出來,它的本行就是計算,起初發明計算機也是用來處理複雜計算用的。今天我們就來學習一下,如何用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. 效果

最終效果如下:


一、SymPy庫的安裝實驗樓環境中默認沒有SymPy庫。 使用

安裝即可。

如果沒有用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 解數學方程~

相關焦點

  • 方程的計算機處理914(5) _python-3
    計算機語言運用--數值計算9-方程的計算機處理914(5) _python-3計算機:電子線路組成的計算機器。
  • 方程的計算機處理914(1)_python-3
    計算機語言運用--數值計算9-方程的計算機處理914(1)_python-3計算機:電子線路組成的計算機器。
  • AI解微分方程,數學是這樣一步步「淪陷」的
    用稀疏回歸來尋找方程我們要介紹的第一個通過機器學習方法求解偏微分方程的文章,是一個來自華盛頓大學的團隊在2017年發表在了Science最著名的子刊Science Advances上面。這篇文章從某些角度來講,真正開啟了AI解方程的熱潮;後來大量的文章都是或多或少從這篇文章中得到了靈感。根據谷歌學術顯示,這篇文章從發表到現在僅僅3年多,就已經有432的引用量了。
  • 可以解方程的超材料
    此時,建立數學模型,或者說方程就派上了用場。一般音響師的做法是先建立方程,通過方程推知音樂廳各個位置的聲音效果,等找到了合適的方案後,再安裝音響系統。在現在的科技水平下,這個方程也不需要音響工程師來求解,計算器、計算機等就可以幫我們解決問題。
  • 高中數學:線性回歸方程
    一、推導2個樣本點的線性回歸方程例1、設有兩個點A(x1,y1),B(x2,y2),用最小二乘法推導其線性回歸方程並進行分析。
  • python是如何利用窮舉法去解數學問題?
    這個問題用數學方法就是非常簡單,就是排列組合的問題;但是要把它轉化為計算機去求解,不知道如何下手。其實很多人用數學會解決問題,用計算機不會解決,除了多計算機的一些基本規則不了解外,更多其實還是自己無法將自己的想法描述出來,我一直覺得,如果你能用文字或者語言描述清楚問題,那麼你就可以用程式語言去解決。
  • 【Python 第53課】 數學運算
    今天從打飛機遊戲裡中斷一下,說些python的基礎。數值運算:math.ceil(x)對x向上取整,比如x=1.2,返回2math.floor(x)對x向下取整,比如x=1.2,返回1math.pow(x,y)指數運算,得到x的y次方math.log(x)對數,默認基底為e。可以使用base參數,來改變對數的基底。
  • 五年級數學解方程方法及難點歸納,有它,不愁孩子方程不會解
    導語:五年級數學解方程方法及難點歸納,有它,不愁孩子方程不會解常聽人抱怨,現在的小學數學太難了,有的大學生可能一年級的題都需要解半天才能解出來,充分說明數學已經不是當初學的那麼簡單了,雖然學的知識點沒怎麼變化,但是出題方式越來越新穎,導致了數學難解
  • 初中數學《解一元一次方程》面試試講逐字稿
    這節課就跟著老師來一起學習一下,我們如何來解一元一次方程,那麼相信學完了之後同學們就知道了對消與還原的意思啦。 新授: 請看大屏幕上的題目,那麼同學們從這個題目當中可以看到什麼樣的數學信息呢?
  • 線性回歸的求解:矩陣方程和梯度下降、數學推導及NumPy實現
    前一節我們曾描述了線性回歸的數學表示,最終得出結論,線性回歸的機器學習過程就是一個使得損失函數最小的最優化問題求解過程。Normal Equation對於損失函數,可以使其導數為零,尋找損失函數的極值點。
  • 伽羅瓦,解得開數學史上最高深的方程,卻解不開愛情的本質
    如果不涉及到高等數學的人,很難知道伽羅瓦的名字,畢竟在燦若繁星的數學家中,他只是划過夜空的一顆流星,留下一道璀璨奪目的軌跡後便倏然而逝。我們先了解一下他對數學發展史上的偉大貢獻。學理科的鋼鐵直男應該知道,數學的高次方程在四次以後根式解就戛然而止,換言之用根式解在四次方程後已經行不通。當時的歐拉,高斯,拉格朗日這樣最偉大的數學大神在高次方程面前無一不敗下陣來,甚至拉格朗日驚嘆地說:「高次方程的根式解是不可能解決的數學問題之一,這是在向人類的智慧挑戰!」
  • 方程的計算機處理93(3)_Cv6
    >自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……或者說:科學與工程技術應用中的數值計算、……、……方程的計算機處理這裡說的方程,是以實數域為計算範圍
  • 遺傳算法010.解線性方程
    與數學領域的解方程不同,數學領域可以直接用分數或者無理數來表達,比如:但是在計算機領域,就必須表達為:import matha = math.sqrt(2)b = 2/3print("a = {} b = {} a*b = {}".format
  • 北洋數學講堂 江松院士帶你探索偏微分方程
    2019年4月20日上午,中國科學院院士、北京應用物理與計算數學研究所研究員江松做客天津大學,在會議樓第七會議室做主題為「偏微分方程:作用、分析與數值求解」的報告,帶領我校師生一探偏微分方程的奧秘。數學學院院長孫笑濤主持了活動。
  • python機器學習--線性回歸
    python機器學習--線性回歸線性回歸是最簡單的機器學習模型,其形式簡單,易於實現,同時也是很多機器學習模型的基礎。對於一個給定的訓練集數據,線性回歸的目的就是找到一個與這些數據最吻合的線性函數。針對線性回歸算法在之前的數模案例也有涉及喔,歡迎去看看上一篇博客數學建模預測模型實例--大學生體測數據模型在這裡插入圖片描述OLS線性回歸Ordinary Least Squares 最小二乘法一般情況下,線性回歸假設模型為下,其中w為模型參數
  • 含納維-斯託克斯方程(氣象學)實例,微分方程 VS 機器學習
    微分方程模型示例納維-斯託克斯方程(氣象學)這一模型被用於天氣預測。它是一個混沌模型,當輸入存在一點點不準確,預測結果就會大相逕庭。這就是為什麼天氣預報經常是錯誤的,天氣模擬使用超級計算機完成。差分方程輸出離散的數字序列(例如,每 5 年的人口普查結果),而微分方程則建模連續數值(即持續發生的事件)。上述 5 個模型(微分和差分方程)都是機械模型,我們可以在其中自行選擇系統的邏輯、規則、結構或機制。當然,並不是每次試驗都會成功,反覆試驗在數學建模中非常重要。
  • 方程的計算機處理96(3)_C++vs
    >自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……或者說:科學與工程技術應用中的數值計算、……、……方程的計算機處理這裡說的方程,是以實數域為計算範圍
  • 方程的計算機處理94(5)_Cvs
    >自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……或者說:科學與工程技術應用中的數值計算、……、……方程的計算機處理這裡說的方程,是以實數域為計算範圍
  • 數學技巧||一元三次方程求解,大除法解一元三次方程!
    本來我上次說或許不會再更新了關於這篇文章,但是想到這個和前面的一篇方法類似,給大家做個補充說明吧~~~~前面給大家分享了四篇關於解一元三次方程的一些特殊技巧,現在在知乎上有了越來越多的閱讀和回答,問的人也很多,這裡再給大家寫一個另一類的解法吧,前面寫的文章如下 :數學技巧||個人高中偶然發現的一個數學技巧【十字交叉法】
  • 初一數學暑假銜接,解一元一次方程,對小學解方程的延伸方法更多
    小學數學中,要求能用方程表示簡單情境中的等量關係,了解方程的作用,了解等式的性質,能用等式的性質解簡單的方程。初中數學中,能根據具體問題中的數量關系列出方程,經歷估計方程解的過程,掌握等式的基本性質,能解一元一次方程。