How to make curve fit equation for 2 variables?
82 views (last 30 days)
Show older comments
Muhammad Raza
on 21 Mar 2014
Commented: Muhammad Raza
on 26 Mar 2014
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
0 Comments
Accepted Answer
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
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.
More Answers (1)
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.
0 Comments
See Also
Categories
Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!