![](/img/trans.png)
[英]Finding a max value in a list that is also a multiple of another parameter using recursion
[英]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.