How to make curve fit equation for 2 variables?

82 views (last 30 days)
Hello,
I have got a function with respect to 2 different variables. I want to make an equation of that function with respect to both the variables (for example: f(x1,x2) = ax1.x2^2 + bx1 +cx1^2). Is there anyone have an idea how i can make it? please let me know..
I am looking forward
Cheers Raza

Accepted Answer

Star Strider
Star Strider on 21 Mar 2014
Edited: Star Strider on 21 Mar 2014
I went into some detail in my answer 2D data fitting - Surface. (It’s easier to hyperlink to it than to repeat it here.)
To use your equation in a regression model, this will work:
f = @(B,XY) B(1).*XY(:,:,1).*XY(:,:,2).^2 + B(2).*XY(:,:,1) + B(3).*XY(:,:,1).^2;
To see what it produces with arbitrary parameters and data:
[X Y] = meshgrid(0:10, 0:10);
XY(:,:,1) = X;
XY(:,:,2) = Y;
B = [3; 5; 7];
figure(1)
mesh(X, Y, f(B,XY))
grid on
xlabel('X')
ylabel('Y')
zlabel('Z')
It creates a surface.
  11 Comments
Star Strider
Star Strider on 26 Mar 2014
Edited: Star Strider on 26 Mar 2014
If you’re simply looking to fit your data to a polynomial surface rather than fit it to a model, I suggest using polyfitn that Image Analyst refers to in his answer.
Muhammad Raza
Muhammad Raza on 26 Mar 2014
Thank you so much sir .. I got what I was looking for. Your help regarding curve fitting is greatly appreciated :)
Cheers Raza

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 25 Mar 2014
I'll also put in a plug for John D'Errico's polyfitn http://www.mathworks.com/matlabcentral/fileexchange/34765-polyfitn which I use to create a 2D polynomial fit to a surface, for example to create a smooth background image from a noisy, actual, image snapped from a camera.
Attached is a demo that uses it on a standard MATLAB demo image.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!