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个数据替代
追答如果代码没有大问题,那问题就在初值选取上。办法只有一个,也就是要有耐心地去调整。
追问好的,谢谢