# Plot parabola with start, end and vertex points

110 views (last 30 days)
Freyja on 10 Nov 2013
Commented: Freyja on 11 Nov 2013
Hi,
So I have three points and I would like matlab to plot them as a parabola. The points represent the path of a balls projectile motion and I know the start (0,0), end (2.062, 0) and high point (1.031, 0,73) of the parabola.
What I would like most would be to plot these points as a parabola and also calculate the equation for the parabola.
Freyja

Roger Stafford on 11 Nov 2013
Another way to get the parabola is to write:
y = 0.73-a*(x-1.031)^2
which is the form it must have to peak at (1.031,0,73) and then set x and y to zero to force the parabola to contain (0,0) and solve for a. The solution is obvious. Then do a plot.

#### 1 Comment

Freyja on 11 Nov 2013
Ok, well I worked out the value for a and then wrote a function, I'm sure matlab could have worked it out for me but I don't know how. So I did the easy way and plotted the range I wanted and it gave me a parabola!
So thanks a lot for the help. This is the code that worked for me...
x = (0:0.01:2.06);
y = 0.73-0.68676.*(x-1.031).^2;
plot(x,y,'LineWidth',3,'color',[1,0.5,0])
Many thanks!

Matt J on 11 Nov 2013
Edited: Matt J on 11 Nov 2013
You can use POLYFIT to fit a parabola to the points. Then you can use POLYVAL to sample and plot it.

Show 1 older comment
Freyja on 11 Nov 2013
i tried this:
x = [0 1.03 2.06]; y = [0 0.73 0]; p = polyfit(x,y,2);
n = polyval(p,x);
plot(x,n)
But this gave me a triangle....not a parabola....
Matt J on 11 Nov 2013
But this gave me a triangle....not a parabola....
It only looks like a triangle, because you didn't plot at enough points
xu=linspace(0,2.06,1000);
plot(xu, polyval(p, xu));
Freyja on 11 Nov 2013
Oh I see, thankyou, i will try that :)