簡體   English   中英

使用數據集查找參數值

[英]Finding value of a parameter using set of data

我有一組 x 和 y 的值,我正在尋找一種方法來查找 function 的參數值。

我有一個 function y = Ax^{4/3} 我正在考慮使用 curvefit,但我不確定這是否是正確的方法。

我嘗試將 function 線性化並使用 polyfit 找到斜率,但如果我刪除一些點,斜率會發生根本變化。

編輯:我試過 curvefit 並且發生了一些奇怪的事情。 curvefit 給我 A=0.55,但這個值根本不適合。 但是,0.055 似乎有效。 這是我的代碼。

def func(A,x):
  return A*x**(4/3)
popt,pcov = curve_fit(func,x[:18], y[:18])

任何幫助將不勝感激。

以下是有關如何將數據擬合到您的 model 的示例:

導入相關庫:

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit

定義x值:

x = np.linspace(0, 10)

定義一個 function 代表你的 model:

def f(x: np.ndarray, a: float) -> float:
    return a * x ** (4/3)

讓我們從上面的 model 采樣數據並添加噪聲:

y = f(x, a=16) * np.random.uniform(1, 2, len(x))

執行曲線擬合:

popt, pcov = curve_fit(f, x, y)

Plot 結果:

plt.scatter(x, y)
plt.plot(x, f(x, *popt), c="r")
plt.show()

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM