#載入庫
import numpy as np
from scipy.optimize import leastsq
import pylab as pl
#定義函式形式和誤差
def func(x,p):
a,k,theta=p
return a*np.sin(2*np.pi*k*x+theta)
def residuals(p,y,x):
return y-func(x,p)
#生成訓練資料
x=np.linspace(0,-2*np.pi,100)
a,k,theta=10,0.34,np.pi/6
y0=func(x,[a,k,theta])
y1=y0+2*np.random.randn(len(x))
#trian the para
p0=[7,0.2,0]#在非線性擬合中,初始引數對結果的好壞有很大的影響
para=leastsq(residuals,p0,args=(y1,x))
a1,a2,a3=para[0]
#plot
import matplotlib.pyplot as plt
plt.figure(figsize=(8,6))
plt.scatter(x,y1,color="red",label="sample point",linewidth=3) #畫樣本點
y=a1*np.sin(2*np.pi*a2*x+a3)
plt.plot(x,y,color="orange",label="fitting line",linewidth=2) #畫擬合直線
plt.legend()
plt.show()
結果如下:
python最小二乘法擬合圓 最小二乘法擬合圓
有一系列的資料點 我們知道這些資料點近似的落在乙個圓上。依據這些資料預計這個圓的引數就是乙個非常有意義的問題。今天就來講講怎樣來做圓的擬合。圓擬合的方法有非常多種,最小二乘法屬於比較簡單的一種。今天就先將這樣的。我們知道圓方程能夠寫為 x?xc 2 y?yc 2 r2 通常的最小二乘擬合要求距離的平...
python最小二乘法擬合圓 最小二乘法擬合圓
有一系列的資料點 我們知道這些資料點近似的落在乙個圓上。依據這些資料預計這個圓的引數就是乙個非常有意義的問題。今天就來講講怎樣來做圓的擬合。圓擬合的方法有非常多種,最小二乘法屬於比較簡單的一種。今天就先將這樣的。我們知道圓方程能夠寫為 x?xc 2 y?yc 2 r2 通常的最小二乘擬合要求距離的平...
最小二乘法 直線擬合
功能描述 利用最小二乘法求斜率 xytopx 截距 方法1 xytopy 斜率 ncount 點數 void min2method double xytopy,double xytopx,int x,int y,int ncount graphics.drawline pen,point x i y...