matlab - 两个变量最小二乘函数逼近

时间:2010-12-28 10:31:19

标签: matlab multidimensional-array least-squares

我有两个类型变量的函数:y = f(x1,x2)要近似,我想用最小二乘法来做它。

Polyval和Polyfit使用二维函数,这里我需要解决三维函数。

提前致谢。

G.B。

2 个答案:

答案 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;