最小二乘擬合
阿新 • • 發佈:2018-04-02
有用 初始 等於 計算 合成 mage RR 周期性 ()
來自:某小皮
最優化函數庫Optimization
優化是找到最小值或等式的數值解的問題。scipy.optimization子模塊提供函數最小值,曲線擬合和尋找等式的跟的有用算法。
最小二乘擬合
假設有一組實驗數據(xi, yi),事先知道它們之間應該滿足某函數關系yi = f(xi),通過這些已知的信息,需要確定函數f的一些參數。例如,如果函數f是線性函數f(x) = kx + b,那麽參數k和b就是需要確定的值。
如果用p表示函數中需要確定的參數,那麽目標就是找到一組p,使下面的函數s的值最小:
這種算法被稱作最小二乘擬合(Least-square fitting)。
使用leastsq()進行最小二乘擬合計算。leastsq()只需要將計算誤差的函數和待確定參數的初始值傳遞給它即可。
Leastsq()函數傳入誤差計算函數和初始值,該初始值將作為誤差計算函數的第一個參數傳入;
計算的結果r是一個包含兩個元素的元組,第一個元素是一個數組,表示擬合後的參數k,b;第二個元素如果等於1,2,3,4中的其中一個整數,則擬合成功,否則將返回mesg。
示例:
使用最小二乘對帶噪聲的正弦波數據進行擬合:
擬合得到的參數雖然和實際的參數有可能完全不同,但是由於正弦函數具有周期性,實際上擬合的結果和實際的函數是一致的。
import numpy as np from scipy.optimize import leastsq def func(x, p):
數據擬合所用的函數:A*sin(2*pi*k*x + theta)
A, k, theta = p return A*np.sin(2*np.pi*k*x + theta) def residuals(p, y, x):
實驗數據x, y和擬合函數之間的誤差,p為擬合需要找到的系數
最小二乘擬合