MATLAB Answers

predicting the trends of diagram

6 views (last 30 days)
dear all
i have 2 data point like this that come from nonlinear equations :
x=[13 8 6 5.5 5 4.9 4.8 4.795 4.792 4.791 4.77 4.76 ]
y=[0.154058581114650 0.149736758736220 0.144520156929792 0.141698370356069 0.136778534431870 0.135128381143846 0.132667849050780 0.132491826080336 0.132381996482185 0.132344176545640 0.131391601025611 0.130704833218502]
plot(x,y)
and when i plot these points i got following diagram
is there any way to predict at which point of x the y is equal to zero
thank you all

  2 Comments

Star Strider
Star Strider on 5 Jun 2018
Be very careful with any extrapolation you do with these (or any other) data. The curve you posted could be part of a function that may never be close to 0.
If the points you plotted are from a deterministic equation, you do not need to interpolate. Simply calculate them.
Please do not ever extrapolate so far beyond the region of known data.
shahin hashemi
shahin hashemi on 5 Jun 2018
ty for your attention star strider
but im sure about existence of a point that has zero y

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 5 Jun 2018
You could try this:
x=[13 8 6 5.5 5 4.9 4.8 4.795 4.792 4.791 4.77 4.76 ]
y=[0.154058581114650 0.149736758736220 0.144520156929792 0.141698370356069 0.136778534431870 0.135128381143846 0.132667849050780 0.132491826080336 0.132381996482185 0.132344176545640 0.131391601025611 0.130704833218502]
plot(x,y, 'bs-')
grid on;
% Find coefficients of a line
[sortedX, sortOrder] = sort(x, 'Ascend');
sortedY = y(sortOrder);
coefficients = polyfit(sortedX(1:2), sortedY(1:2), 1);
% Line equation is y = coefficients(1) * x + coefficients(2)
% y=0 when x = -coefficients(2) / coefficients(1)
xWhenYEquals0 = -coefficients(2) / coefficients(1)
% Plot it.
hold on;
plot(xWhenYEquals0, 0, 'r*');
% Plot line from there tothe first data point.
plot([xWhenYEquals0, sortedX(1)], [0, sortedY(1)], 'r-');
If you want some other model, other than linear extrapolation of the left-most two points, let me know.

  4 Comments

Show 1 older comment
Image Analyst
Image Analyst on 5 Jun 2018
No problem. Can you just suggest a form for the equation? Do you know anything about the physics/theory of the situation to suggest a model? Is it a square root, log, or what???? We have to assume something if we're going to fit a model and extrapolate. By the way, I agree with Star Strider about extrapolation so use with care and that in mind.
shahin hashemi
shahin hashemi on 6 Jun 2018
it s nonlinear equation fill with sin and cos or their square that i solve them with f solve and about the physics i should mention that my x axis is torque that exerted to a system and y axis is minimum eigenvalue of the stability matrix
and as it is obvious when torque Decrease from 13N y axis is decrease too and at 4N diagram drop dramatically and i know my zero point is somewhere between x=4.758 and x =4.755
i can calculate the point that i want but every time i run my code it takes about 45 min to solve that
thanks again for your attention
and if its necessary i show my code ?
Image Analyst
Image Analyst on 6 Jun 2018
Just give me an equation like y = a1 * sin(a2*x) + a3 * cos(a4*x).^2 or whatever you expect the theory to be. The a's would be the unknowns to be solved for.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 5 Jun 2018
You can fit a line between the left two points and extrapolate. Or do you have some model/equation you think the whole curve follows, and if so do you have the stats toolbox?

  1 Comment

shahin hashemi
shahin hashemi on 5 Jun 2018
ty for your attention
but i dont have any equation
can u please explain more about "You can fit a line between the left two points and extrapolate" this part of your answer
is there any cod or tool box for extrapolate or how should i do that ?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!