日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python拟合曲线求方程_matplotlib中对数曲线拟合及lin方程的求解

發(fā)布時(shí)間:2023/12/10 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python拟合曲线求方程_matplotlib中对数曲线拟合及lin方程的求解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我正在為我的數(shù)據(jù)繪制一條最佳擬合曲線。這是一個(gè)非常糟糕的數(shù)據(jù)樣本,但是為了簡(jiǎn)單起見(jiàn),讓我們假設(shè),我希望在log-log比例中畫一條最適合的直線。在

我想我已經(jīng)用回歸法做了,它會(huì)給我一個(gè)合理的擬合線。但我想用scipy中的曲線擬合函數(shù)再次檢查它。我還想提取擬合線的方程。在import numpy as np

import matplotlib.pyplot as plt

from scipy.optimize import curve_fit

import scipy.optimize as optimization

x = np.array([ 1.72724547e-08, 1.81960233e-08, 1.68093027e-08, 2.22839973e-08,

2.23090589e-08, 4.28020801e-08, 2.30004711e-08, 2.48543008e-08,

1.08633065e-07, 3.24417303e-08, 3.22946248e-08, 3.82328031e-08,

3.97713860e-08, 3.44080732e-08, 3.81526816e-08, 3.30756706e-08

])

y = np.array([ 4.18793565e+12, 4.40554864e+12, 4.48745390e+12, 4.50816705e+12,

4.57088190e+12, 4.60256574e+12, 4.66659380e+12, 4.79733449e+12, 7.31139083e+12, 7.53355564e+12, 8.03526122e+12, 8.14704284e+12,

8.47227414e+12, 8.62978548e+12, 8.81048873e+12, 9.46237161e+12

])

# Regression Function

def regress(x, y):

"""Return a tuple of predicted y values and parameters for linear regression."""

p = sp.stats.linregress(x, y)

b1, b0, r, p_val, stderr = p

y_pred = sp.polyval([b1, b0], x)

return y_pred, p

# plotting z

allx, ally = x, y # data, non-transformed

y_pred, _ = regress(np.log(allx), np.log(ally)) # change here # transformed input

plt.loglog(allx, ally, marker='$\\star$',color ='g', markersize=5,linestyle='None')

plt.loglog(allx, np.exp(y_pred), "c--", label="regression") # transformed output

# Let's fit an exponential function.

# This looks like a line on a lof-log plot.

def myExpFunc(x, a, b):

return a * np.power(x, b)

popt, pcov = curve_fit(myExpFunc, x, y, maxfev=1000)

plt.plot(x, myExpFunc(x, *popt), 'r:',

label="({0:.3f}*x**{1:.3f})".format(*popt))

print "Exponential Fit: y = (a*(x**b))"

print "\ta = popt[0] = {0}\n\tb = popt[1] = {1}".format(*popt)

plt.show()

我再次為一個(gè)糟糕的數(shù)據(jù)集道歉。你的幫助將不勝感激。在

我的情節(jié)是這樣的:

在此處輸入代碼

總結(jié)

以上是生活随笔為你收集整理的python拟合曲线求方程_matplotlib中对数曲线拟合及lin方程的求解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。