gpt4 book ai didi

gnuplot - 用gnuplot拟合直线

转载 作者:行者123 更新时间:2023-12-05 01:37:18 26 4
gpt4 key购买 nike

我想使用gnuplot获得许多曲线仪的一阶多项式方程的拟合参数(F(x)= a * x + b)。一些曲线精确地表示为直线。

例如,如果我的数据看起来像

1 1
2 2
3 3
4 4


可以用f(x)= x表示(参数a = 0,b = 0)。

但是下面的gnuplot代码

# regression line
f(x) = a*x + b
fit f(x) './test.dat' u 1:2 via a, b


无法计算拟合参数,出现以下信息

Singular matrix in Invert_RtR


更新:如果我为fit函数定义迭代次数,似乎gnuplot不会“崩溃”

FIT_MAXITER = 1
# regression line
f(x) = a*x + b
fit f(x) './test.dat' u 1:2 via a, b


它应该是a = 1和b = 0。但是gnuplot给

Final set of parameters            Asymptotic Standard Error
======================= ==========================

a = 0.989067 +/- 0.004339 (0.4387%)
b = 0.0761393 +/- 0.02692 (35.36%)


我如何“强制” gnuplot计算a和b的正确值?

最佳答案

我发现了两种解决方案:

1)在您的拟合函数中添加一个微小的偏移量:

f(x) = a*x + b + 1e-9


这样可以防止奇异性问题,并可以完美拟合(a = 1,b = -1e-9)。

2)完全消除b参数

f(x) = a*x


假设您的拟合线将全部经过0,这当然可能不是您想要的。

关于gnuplot - 用gnuplot拟合直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11314751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com