使用Scipy最小二乘法使数据与移位功率曲线最佳匹配

时间:2017-03-25 13:26:52

标签: numpy least-squares

我是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])

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"