python用最小二乘法擬合正弦函式

2021-09-20 21:11:31 字數 973 閱讀 1999

#載入庫

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...