我有两个类型变量的函数:y = f(x1,x2)要近似,我想用最小二乘法来做它。
Polyval和Polyfit使用二维函数,这里我需要解决三维函数。
提前致谢。
G.B。
答案 0 :(得分:3)
我已经用这种方式解决了它
A = [x1。^ 2,x1。* x2,x2。^ 2,x1,x2,1(长度(x1),1)]; C = A \ý;
yEval = c(1)* x1。^ 2 + c(2)* x1。* x2 + c(3)* x2。^ 2 + c(4)* x1 + c(5)* x2 + c (6);
非常感谢你的帮助。
此致 G.B。
答案 1 :(得分:0)
查看您的函数,看起来您正在使用完整的二次响应曲面来适应。 您可以使用x2fx函数生成所有术语。这里没什么开创性的,但它可能会更清洁一些。您也可以使用它不仅仅是OLS拟合,而且还使用强大的方法。 这是我写的一些代码:
% set up terms for the variables, linear, quadratic, interactive, and constant
paramVEcomponents= x2fx([MAPkpa,RPM],'quadratic');
% robust fit using a Talwar weighting function
[coefs,robuststats]= robustfit(paramVEcomponents(2:6),(CAM2.*TEMPd./MAPkpa),'talwar');
% generating points for all the data we have based on the new parameters of the response surface
GMVEhat= paramVEcomponents * coefs;