原因:
拟合的本质是一个优化过程,就是把给定函数形式的部分参数作为优化变量,通过一定的算法调整这些变量,使得拟合函数的值与原始数据总的误差最小(一般来说是最小二乘意义上的)。那么,这些待优化的变量就涉及到初始值的问题,也就是这里所谓的Start point,或者更具体一点说,就是你的拟合函数表达式a*x+b*sin(x)+c中的系数[a,b,c]。
解决:
调用fit时,通过第四个参数options提供Start point,而options参数可通过函数fitoptions创建。
参考代码:
x=[1;1.5;2;2.5;3];
y=[0.9;1.7;2.2;2.6;3];
p=fittype('a*x+b*sin(x)+c','independent','x');
opt=fitoptions(p);
opt.StartPoint=[1 2 3];
f=fit(x,y,p,opt);
plot(f,x,y);
上述代码相当于指定系数的初始值为a=1, b=2, c=3。
希望对楼主有帮助,如有疑问可继续追问。
但是这段代码可以运行呀。
警告可以忽略了呀
有些时候五阶或者七阶拟合也会出现警告的