Pregunta

Estoy trabajando en un problema de geometría que requiere encontrar la intersección de dos arcos parabólicos en cualquier rotación. Pude intecar una línea y un arco parabólico girando el plano para alinear el arco con un eje, pero dos parábolas no pueden alinearse con un eje. Estoy trabajando para derivar las fórmulas, pero me gustaría saber si ya hay un recurso disponible para ello.

¿Fue útil?

Solución

Primero definiría la ecuación para el arco parabólico en 2D sin rotaciones:

  x(t) = ax² + bx + c
  y(t) = t;

Ahora puede aplicar la rotación creando una matriz de rotación:

  s = sin(angle)
  c = cos(angle)

  matrix = | c -s |
           | s  c |

Aplique esa matriz y obtendrá la ecuación paramétrica girada:

x' (t) = x(t) * c - s*t;
y' (t) = x(t) * s + c*t;

Esto te dará dos ecuaciones (para x e y) de tus arcos parabólicos.

Haz eso con tus dos arcos girados y réstalos. Esto te da una ecuación como esta:

  xa'(t) = rotated equation of arc1 in x
  ya'(t) = rotated equation of arc1 in y.
  xb'(t) = rotated equation of arc2 in x
  yb'(t) = rotated equation of arc2 in y.
  t1 = parametric value of arc1
  t2 = parametric value of arc2

  0 = xa'(t1) - xb'(t2)
  0 = ya'(t1) - yb'(t2)

Cada una de estas ecuaciones es solo un polinomio de orden 2. Estos son fáciles de resolver.

Para encontrar los puntos de intersección, resuelve la ecuación anterior (por ejemplo, encuentra las raíces).

Obtendrá hasta dos raíces para cada eje. Cualquier raíz que sea igual en x e y es un punto de intersección entre las curvas.

Obtener la posición es fácil ahora: solo conecta la raíz en tu ecuación paramétrica y puedes obtener directamente x e y.

Otros consejos

Desafortunadamente, la respuesta general requiere la solución de un polinomio de cuarto orden. Si transformamos las coordenadas de modo que una de las dos parábolas esté en la forma estándar y = x ^ 2, entonces la segunda parábola satisface (ax + by) ^ 2 + cx + dy + e == 0. Para encontrar la intersección, resuelve ambos simultáneamente. Al sustituir en y = x ^ 2, vemos que el resultado es un polinomio de cuarto orden: (ax + bx ^ 2) ^ 2 + cx + dx ^ 2 + e == 0. La solución de Nils por lo tanto no funcionará (su error: cada uno es un polinomio de segundo orden en cada variable por separado, pero juntos no lo son).

Es fácil si tienes un CAS a mano.

Vea la solución en Mathematica.

Elija una parábola y cambie las coordenadas para que su ecuación se convierta en y (x) = a x ^ 2 (forma normal).

La otra parábola tendrá la forma general:

A x^2 + B x y + CC y^2 + DD x + EE y + F == 0 

where B^2-4 A C ==0 (so it's a parabola)  

Resolvamos un caso numérico:

p = {a -> 1, A -> 1, B -> 2, CC -> 1, DD -> 1, EE -> -1, F -> 1};
p1 = {ToRules@N@Reduce[
       (A x^2 + B x y + CC y^2 + DD x + EE y +F /. {y -> a x^2 } /. p) == 0, x]}

{{x - > -2.11769}, {x - > -0.641445},     {x - > 0.379567- 0.76948 I},     {x - > 0.379567+ 0.76948 I}}

Vamos a trazarlo:

Show[{
  Plot[a x^2 /. p, {x, -10, 10}, PlotRange -> {{-10, 10}, {-5, 5}}], 
  ContourPlot[(A x^2 + B x y + CC y^2 + DD x + EE y + F /. p) == 
    0, {x, -10, 10}, {y, -10, 10}],
  Graphics[{
    PointSize[Large], Pink, Point[{x, x^2} /. p /. p1[[1]]],
    PointSize[Large], Pink, Point[{x, x^2} /. p /. p1[[2]]]
    }]}]

ingrese la descripción de la imagen aquí

La solución general consiste en calcular las raíces de:

4 A F + 4 A DD x + (4 A^2 + 4 a A EE) x^2 + 4 a A B x^3 + a^2 B^2 x^4 == 0  

Lo que se hace fácilmente en cualquier CAS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top