這裏不手動實現最小二乘,而是調用scipy庫中實現的相關優化函數。
考慮以下具有四個參數的函數:
結構數據
12345678910112131415import numpy as NP from scipy import optimize import matplotlib . py plot as pltdef log istic 4(x,A,B,C,D):return(A-D)/(1+(x/C)* *Linspace (0,20,20) y _ true = logistic 4 (x,a,b,c,d
1234 P0 =[1/2]* 4 plesq =優化。leastsq (residuals,P0,args = (y _ meas,x))# least sq的作用其實就是估計模型(y_meas-y_true)#。
12345678 PLT . figure(figsize =(6,4.5))plt.plot(x,peval(x,plesq[0]),x,y_meas,' o ',x,y_true)plt.legend(['Fit ',' noise ',' true'],loc = ' upper left ')PLT . title(' noise數據(測量值)的最小平方)' for i,(param,True,est) in enumerate(zip('ABCD ',[A,B,C格式(param,true,param。