Finding the intersection of a line and a parabola numerically

5 vues (au cours des 30 derniers jours)
Luis Canales Tough
Luis Canales Tough le 20 Avr 2016
Commenté : Image Analyst le 21 Avr 2016
hello, I have come to a stall when trying to figure out how to obtain the two elements that meet a single condition. So if I have a parabolic function and a line(condition) going through it at two different points, how can I obtain the two numerical values for those points?
This is where I am stuck:
dd=logspace(-9,1,100);
uu=sqrt(A_n*(sig_cal*g*dd(1,:)+gamma./(1.225*dd(1,:))));
u2=dd+v_dw_ms;
plot(dd,uu,'r',dd,u2,'b')
where v_dw_ms is a certain constant value on the uu axis.
I can obtain the points graphically, but I need the actual numerical values for further numerical analysis.
Thanks in advance.

Réponse acceptée

Image Analyst
Image Analyst le 20 Avr 2016
Just set the line and parabola equal to each other and solve for x
yParabola = a*x^2 + b*x + c
yLine = m*x+d
a*x^2 + b*x + c = m*x + d
a*x^2 + (b-m)*x + (c-d) = 0
Then use the quadratic solution formula to solve for the 2 x:
x1 = (-(b-m)-sqrt((b-m)^2-4*a*(c-d))) / (2*a)
x2 = (-(b-m)+sqrt((b-m)^2-4*a*(c-d))) / (2*a)
  2 commentaires
Luis Canales Tough
Luis Canales Tough le 20 Avr 2016
That would work, but I think I made an error saying parabolic function, simply because the graph looks similar to a parabola.
The equation is actually of the form Y=sqrt(X + 1/X), so the quadratic formula does not apply.
Image Analyst
Image Analyst le 21 Avr 2016
So simply set them equal like I said and then simplify the equation. I think you can then use roots() or fsolve() or something.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by