Python基于最小二乘法實(shí)現(xiàn)曲線(xiàn)擬合示例
本文實(shí)例講述了Python基于最小二乘法實(shí)現(xiàn)曲線(xiàn)擬合。分享給大家供大家參考,具體如下:
這里不手動(dòng)實(shí)現(xiàn)最小二乘,調(diào)用scipy庫(kù)中實(shí)現(xiàn)好的相關(guān)優(yōu)化函數(shù)。
考慮如下的含有4個(gè)參數(shù)的函數(shù)式:
構(gòu)造數(shù)據(jù)
import numpy as np from scipy import optimize import matplotlib.pyplot as plt def logistic4(x, A, B, C, D): return (A-D)/(1+(x/C)**B)+D def residuals(p, y, x): A, B, C, D = p return y - logisctic4(x, A, B, C, D) def peval(x, p): A, B, C, D = p return logistic4(x, A, B, C, D) A, B, C, D = .5, 2.5, 8, 7.3 x = np.linspace(0, 20, 20) y_true = logistic4(x, A, B, C, D) y_meas = y_true + 0.2 * np.random.randn(len(y_true))
調(diào)用工具箱函數(shù),進(jìn)行優(yōu)化
p0 = [1/2]*4 plesq = optimize.leastsq(residuals, p0, args=(y_meas, x)) # leastsq函數(shù)的功能其實(shí)是根據(jù)誤差(y_meas-y_true) # 估計(jì)模型(也即函數(shù))的參數(shù)
繪圖
plt.figure(figsize=(6, 4.5)) plt.plot(x, peval(x, plesq[0]), x, y_meas, 'o', x, y_true) plt.legend(['Fit', 'Noisy', 'True'], loc='upper left') plt.title('least square for the noisy data (measurements)') for i, (param, true, est) in enumerate(zip('ABCD', [A, B, C, D], plesq[0])): plt.text(11, 2-i*.5, '{} = {:.2f}, est({:.2f}) = {:.2f}'.format(param, true, param, est)) plt.savefig('./logisitic.png') plt.show()
PS:這里再為大家推薦兩款相似的在線(xiàn)工具供大家參考:
在線(xiàn)多項(xiàng)式曲線(xiàn)及曲線(xiàn)函數(shù)擬合工具:
http://tools.jb51.net/jisuanqi/create_fun
在線(xiàn)繪制多項(xiàng)式/函數(shù)曲線(xiàn)圖形工具:
http://tools.jb51.net/jisuanqi/fun_draw
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
TensorFlow在MAC環(huán)境下的安裝及環(huán)境搭建
小編在論壇中看到很多朋友在尋找TensorFlow的環(huán)境搭建圖文步驟以及安裝的具體流程,在此小編給大家整理了一篇非常詳細(xì)的圖文流程,希望能夠幫助到你。2017-11-11Python實(shí)現(xiàn)的讀取電腦硬件信息功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的讀取電腦硬件信息功能,結(jié)合實(shí)例形式分析了Python基于wmi庫(kù)讀取電腦CPU、磁盤(pán)、網(wǎng)絡(luò)、進(jìn)程等硬件信息相關(guān)操作技巧,需要的朋友可以參考下2018-05-05簡(jiǎn)單掌握Python的Collections模塊中counter結(jié)構(gòu)的用法
counter數(shù)據(jù)結(jié)構(gòu)被用來(lái)提供技術(shù)功能,形式類(lèi)似于Python中內(nèi)置的字典結(jié)構(gòu),這里通過(guò)幾個(gè)小例子來(lái)簡(jiǎn)單掌握Python的Collections模塊中counter結(jié)構(gòu)的用法:2016-07-07python中l(wèi)xml.etree 和 ElementTree 的區(qū)別解析
lxml.etree 提供了更多的功能,例如 XPath、XSLT、Relax NG、 和 XML 模式支持,etree 對(duì) Python unicode 字符串的想法與 ElementTree 不同,本文給大家介紹python中l(wèi)xml.etree 和 ElementTree 的區(qū)別,感興趣的朋友一起看看吧2024-01-01Python使用Windows API創(chuàng)建窗口示例【基于win32gui模塊】
這篇文章主要介紹了Python使用Windows API創(chuàng)建窗口操作,結(jié)合實(shí)例形式分析了Python基于win32gui模塊調(diào)用Windows API創(chuàng)建窗口具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05python 中if else 語(yǔ)句的作用及示例代碼
python中的if-else語(yǔ)句是一個(gè)判斷性語(yǔ)句,既然是判斷就要有條件以及滿(mǎn)足條件與不滿(mǎn)足的情況,一下將講解一些if-else語(yǔ)句的知識(shí),需要的朋友參考下吧2018-03-03