python复杂非线性方程_非线性方程python入门——屠龙刀
感謝師兄提供的題圖。(這圖應該是p的,我找電視劇,沒謝三哥這三個字。)
早些年做科研的時候,其實就用倚天屠龍走天下,一個矩陣對角化,一個非線性方程求解。當時是研究的冷原子,算是比較新的方向,量子光學的新時代吧。研究冷原子做自洽平均場,做計算會用到非線性方程,還記得是由自由能極值條件得出的一個粒子數(shù)方程,一個能隙方程,聯(lián)立求解。我當年用的c語言的科學計算庫,師兄用的fortran。我們組是非線性方程求解做的,還記得隔壁組用的是非線性最優(yōu)化。
python提供了非線性方程組的求解fsolve函數(shù),具體可以查閱文檔,下面給出簡單使用的舉例。
基本需要一個接受數(shù)組返回同樣長度數(shù)組的函數(shù),隨后調用即可,參數(shù)可以放在args用元組傳遞。
然而,這個函數(shù)只能解決實數(shù)的,我自己寫了個復數(shù)版本的。我不知道有沒有對應的庫,是不是重復造輪子的行為。利用實部和虛部分離的方法,在內部調用fsolve解決。參數(shù)接口只用了最簡單的部分,可以自己酌情加上去。
先寫測試函數(shù)
函數(shù)和測試
值得一提的是,非線性方程求解一般不會是單解,而且依賴初值。所以,實際中,會選好的初值(你預估的結果)。特別在掃場(參數(shù)連續(xù)變化)時,會用前一個結果做后一個的初值,保持結果的連續(xù)性。
完。
總結
以上是生活随笔為你收集整理的python复杂非线性方程_非线性方程python入门——屠龙刀的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习之路 | PTA(甲级)——
- 下一篇: java 导出excel教程_Java导