对于下面的代码,我无法获得a、B和C的单个值的标准错误。我试过几种不同的方法,要么得到0,要么得到一个奇异值。下面的方法是我尝试过的最新方法,但不起作用。有人有什么建议吗?我对Python还不熟悉
import numpy as np
import pandas as pd
import scipy
import pylab
import matplotlib
import matplotlib.pyplot as plt
import math
import sympy as sp
from scipy.optimize import curve_fit
x = np.array([600,650,700,750,800,850,900,950,1000])
y = np.array([.124,.627,2.492,8.187,23.06,57.24,127.9,261.6,496.5])
lny = np.log(y)
plt.plot(x,lny,'.')
plt.show()
def func(x,a,b,c):
return a+b/x+c*np.log(x)
popt, pcov = curve_fit(func,x,lny)
print popt
a,b,c = (popt)
print a
print b
print c
stdvfunc = np.std(func(x,a,b,c))
print stdvfunc
a、b和c的标准偏差为
分别
以下是参考和复制的文件。请参见粗体斜体文本
https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html
二维阵列
popt的估计协方差。对角线提供参数估计的方差要计算参数的一个标准偏差误差,请使用
sigma参数如何影响估计的协方差取决于绝对sigma参数,如上所述
如果解的雅可比矩阵没有满秩,“lm”方法返回一个填充np.inf的矩阵,另一方面,“trf”和“dogbox”方法使用Moore-Penrose伪逆来计算协方差矩阵
相关问题 更多 >
编程相关推荐