最有效的求解方法:三行代碼搞定任何線性方程

2020-12-12 讀芯術

全文共1097字,預計學習時長5分鐘

圖源:unsplash

在三行函數中解決任何線性方程式的技巧,甚至可以在兩行代碼中重寫,不想了解一下嘛?據筆者所知,這是解決Python中線性方程的最有效方法。

defsolve_linear(equation,var='x'):

expression =equation.replace("=","-(")+")"

grouped =eval(expression.replace(var,'1j'))

return -grouped.real/grouped.imag

這是標準代數過程示例,最後得出答案。

它的原理是怎樣的呢?首先定義一個線性方程式,它必須以純形式可解。這意味著它只能有一個變量,通常寫為x。二元方程需要求解多個線性方程(方程組)。

線性方程式由三個主要部分組成:常數,變量和乘數。

不管是幾元方程還是運算的組合(加,減,乘和除),在括號範圍內都是有效的。只要遵守線性方程的這些定義,就可以通過函數解決。

接下來逐步分解該函數,用以下線性方程式的演示為例。

將第一行中等式右側的整個表達式移到左側,將等式轉換為要求值的表達式。

expression= equation.replace("="," - (")+")"

IDE中的演示如下:

等式中的所有「變量」已移至一側,等號後已無變量,該表達式等於0。

在第二行代碼中計算新表達式的值,表示為ax + b =0。使用Python的內置複數處理,其中j表示數學常數i =√-1。

