我需要帮助将数据从最小二乘意义拟合到非线性函数。给定数据,当我有以下等式时,我该如何继续?将最小二乘意义下的数据拟合成非线性方程
F(X)= 20 + AX + B * E ^(C * 2×)
因此,我想找到一个,b和c。如果它是产品,我会通过在整个函数中使用自然对数来线性化函数,但在这种情况下我似乎无法做到这一点。
感谢
我需要帮助将数据从最小二乘意义拟合到非线性函数。给定数据,当我有以下等式时,我该如何继续?将最小二乘意义下的数据拟合成非线性方程
F(X)= 20 + AX + B * E ^(C * 2×)
因此,我想找到一个,b和c。如果它是产品,我会通过在整个函数中使用自然对数来线性化函数,但在这种情况下我似乎无法做到这一点。
感谢
当MATLAB解决这个最小二乘您可以使用nlinfit
工具,它不需要曲线拟合工具箱(我不认为...)
喜欢的东西
f = @(b,x)(20 + b(1)*x + b(2)*exp(b(3)*2*x));
beta0 = [1, 1, 1];
beta = nlinfit(x, Y, f, beta0);
问题,它将系数传递到向量b
中的匿名函数f
。 nlinfit
返回beta
向量中这些系数的最终值。 beta0
是b(1)
,b(2)
和b(3)
的值的初始猜测。 x
和Y
是具有要合适的数据的向量。
或者,您可以在自己的文件中定义函数,如果它稍微复杂一些。对于这种情况,你会像
function y = my_function(b,x)
y = 20 + b(1)*x + b(2)*exp(b(3)*2*x);
end
和其他代码(文件my_function.m
中)会是什么样子还
beta0 = [1, 1, 1];
beta = nlinfit(x, Y, @my_function, beta0);
你可以尝试cftool
这是拟合数据的交互式工具。第二部分我不太明白。如果你更详细地描述它可能会有所帮助。
谢谢!这非常有帮助! – user3342830
@ user3342830嗨!我很高兴它帮助:-)如果你发现这回答了你的问题,你可以点击箭头下方的绿色复选标记来显示你的[接受](http://stackoverflow.com/help/accepted-answer)这个答案? – darthbith