1

我想使用幂律来拟合我的数据点,因为我必须计算 v 的值。但是我的拟合参数误差太大,尽管曲线似乎通过了所有数据点。如何减少错误?在此处输入图像描述

`import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import math
import scipy 
from scipy import optimize

x_data= np.array([30, 45, 60, 75])
y_data= np.array([0.42597867, 0.26249343, 0.19167837, 0.08116507])

fig = plt.figure()
ax= fig.add_subplot(111)

def ff(L,v,c):
    return (L**(-1/v)+c)


ax2.scatter(x_data, y_data, marker='s',s=4**2,)


pfit,pcov = optimize.curve_fit(ff,x_data,y_data)
print("pfit: ",pfit)
print("pcov: ",pcov.shape)
#print(pcov)
perr = np.sqrt(np.diag(pcov))
x=np.linspace(20,85,1000)

ax2.plot(x,ff(x,*pfit),color='red')`
4

0 回答 0