Matlab多元非线性拟合及检验

您好,请问如何用matlab进行二元非线性拟合呢?
其中,
x1=[0,3,6,9];
x2=[1,2,3,4];
y=[0.401,0.389,0.383,0.384];
想要拟合的模型是y=a+bx1+cx2^d,请问如何获得常数值?

你好,a、b、c、d统一用一个4行1列的向量a表示

f=@(a,x) a(1)+a(2)*x(:,1) + a(3)*x(:,2).^a(4);
x1=[0,3,6,9];
x2=[1,2,3,4];
y=[0.401,0.389,0.383,0.384];
x = [x1', x2'];
y = y';
a0 = [1;2;3;4];%参数初始值
a = nlinfit(x,y,f,a0)

由于你的X和Y样本太少,只有四组,而未知参数也有四个,所以模型是过度拟合了,你可以适当增加样本数目哦
如有帮助,还望采纳哟