Python最小二乘法解非線性超定方程組

2022-03-14 17:12:58 字數 665 閱讀 6311

求解非線性超定方程組,網上搜到的大多是線性方程組的最小二乘解法,對於非線性方程組無濟於事。

這裡分享一種方法:scipy庫的scipy.optimize.leastsq函式。

import

numpy as np

from scipy.optimize import

leastsq

from math import

sqrt

deffunc(i):

x,y,z =i

return

np.asarray((

x**2-x*y+4,

x**2+y**2-x*z-25,

z**2-y*x+4,

x**3+y**3+z**3-127.6))

root = leastsq(func, np.asarray((1,1,1)))  # 初始猜測值

print(root[0])

執行結果:

[ 1.00886951  5.00607313  1.036197  ]

缺點:只是普通的最小二乘解法,對於引數過於相近的情況,比如病態雅克比矩陣的求解效果不好。

有知道l-m演算法(levenberg-marquardtalgorithm)的朋友望告知。

線性最小二乘法

example f x 12 ax b 22 f x frac parallel ax b parallel 2 2 f x 2 1 a x b 22 最小化下式時x的值。首先計算 xf x at a x b ata x at b big down xf x a t ax b a tax a tb ...

最小二乘法 非線性擬合 正則化 python實現

需要一些數學推導 lambda的確定不太清楚,0.001是試出來的 當函式發生變化時,或者擬合函式最高係數變化時,lambda的取值都應當相應變化 1 import numpy as np 2import matplotlib.pyplot as plt 34 plt.rcparams font.s...

線性回歸,最小二乘法

回歸的定義 對於乙個點集,使用乙個函式去擬合該點集,使點集與擬合函式間的誤差最小,如果這個函式曲線是一條直線,則是線性回歸,如果曲線是二次曲線,則是二次回歸。廣義線性回歸 廣義線性模型是線性模型的擴充套件,其特點是不強行改變資料的自然度量,資料可以具有非線性和非恆定方差結構 59 主要是通過聯結函式...