MATLAB求解多元线性回归时,方程左边为表达式时,应该如何编写,例子如下

如题所述

MATLAB求解多元线性回归,你可以这样来考虑:
1、明确具体的数据
x=[0,。。。,0.5];
y=[400,。。。,800];
z=[log(C(0,400)),。。。,log(C(0.5,800))];
x=[x1,y1];y=z;
2、自定义函数
func=@(a,x)a(1)*(x-a(4))^2+a(2)*(x-a(5))^2+a(3)+ε;
3、确定初值,a0=[a10 a20 a30 a40 a50];说明a10、a20、a30、a40、a50是一个具体的数值
4、用nlinfit函数求拟合系数,k1=a(1),k2=a(2),k3=a(3),x0=a(4),y0=a(5)
a= nlinfit(x,y,func,a0);追问

那请问如果xy集合有300多个,x1,y1向量我准备直接从Excel里面用xlsread导出来,那z向量要怎么表达呢

那请问如果xy集合有300多个,x1,y1向量我准备直接从Excel里面用xlsread导出来,那z向量要怎么表达呢

追答

z向量可以通过 log(C(x,y)) 表达式计算得到。

追问

那,请问一下,这个程序有结果出来,但是有报错,而且结果不对,是什么原因呢? 附件中是数据,可以随便用N个数据替代

追答

如果代码没有大问题,那问题就在初值选取上。办法只有一个,也就是要有耐心地去调整。

追问

好的,谢谢

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