下面是一些简单的代码,演示了如何使用Statistics Toolbox的12a版本执行非线性回归。
注意:NonLinearModel。Fit要求您为各种参数提供启动条件。(提供良好的启动条件有助于确保优化求解器收敛于全局解而不是局部解)
X = 2* pi*rand(0,1);
X = sortrows (X);
Y = 9 + 7*sin(2*X + 4*pi) + randn(100,1);
散射(X, Y)
生成一个合适的
散射(X, Y)
持有在
B0 =意味着(Y);
B1 = (max(Y) - min(Y))/2;
B2 = 2;
B3 = 0;
myFit = NonLinearModel.fit (X, Y,'y ~ b0 + b1*sin(b2*x1 + b3)', [b0, b1, b2, b3])
方法(myFit)
持有在
情节(X, myFit.Fitted)
持有从
myFit2 = NonLinearModel。fit (X, Y, @ (b, X) (b b(1) +(2) *罪(b (3) * X + b (4))), [B0, B1, B2, B3])