Matlab 非线性模型拟合
你好 我在Matlab中得到了以下代码:Matlab 非线性模型拟合,matlab,Matlab,你好 我在Matlab中得到了以下代码: ds1 = 2.0709 -3.0379 3.1447 -1.4320 4.0650 -2.5355 modelfun = @(b,w)(b(1)*10.^w+b(2)); beta0 = [1 1]; mdl = NonLinearModel.fit(ds1,modelfun,beta0); 我试图创建一个符合方程的非线性模型:y=beta(1)*10^(w)+beta(2),但最终出现以下错误: 使用非线
ds1 =
2.0709 -3.0379
3.1447 -1.4320
4.0650 -2.5355
modelfun = @(b,w)(b(1)*10.^w+b(2));
beta0 = [1 1];
mdl = NonLinearModel.fit(ds1,modelfun,beta0);
我试图创建一个符合方程的非线性模型:y=beta(1)*10^(w)+beta(2),但最终出现以下错误:
使用非线性模型拟合时出错(第837行)
必须提供模型定义和模型系数的初始值
有什么想法吗?这个模型是需求吗?我不确定这是否是我的第一选择 从绘制数据开始。(不是很多,是吗?)一个简单的二阶多项式将是一个精确的拟合,因为你有三个点
y = c0 + c1*x + c2*x^2
或者,以双方的10为基数进行转换可能会更适合您
这里不需要非线性模型。但如果你真的需要一个,众所周知,非线性解决方案需要一个起点。他们试图以迭代的方式逐步找到真正的解决方案(如果有)
可能没有解决方案,或者您可能选择了一个不好的起点,或者步骤太小而无法及时完成,或者太大而直接跳过了您想要的答案
所有这些使得非线性问题比线性问题更难解决。谢谢,我已经转换了我的数据,p=polyfit(w1,y1,1);现在一切正常!