您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么編寫(xiě)代碼搞定Python中任何線性方程”,在日常操作中,相信很多人在怎么編寫(xiě)代碼搞定Python中任何線性方程問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么編寫(xiě)代碼搞定Python中任何線性方程”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
在三行函數(shù)中解決任何線性方程式的技巧,甚至可以在兩行代碼中重寫(xiě),不想了解一下嘛?據(jù)筆者所知,這是解決Python中線性方程的最有效方法。
defsolve_linear(equation,var='x'): expression =equation.replace("=","-(")+")" grouped =eval(expression.replace(var,'1j')) return -grouped.real/grouped.imag
這是標(biāo)準(zhǔn)代數(shù)過(guò)程示例,最后得出答案。
它的原理是怎樣的呢?首先定義一個(gè)線性方程式,它必須以純形式可解。這意味著它只能有一個(gè)變量,通常寫(xiě)為x。二元方程需要求解多個(gè)線性方程(方程組)。
線性方程式由三個(gè)主要部分組成:常數(shù),變量和乘數(shù)。
不管是幾元方程還是運(yùn)算的組合(加,減,乘和除),在括號(hào)范圍內(nèi)都是有效的。只要遵守線性方程的這些定義,就可以通過(guò)函數(shù)解決。
接下來(lái)逐步分解該函數(shù),用以下線性方程式的演示為例。
將第一行中等式右側(cè)的整個(gè)表達(dá)式移到左側(cè),將等式轉(zhuǎn)換為要求值的表達(dá)式。
expression= equation.replace("="," - (")+")"
IDE中的演示如下:
等式中的所有“變量”已移至一側(cè),等號(hào)后已無(wú)變量,該表達(dá)式等于0。
在第二行代碼中計(jì)算新表達(dá)式的值,表示為ax + b =0。使用Python的內(nèi)置復(fù)數(shù)處理,其中j表示數(shù)學(xué)常數(shù)i =√-1。
grouped= eval(expression.replace(var,'1j')
注意,在函數(shù)初始化時(shí)將var指定為x。
eval函數(shù)有一個(gè)表達(dá)式。通過(guò)用已知的j(i)替換未知變量x,Python將兩類(lèi)表達(dá)式元素分開(kāi)求值,即變量和常量。對(duì)表達(dá)式求值時(shí),答案為a * j +b,Python認(rèn)定這是一個(gè)復(fù)數(shù)。由于使用j代替了x,所以結(jié)果是一個(gè)簡(jiǎn)化且易于求解的線性方程。
首先,在eval()的演示工作流程中,它可以接收字符串中給出的任何Python命令:
因此,數(shù)學(xué)表達(dá)式與任何Python表達(dá)式的處理方式相同。eval()的獨(dú)到之處在于無(wú)需手動(dòng)執(zhí)行繁重的工作,而是利用Python的字符串處理。
Python會(huì)認(rèn)為x實(shí)際上是i來(lái)自動(dòng)求值字符串,這與下圖中的操作相同:
最后獲得了簡(jiǎn)化形式ax + b = 0。通過(guò)標(biāo)準(zhǔn)和簡(jiǎn)單的代數(shù)運(yùn)算,發(fā)現(xiàn)x等于-b / a,或者通過(guò)創(chuàng)建的復(fù)數(shù)來(lái)運(yùn)算,實(shí)數(shù)部分的負(fù)數(shù)(上例中為9)除以虛數(shù)乘數(shù)(上例中為1)。
return -grouped.real/grouped.imag
在最后一行代碼中,通過(guò)返回復(fù)數(shù)實(shí)數(shù)部分的負(fù)數(shù)除以虛數(shù)部分來(lái)簡(jiǎn)單地返回此代數(shù)步驟。
通過(guò)操縱和利用Python的內(nèi)置數(shù)學(xué)求值功能,這三行函數(shù)就可以對(duì)任何線性方程式(無(wú)論其長(zhǎng)度或復(fù)雜度)進(jìn)行處理啦。
到此,關(guān)于“怎么編寫(xiě)代碼搞定Python中任何線性方程”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。