4

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

Polyval 和 Polyfit 处理二维函数,这里我需要求解一个三维函数。

提前致谢。

国标

4

2 回答 2

3

我已经以这种方式解决了

A = [x1.^2,x1.*x2,x2.^2,x1,x2,ones(长度(x1),1)]; c=A\y;

yEval = c(1)*x1.^2+c(2)*x1.*x2+c(3)*x2.^2+c(4)*x1+c(5)*x2+c(6) ;

无论如何感谢您的帮助。

问候,GB

于 2010-12-28T13:57:38.547 回答
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;
于 2010-12-28T14:30:33.073 回答