我是Python / Scipy / Numpy的新手。
我已成功使用此处的示例来使用最小二乘法平滑数据。但在某些情况下,它的准确性在极端情况下是不合适的。
似乎移位功率曲线更合适,但我在 a(x-b)^c
函数上遇到语法问题,我不确定这是否适用于{{1}方法。
目前的代码是:
log10
任何人都可以指出我正确的方向。
由于 彼得
样本数据(已测量)压力:
from scipy import *
from scipy import optimize
# # READ DATA FROM CSV FILE
DIA, FlowRate = genfromtxt('#ThisDataFile#', delimiter=',', unpack='true')
# # CONVERT DATA TO LOG ITS MORE ACCURATE
logx = log10(DIA)
logy = log10(FlowRate) #crlf#
# # define our (line) fitting function
fitfunc = lambda p, x: p[0] + p[1] * x
errfunc = lambda p, x, y: (y - fitfunc(p, x))
pinit = [5.0, -5.0]
out = optimize.leastsq(errfunc, pinit,
args=(logx, logy), full_output=1)
pfinal1 = out[0]
amp1 = 10.0**pfinal1[0]
print(amp1, pfinal1[1])
答案 0 :(得分:1)
示例数据 压力=" 1,2,3,4,5,6,7,8" 流速=" 58.33254,30.11954,16.02723,9.47614,5.75362,3.63373,2.37532,1.58426"