matlab非线性拟合,并求SSE、s-quare

y=a.*x1+b.*x1.*x2+c.*x1.*x3;

x1=[1,2,3,4,5,6,7,8];
x2=[4,5,6,3,2,1,7,8];
x3=[7,8,6,5,4,3,2,1];
y = [20,48,75,60,55,42,168,208];
如何拟合出啊a,b,c,三个系数啊?curving fitting工具应该不行吧?另外假如拟合出来,怎么求它的方差、修正方差等等,matlab里有这样的工具吗,难道只能自己编程序么

对于问题用curving fitting工具是不能求得其拟合系数。可以通过变换,把非线性拟合问题转换成线性拟合问题。

运行结果:

a=1,b=3,c=1

SSE(和方差)=31084,RMSE(均方根)=71.9768,R-square(确定系数)=1

追问

多谢帮忙 这个东西很有用!
想问一下
X=【x1 x1.*x2 x1.*x3】是把x1*x2和x1*x3都看成1个变量对吧?还有XTX,XTY和YTY都表示什么意思?另外X'*X 之间不加个点么? 算数据的时候除了你说的这三项外 还有一项是R的平方,表示相关度,这个相关度是R-square的平方吗?

温馨提示:答案为网友推荐,仅供参考
相似回答