How to find equation of curve if just graph is given
Ältere Kommentare anzeigen
Hello All,
I have just graph with me in matlab and from that I have to find equation of curve. Can anybody help me to find that ?
Antworten (1)
Conrad
am 27 Jul. 2012
0 Stimmen
You will have to make some assumptions about the functional form of the curve... for example if you know the curve is of the form y = b1 + b2*x + b3*x^2 + ...., you can solve for b by b = ((X'X)^-1)*X'*Y where X = [1 x x^2 ...].
Conrad
5 Kommentare
Here is an example:
% Create dummy data.
f = inline('3 + 2*x + 4*x.^2');
x = (0:0.1:2)';
y = f(x);
% Recover coefficients.
X = [ones(numel(x),1) x x.^2];
b = (inv(X'*X))*X'*y;
You will see that the b coefficients corresponds exactly to the coefficients of the original polynomial function.
In general, if you chosen functional form is not the true functional form of the data, the solution will give the "closest" curve in the least squares sense. You could also try more exotic approaches....piece wise fitting etc.
Conrad
am 27 Jul. 2012
Sorry no easy answer here. How is the data generated or what is the underlying model? Without having an underlying model/functional form there are an infinite number of possibilities... you will have to make an assumption.
If you really have no idea, you could assume various basic forms and see which one fits the data the best in a least squares sense.
John D'Errico
am 27 Jul. 2012
Bearbeitet: John D'Errico
am 27 Jul. 2012
NO, NO, NO!!!!!!!! Don't teach people to use the normal equations, i.e., b = ((X'X)^-1)*X'*Y. Terrible numerically. Just silly when a better solution exists. You are squaring the condition number of the problem, so this is bad when the system is at all ill-conditioned. Then you are using inv on a problem where it is less than desirable.
b = X\Y;
Don't continue to propagate the bad things you learned.
Conrad
am 27 Jul. 2012
John, rather than just criticising I would prefer, as I am sure Pranav would as well, that you present your better solution.
Kategorien
Mehr zu 2-D and 3-D Plots finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!