真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python3最小二乘法擬合實例

最小二乘法擬合

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊網(wǎng)站空間、營銷軟件、網(wǎng)站建設、杜集網(wǎng)站維護、網(wǎng)站推廣。

       最小二乘法(又稱最小平方法)是一種數(shù)學優(yōu)化技術。它通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。利用最小二乘法可以簡便地求得未知的數(shù)據(jù),并使得這些求得的數(shù)據(jù)與實際數(shù)據(jù)之間誤差的平方和為最小。

     假設有一組實驗數(shù)據(jù)(x[i], y[i]),我們知道它們之間的函數(shù)關系:y = f(x),通過這些已知信息,需要確定函數(shù)中的一些參數(shù)項。例如,如果f是一個線型函數(shù)f(x) = k * x + b, 那么參數(shù)k和b就是我們需要確定的值。如果將這些參數(shù)組用p來表示的話, 那么我們就是需要找到一組p值使得如下公式中的S函數(shù)最?。?/p>

                                                                            

python3最小二乘法擬合實例

這種算法被稱為最小二乘法擬合。

scipy中的子函數(shù)庫optimize已經(jīng)提供了實現(xiàn)最小二乘擬合算法的函數(shù)leastsq。下面是用leastsq進行數(shù)據(jù)擬合的一個例子。

import numpy as np

from scipy.optimize import leastsq

import pylab as pl

def func(x, p):

    """

    數(shù)據(jù)擬合所用的函數(shù):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):

    """

    實驗數(shù)據(jù)x,y和擬合函數(shù)之間的差, p為擬合需要找到的系數(shù)

    """

    return y - func(x, p)

x = np.linspace(0, -2 * np.pi, 100)

A, k, theta = 10, 0.34, np.pi / 6 #真實數(shù)據(jù)的函數(shù)參數(shù)

y0 = func(x, [A, k, theta]) #真實的y數(shù)據(jù)

y1 = y0 + 2 * np.random.randn(len(x)) #加入噪聲之后的數(shù)據(jù)

p0 = [7, 0.2, 0] #第一次猜測的擬合參數(shù)

#調用leastsq進行數(shù)據(jù)擬合

#residuals為計算誤差的函數(shù)

#p0為擬合參數(shù)的初始值

#args為需要擬合的實驗數(shù)據(jù)

plsq = leastsq(residuals, p0, args = (y1, x))

print("真實參數(shù):", [A, k, theta])

print("擬合參數(shù):", plsq[0]) #實驗數(shù)據(jù)擬合后的參數(shù)

pl.plot(x, y0, label = u"真實數(shù)據(jù)")

pl.plot(x, y1, label = u"帶噪聲的實驗數(shù)據(jù)")

pl.plot(x, func(x, plsq[0]), label =u"擬合數(shù)據(jù)")

pl.legend()

pl.show()

python3最小二乘法擬合實例


當前文章:python3最小二乘法擬合實例
當前鏈接:http://weahome.cn/article/gdedjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部