grouped= eval(expression.replace(var,'1j')

注意,在函數初始化時將var指定為x。

eval函數有一個表達式。通過用已知的j(i)替換未知變量x,Python將兩類表達式元素分開求值,即變量和常量。對表達式求值時,答案為a * j +b,Python認定這是一個複數。由於使用j代替了x,所以結果是一個簡化且易於求解的線性方程。

首先,在eval()的演示工作流程中,它可以接收字符串中給出的任何Python命令:

因此,數學表達式與任何Python表達式的處理方式相同。eval()的獨到之處在於無需手動執行繁重的工作,而是利用Python的字符串處理。

Python會認為x實際上是i來自動求值字符串,這與下圖中的操作相同:

最後獲得了簡化形式ax + b = 0。通過標準和簡單的代數運算,發現x等於-b / a,或者通過創建的複數來運算,實數部分的負數(上例中為9)除以虛數乘數(上例中為1)。

return -grouped.real/grouped.imag

在最後一行代碼中,通過返回複數實數部分的負數除以虛數部分來簡單地返回此代數步驟。

通過操縱和利用Python的內置數學求值功能,這三行函數就可以對任何線性方程式(無論其長度或複雜度)進行處理啦。

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 多元線性回歸分析:納入多元回歸自變量的確定及求解多元回歸方程
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第五章,多元線性回歸分析:如何求解多元線性回歸方程。對需求預測而言,多元線性回歸更具有實用性和有效性。多元線性回歸分析是一種應用範圍很廣的定量預測方法,是使用最多的需求預測方法之一,也是商業領域應用最廣泛的建模技術之一。多元線性回歸分析幾乎可運用於任何商業環境中,當然,包括需求預測。本章主要內容如下。
  • 「每周一識」一階非齊次線性微分方程求解及應用舉例
    本文介紹一階非齊次線性微分方程的通解的應用、特解求解舉例,以及二階微分方程可用該通解求解的情形。一、方程通解公式一階非齊次線性微分方程的解析式為:y'+p(x)=q(x),則其通解表達式如下:y=e^[-∫p(x)]dx{∫q(x)*e^[∫p(x)dx]dx+c}.
  • 牛頓法——二元二次方程求解可視化
    代數的本質是求解未知量的方程。例如,求x,其中:2x + 5 = 7 很容易看出,上面方程的解是x=1。另一種理解方法是把所有東西都移到一邊,然後調用表達式y,得到:y=2x - 2。然後,我們試著找出y=0求得x。
  • 用Excel求解回歸方程的3種方法:LINEST、散點圖和數據分析工具
    《從入門到高手:線性回歸分析詳解》專欄總目錄見上圖。一元線性回歸方程。線性回歸,是假設因變量和自變量之間存在線性關係,線性關係可以用一元或多元線性方程式的形式表現出來,這個方程式就是線性回歸方程。回歸分析其實就是尋找一條最能「擬合」這組數據的直線,尋找一條最佳直線。(所謂「擬合」,在回歸分析中,是指找出一條穿過數據集的,並且使這組數據集上的每個數據點到直線距離最近的直線。)這個最佳的直線就是我們需要求解的線性回歸直線y=ax+b,即我們需要求出回歸方程中回歸係數a和截距b分別為多少。
  • 線性電阻電路的分析方法_線性電阻的串並聯
    支路電流法是以支路電流為電路變量,對於有n忍個結點、b條支路的電路,可以對任意(n—1)個結點列出(n—1)個獨立的KCL方程,對電路中的獨立迴路列出(b一(n—1)]個KVL方程,然後求出各支路電流的1種基本的方法。
  • 機器學習之多元線性回歸模型梯度下降公式與代碼實現(篇二)
    上一篇我們介紹了線性回歸的概述和最小二乘的介紹,對簡單的一元線性方程模型手推了公式和python代碼的實現。事實上,一種現象常常是與多個因素相聯繫的,由多個自變量的最優組合共同來預測或估計因變量,比只用一個自變量進行預測或估計更有效,更符合實際。因此多元線性回歸比一元線性回歸的實用意義更大比如糖尿病人的血糖變化可能受胰島素、糖化血紅蛋白、血清總膽固醇、甘油三酯等多種指標的影響。但很多情況下,由於自變量的單位是不一樣的,需要做標準化處理。
  • 微分方程重點二:常係數非齊次線性微分方程
    小編在之前的文章:微分方程重點一中講了常係數齊次線性微分方程的內容。那是微分方程難點的一半,接下來的內容是另外一半。讓我們在講解之前,先來對一下答案。題目在微分方程重點一:常係數齊次線性微分方程中。常係數非齊次線性微分方程:形式:我們知道,對於非齊次微分方程的解,就是要齊次方程的通解,加上一個非齊次方程的特解。齊次方程的通解前面的重點一已經講過了。那麼這一節,小編就主要講如何求非齊次方程的特解。
  • 線性回歸分析詳解10(完結篇):線性回歸分析預測的十大步驟
    線性回歸分析專格欄總目錄請見上圖,前9章,我分別講述了回歸分析及與回分析相關的概念,一元、多元線性回歸分析的公式與計算方法,以及多重共線性、回歸方程的精度、顯著性驗證和置信區間等進行回歸分析的重要步驟及其計算方法。至此,以回歸分析進行需求預測的各項知識點及各項準備工作全部完成,我們可以正式的以回歸分析進行需求預測。
  • 小樂數學科普:新量子算法終於破解非線性方程——譯自量子雜誌
    簡單的現象(例如樹汁如何流到樹幹上)很簡單,可以使用數學家稱之為線性微分方程的幾行代碼來捕獲。但是在非線性系統中,相互作用會影響自身:當氣流經過噴氣機的機翼時,氣流會改變分子相互作用,從而改變氣流,依此類推。這種反饋循環會造成混沌,在初始條件下的微小變化會導致後來的行為發生巨大變化,從而使預測幾乎不可能—不管計算機的功能如何。
  • 的方法 線性回歸方程檢驗專題及常見問題 - CSDN
    回歸方程建立及回歸參數的區間估計,但是它們都是建立在假定因變量和自變量線性相關的基礎上。有回歸方程y=a+bx,如果b=0,則Y等於一個常數a,X與Y沒有任何關係,故方程不存在。如果b不等於0,則Y隨著X的變化而變化,說明方程有意義。為了對b=0進行檢驗,需要構造一個檢驗的統計量。
  • 一元二次方程求解過程推導
    一元二次方程的解法主要有配方法、公式法和因式分解法等。首先介紹配方法。將一元二次方程化為如下形式若解得以上是用配方法求解一元二次方程的過程,目的就是為了等式左邊配成一個完全平方式,如果等式右邊為非負,則方程在實數範圍內有解。公式法其實就是把上述用配方法求出的結果直接當成公式來用。
  • 拆分——線性微分方程的解的結構
    話不多說,這篇文章算是微分方程這一章難點的開頭了。我們現在來複習線性微分方程的解的結構。這裡主要討論二階線性方程,並且考試中也只會出現二階,不會考到三階及其以上線性方程的。接下來先講齊次方程的解的結構:y''+P(x)y'+Q(x)y=0補充:線性相關及無關就是說如果所有的k都為0,那麼就是線性無關,否則就是線性相關。
  • 最小二乘法與線性回歸
    回歸分析按照涉及的變量的多少,分為一元回歸和多元回歸分析;按照自變量和因變量之間的關係類型,可分為線性回歸分析和非線性回歸分析。        線性回歸是一種最為我們熟悉的方式,故接下來我們就來詳細了解線性回歸。1.
  • ——一階線性方程
    上一篇的齊次方程大家做得怎麼樣呢?嘿嘿,小編可是當大家都做對了哦!接下來又到了緊張刺激的環節——對答案。題目在小編的上一篇文章:齊不齊——齊次方程中。1.這道題是求其通解,屬於這類型當中的簡單題。第三步,列式子,求解。最後再把那個初值條件一代就可以了。5.嗯?這道題怎麼看著這麼順眼?整理後的一端分子分母上的x和x,y和y的比例竟然一樣。這可不就是上一篇文章中補充的第二類嗎。那我就令u=x+y,然後按照那個套路做就可以了。這幾天小編也看見了有小夥伴們在評論區留下自己的意見,謝謝那些小夥伴們。
  • 線性回歸
    在統計學中,線性回歸(Linear Regression)是利用稱為線性回歸方程的最小平方函數對一個或多個自變量和因變量之間關係進行建模的一種回歸分析
  • 解一元二次方程更容易,美國奧數國家隊教練建議用新方法
    沒錯,它就是一元二次方程的求解公式。相信很多人在初中學習它的時候都很痛苦,因為這個公式實在有點難記。即使你到今天能夠記得,還能回憶起當初的推導過程嗎?這個公式可能真的不太適合初學者。來自CMU數學系的副教授,同時也是美國奧數國家隊教練的羅博深也注意到了這一點,他在博客中提出了一種更容易學會的求解方法。
  • AI求解薛丁格方程,兼具準確度和計算效率,登上《自然-化學》
    計算這一能量的方式就是求解薛丁格方程。換句話說,求解出薛丁格方程,就可以知道化學反應的結果。然而,這並非易事。此前,我們可以精確求解的原子只有氫原子——僅具備一個質子和一個電子。最近,來自柏林自由大學的科學家提出利用人工智慧計算薛丁格方程的基態解,相關研究發表在 Nature Chemistry 上。
  • 求解微分方程,用seq2seq就夠了,性能遠超 Mathematica、Matlab
    這篇論文提出了一種新的基於seq2seq的方法來求解符號數學問題,例如函數積分、一階常微分方程、二階常微分方程等複雜問題。其結果表明,這種模型的性能要遠超現在常用的能進行符號運算的工具,例如Mathematica、Matlab、Maple等。
  • 理解薛丁格方程——堪稱最偉大的公式之一
    此外,任何的線性組合的特徵函數ψ也將解薛丁格方程的一般形式的解決方案是:a是服從歸一化條件的複數:如果波函數是一個以上本徵函數ψ的線性組合,那麼我們說該系統處於與總和中出現的本徵函數相對應的狀態的疊加中。如果對系統進行測量,我們將發現它處於狀態k的概率為|a|,質點的波動函數為ψ。
  • 用深度神經網絡求解『薛丁格方程』,AI開啟量子化學新未來|Nature...
    由此,人們也形成了一種既定印象,所有難以理解的問題都可以通過求解量子力學基本方程來解決。但事實上能夠精確求解方程的體系少之又少。薛丁格方程是量子力學的基本方程,即便已經提出70多年,它的氫原子求解還是很困難,超過2個電子的氫原子便很難保證精確度。不過,多年來科學家們一直在努力攻克這一難題。