4 votos

Encontrar soluciones analíticas para dado de ecuaciones

Tengo un sistema de 6 ecuaciones con 6 variables. El 6 variables $t11, t12, t13, t21, t22, t23$ y el resto de los símbolos en las ecuaciones son conocidos símbolos. Quiero encontrar todas las posibles soluciones analíticas de las 6 variables $t11, t12, t13, t21, t22, t23$ como expresiones de los conocidos símbolos. Aquí están las 6 ecuaciones (he escrito en Matlab):

eq1 = pz1^2 + 2*pz1*t11*vz1 + t11^2*vx1^2 + t11^2*vy1^2 + t11^2*vz1^2 == qz1^2 + 2*qz1*t21*uz1 + t21^2*ux1^2 + t21^2*uy1^2 + t21^2*uz1^2
eq2 = pz2^2 + 2*pz2*t12*vz2 + t12^2*vx2^2 + t12^2*vy2^2 + t12^2*vz2^2 == qz2^2 + 2*qz2*t22*uz2 + t22^2*ux2^2 + t22^2*uy2^2 + t22^2*uz2^2
eq3 = pz3^2 + 2*pz3*t13*vz3 + t13^2*vx3^2 + t13^2*vy3^2 + t13^2*vz3^2 == qz3^2 + 2*qz3*t23*uz3 + t23^2*ux3^2 + t23^2*uy3^2 + t23^2*uz3^2
eq4 = pz1*pz2 + pz2*t11*vz1 + pz1*t12*vz2 + t11*t12*vx1*vx2 + t11*t12*vy1*vy2 + t11*t12*vz1*vz2 == qz1*qz2 + qz2*t21*uz1 + qz1*t22*uz2 + t21*t22*ux1*ux2 + t21*t22*uy1*uy2 + t21*t22*uz1*uz2
eq5 = pz2*pz3 + pz3*t12*vz2 + pz2*t13*vz3 + t12*t13*vx2*vx3 + t12*t13*vy2*vy3 + t12*t13*vz2*vz3 == qz2*qz3 + qz3*t22*uz2 + qz2*t23*uz3 + t22*t23*ux2*ux3 + t22*t23*uy2*uy3 + t22*t23*uz2*uz3
eq6 = pz1*pz3 + pz3*t11*vz1 + pz1*t13*vz3 + t11*t13*vx1*vx3 + t11*t13*vy1*vy3 + t11*t13*vz1*vz3 == qz1*qz3 + qz3*t21*uz1 + qz1*t23*uz3 + t21*t23*ux1*ux3 + t21*t23*uy1*uy3 + t21*t23*uz1*uz3

Observe que cada ecuación es de la forma: $eq_i=left\_expression==right\_expression$

Las ecuaciones son para asegurarse de la correcta (lo comprobé con valores conocidos y las soluciones conocidas para$t11, t12, t13, t21, t22, t23$, y de hecho consiguió la igualdad de la izquierda y la derecha expresiones en cada ecuación).

Pero necesito obtener todas las soluciones posibles para el caso general.

Cuando traté de resolver las ecuaciones uso de Matlab para 'resolver' comando, no terminar la carrera (he esperado más de una hora).

Puede alguien sugerir otras formas de resolución de las ecuaciones?

Las ecuaciones se ven solucionable, ya que todos ellos son de segundo grado ecuaciones polinómicas (de 6 variables).

Alguna posibilidad de que alguien aquí puede tratar de resolver las ecuaciones usando 'Mathematica' o 'Arce' programas (ya que no los tengo). O al menos decirme si se pueden resolver en estos programas y si es así, voy a comprar los programas (la universidad..).

Aquí está el código completo en matlab, de modo que usted puede ver cómo he construido las ecuaciones (si aquí alguien es capaz de traducir el código de Mathematica/Maple y comprobar si las ecuaciones se pueden resolver allí)

clear;
close all;
clc;

%The folowing 6 symbols are the UNKNOWN variables
syms t11 t12 t13 %parameters of the 3 lines of the first set
syms t21 t22 t23 %parameters of the 3 lines of the second set   

%The folowing symbols are the KNOWN variables
syms px1 py1 pz1
syms px2 py2 pz2
syms px3 py3 pz3

syms vx1 vy1 vz1
syms vx2 vy2 vz2
syms vx3 vy3 vz3    

syms qx1 qy1 qz1
syms qx2 qy2 qz2
syms qx3 qy3 qz3

syms ux1 uy1 uz1
syms ux2 uy2 uz2
syms ux3 uy3 uz3

%Trying to make the equations simpler, I assume all 6 lines pass through
%a point on the Z axis (but I prefer the general case)
lines1_points = [0 0 0 ; 0 0 0 ; pz1 pz2 pz3]; 
%lines1_points = [px1 px2 px3 ; py1 py2 py3 ; pz1 pz2 pz3];
lines1_vecs = [vx1 vx2 vx3 ; vy1 vy2 vy3 ; vz1 vz2 vz3];
lines2_points = [0 0 0 ; 0 0 0 ; qz1 qz2 qz3];
%lines2_points = [qx1 qx2 qx3 ; qy1 qy2 qy3 ; qz1 qz2 qz3];
lines2_vecs = [ux1 ux2 ux3 ; uy1 uy2 uy3 ; uz1 uz2 uz3];

vars1 = diag([t11 t12 t13]);
vars2 = diag([t21 t22 t23]);

T1 = lines1_points+lines1_vecs*vars1;
T2 = lines2_points+lines2_vecs*vars2;

T1_transpose = T1.';
T2_transpose = T2.';

part1 = T1_transpose*T1;
part2 = T2_transpose*T2;

eqs_symmetric_matrix = part1==part2;
expanded_eqs_symmetric_matrix = expand(eqs_symmetric_matrix);
%6 equations of the top upper matrix (first 3 equations are the diagonal)
eq1 = expanded_eqs_symmetric_matrix(1,1)
eq2 = expanded_eqs_symmetric_matrix(2,2)
eq3 = expanded_eqs_symmetric_matrix(3,3)
eq4 = expanded_eqs_symmetric_matrix(1,2)
eq5 = expanded_eqs_symmetric_matrix(2,3)
eq6 = expanded_eqs_symmetric_matrix(1,3)

eqs = [eq1; eq2; eq3; eq4; eq5; eq6];
fprintf('Trying to solve the equations (matlab does not succeed to solve the equations)\n');
[t11_sol,t12_sol,t13_sol,t21_sol,t22_sol,t23_sol] = solve(eqs,[t11,t12,t13,t21,t22,t23]);
fprintf('Finished solving the equations\n');

Agradezco cualquier ayuda!

Gracias

Actualización: El uso de la suposición de que todas las líneas pasan por el mismo punto [0 0 z] y utilizando el hecho de que todos los vectores direccionales de las líneas de la unidad. El nuevo 6 ecuaciones son ahora:

eq1 = t11^2 + z^2 + 2*t11*z*(- vx1^2 - vy1^2 + 1)^(1/2) == t21^2 + z^2 + 2*t21*z*(- ux1^2 - uy1^2 + 1)^(1/2)
eq2 = t12^2 + z^2 + 2*t12*z*(- vx2^2 - vy2^2 + 1)^(1/2) == t22^2 + z^2 + 2*t22*z*(- ux2^2 - uy2^2 + 1)^(1/2)
eq3 = t13^2 + z^2 + 2*t13*z*(- vx3^2 - vy3^2 + 1)^(1/2) == t23^2 + z^2 + 2*t23*z*(- ux3^2 - uy3^2 + 1)^(1/2)
eq4 = z^2 + t11*z*(- vx1^2 - vy1^2 + 1)^(1/2) + t12*z*(- vx2^2 - vy2^2 + 1)^(1/2) + t11*t12*vx1*vx2 + t11*t12*vy1*vy2 + t11*t12*(- vx1^2 - vy1^2 + 1)^(1/2)*(- vx2^2 - vy2^2 + 1)^(1/2) == z^2 + t21*z*(- ux1^2 - uy1^2 + 1)^(1/2) + t22*z*(- ux2^2 - uy2^2 + 1)^(1/2) + t21*t22*ux1*ux2 + t21*t22*uy1*uy2 + t21*t22*(- ux1^2 - uy1^2 + 1)^(1/2)*(- ux2^2 - uy2^2 + 1)^(1/2)
eq5 = z^2 + t12*z*(- vx2^2 - vy2^2 + 1)^(1/2) + t13*z*(- vx3^2 - vy3^2 + 1)^(1/2) + t12*t13*vx2*vx3 + t12*t13*vy2*vy3 + t12*t13*(- vx2^2 - vy2^2 + 1)^(1/2)*(- vx3^2 - vy3^2 + 1)^(1/2) == z^2 + t22*z*(- ux2^2 - uy2^2 + 1)^(1/2) + t23*z*(- ux3^2 - uy3^2 + 1)^(1/2) + t22*t23*ux2*ux3 + t22*t23*uy2*uy3 + t22*t23*(- ux2^2 - uy2^2 + 1)^(1/2)*(- ux3^2 - uy3^2 + 1)^(1/2)
eq6 = z^2 + t11*z*(- vx1^2 - vy1^2 + 1)^(1/2) + t13*z*(- vx3^2 - vy3^2 + 1)^(1/2) + t11*t13*vx1*vx3 + t11*t13*vy1*vy3 + t11*t13*(- vx1^2 - vy1^2 + 1)^(1/2)*(- vx3^2 - vy3^2 + 1)^(1/2) == z^2 + t21*z*(- ux1^2 - uy1^2 + 1)^(1/2) + t23*z*(- ux3^2 - uy3^2 + 1)^(1/2) + t21*t23*ux1*ux3 + t21*t23*uy1*uy3 + t21*t23*(- ux1^2 - uy1^2 + 1)^(1/2)*(- ux3^2 - uy3^2 + 1)^(1/2)

2voto

JP May Puntos 121

En Arce sintaxis de estas ecuaciones serían:

eq1 := t11^2*vx1^2+t11^2*vy1^2+t11^2*vz1^2+2*pz1*t11*vz1+pz1^2
  = t21^2*ux1^2+t21^2*uy1^2+t21^2*uz1^2+2*qz1*t21*uz1+qz1^2;
eq2 := t12^2*vx2^2+t12^2*vy2^2+t12^2*vz2^2+2*pz2*t12*vz2+pz2^2
  = t22^2*ux2^2+t22^2*uy2^2+t22^2*uz2^2+2*qz2*t22*uz2+qz2^2;
eq3 := t13^2*vx3^2+t13^2*vy3^2+t13^2*vz3^2+2*pz3*t13*vz3+pz3^2
  = t23^2*ux3^2+t23^2*uy3^2+t23^2*uz3^2+2*qz3*t23*uz3+qz3^2;
eq4 := t11*t12*vx1*vx2+t11*t12*vy1*vy2+t11*t12*vz1*vz2+pz1*t12*vz2+pz2*t11*vz1+pz1*pz2
  = t21*t22*ux1*ux2+t21*t22*uy1*uy2+t21*t22*uz1*uz2+qz1*t22*uz2+qz2*t21*uz1+qz1*qz2; 
eq5 := t12*t13*vx2*vx3+t12*t13*vy2*vy3+t12*t13*vz2*vz3+pz2*t13*vz3+pz3*t12*vz2+pz2*pz3
  = t22*t23*ux2*ux3+t22*t23*uy2*uy3+t22*t23*uz2*uz3+qz2*t23*uz3+qz3*t22*uz2+qz2*qz3; 
eq6 := t11*t13*vx1*vx3+t11*t13*vy1*vy3+t11*t13*vz1*vz3+pz1*t13*vz3+pz3*t11*vz1+pz1*pz3
  = t21*t23*ux1*ux3+t21*t23*uy1*uy3+t21*t23*uz1*uz3+qz1*t23*uz3+qz3*t21*uz1+qz1*qz3;

Sin embargo, dado que este sistema se soluciona de una forma muy general problema geométrico, yo no esperaría a tener una solución compacta. De hecho, mis intentos de obtener una base de Groebner de la manera más eficiente posible en el Arce de 2017 consume todos los de mi memoria disponible del sistema de forma casi instantánea y, a continuación, se produce un error.

Groebner:-Basis((lhs-rhs)~({eq1, eq2, eq3, eq4, eq5, eq6}),
 tdeg(t23, t22, t21, t13, t12, t11, vy3, vy2, vy1, vx3, vx2, vx1, qz3,
 qz2, qz1, pz3, pz2, pz1, uy3, uy2, uy1, ux3, ux2, ux1, vz3, vz2, vz1,
 uz3, uz2, uz1));

Esto es bastante buena evidencia de que la forma cerrada de la solución a este sistema es probablemente demasiado grande como para ser útil.

Usted probablemente tendrá que considerar un enfoque diferente a este problema.

1voto

G Cab Puntos 51

Refiriéndose de nuevo a la original del problema estamos para resolver la ecuación de matriz $$ \bbox[lightyellow] { \overline {{\bf T}_{\,{\bf 1}} } \;{\bf T}_{\,{\bf 1}} = \overline {{\bf T}_{\,{\bf 2}} } \;{\bf T}_{\,{\bf 2}} } \etiqueta{1.a}$$ donde el overline denota la transpuesta, y donde $$ \bbox[lightyellow] { {\bf T}_{\,{\bf 1}} = {\bf P}_{\,{\bf 1}} + {\bf V}_{\,{\bf 1}} \,{\bf \Lambda }_{\,{\bf 1}} \quad {\bf T}_{\,{\bf 2}} = {\bf P}_{\,{\bf 2}} + {\bf V}_{\,{\bf 2}} \,{\bf \Lambda }_{\,\,{\bf 2}} } \etiqueta{1.b}$$ con
$ {\bf T}_{\,{\bf 1}}$ ,$ {\bf T}_{\,{\bf 2}}$ , $ {\bf P}_{\,{\bf 1}}$ ,$ {\bf P}_{\,{\bf 2}} $ dadas las matrices
$ {\bf \Lambda }_{\,{\bf 1}}$, ${\bf \Lambda }_{\,{\bf 2}}$ diagonal de las matrices cuyos elementos son las incógnitas.

De modo que el lado izquierdo de la ecuación puede ser escrita como $$ \bbox[lightyellow] { \eqalign{ & \overline {{\bf T}_{\,{\bf 1}} } \;{\bf T}_{\,{\bf 1}} = \left( {\overline {{\bf P}_{\,{\bf 1}} } + {\bf \Lambda }_{\,{\bf 1}} \overline {{\bf V}_{\,{\bf 1}} } \,} \right)\left( {{\bf P}_{\,{\bf 1}} + {\bf V}_{\,{\bf 1}} \,{\bf \Lambda }_{\,{\bf 1}} } \right) = \cr & = \left( {\overline {{\bf P}_{\,{\bf 1}} } {\bf P}_{\,{\bf 1}} + \overline {{\bf P}_{\,{\bf 1}} } {\bf V}_{\,{\bf 1}} \,{\bf \Lambda }_{\,{\bf 1}} + {\bf \Lambda }_{\,{\bf 1}} \overline {{\bf V}_{\,{\bf 1}} } {\bf P}_{\,{\bf 1}} + {\bf \Lambda }_{\,{\bf 1}} \overline {{\bf V}_{\,{\bf 1}} } {\bf V}_{\,{\bf 1}} \,{\bf \Lambda }_{\,{\bf 1}} } \right) = \cr & = \overline {\left( {{\bf \Lambda }_{\,{\bf 1}} + {\bf V}_{\,{\bf 1}} ^{ - 1} {\bf P}_{\,{\bf 1}} } \right)} \;\overline {{\bf V}_{\,{\bf 1}} } \,{\bf V}_{\,{\bf 1}} \;\left( {{\bf \Lambda }_{\,{\bf 1}} + {\bf V}_{\,{\bf 1}} ^{ - 1} {\bf P}_{\,{\bf 1}} } \right) \cr} } \etiqueta{2}$$ La ecuación de matriz, siendo simétrica, se traduce en un sistema de $6$ ecuaciones cuadráticas en la $6$ incógnitas, $\lambda _{\,1,\,\,k}$,$\lambda _{\,2,\,\,k}$, con $k=1,2,3$.

La equiparación de los elementos de la diagonal, obtenemos $3$ ecuaciones del tipo $$ \bbox[lightyellow] { b_{\,1,\,\,k} \,\lambda _{\,1,\,\,k} ^{\,2} + c_{\,1,\,\,k} \,\lambda _{\,1,\,\,k} + d_{\,1,\,\,k} = b_{\,2,\,\,k} \,\lambda _{\,2,\,\,k} ^{\,2} + c_{\,2,\,\,k} \,\lambda _{\,2,\,\,k} + d_{\,2,\,\,k} } \etiqueta{3}$$ donde
- cada (lateral) es la longitud de una arista de la pirámide desde el origen ($OT$ en el post original) y es, por tanto, no negativo;
- a cada lado por lo tanto es una parábola vertical, convexo, de pie, totalmente por encima de la $x$ eje;
- la igualdad significa que estamos buscando una $y=s_k$ de intersección de ambas parábolas;
- debido a la geométrica madre del problema, se puede limitar y considerar sólo los valores positivos de la abscissas $\lambda$, desde podemos, en cualquier caso, cambio adecuadamente los puntos de $P$ y / o cambiar el signo de los vectores $V$.

No obstante, la posibilidad de que una parábola puede tener el vértice en positivo el eje de abscisas, que es el caso cuando la normal desde el origen a una línea, lo intercepta en el lado positivo de la (correspondiente) $\lambda$.

Por el trazado de las tres parejas de parábolas obtener una imagen de la situación, y puede establecer un mínimo para cada una de las $s_k$.

Ahora podemos resolver las tres ecuaciones anteriores para obtener el $\lambda _{\,1,\,\,k} $ $\lambda _{\,2,\,\,k} $ como funciones de $s_k$. Sobre el signo delante de la $\sqrt{\;}$, solamente podemos tomar el plus de las parábolas con vértice en el negativo abscissas. Para los otros que se apropiadamente considerar también el signo menos.

Ahora podemos alimentar a las funciones de la $\lambda$s en los tres restantes ecuaciones dado por los elementos de la diagonal $$ \bbox[lightyellow] { \left( {\overline {{\bf T}_{\,{\bf 1}} } \;{\bf T}_{\,{\bf 1}} } \right)_{\,1,\,2} - \a la izquierda( {\overline {{\bf T}_{\,{\bf 2}} } \;{\bf T}_{\,{\bf 2}} } \right)_{\,1,\,2} = 0,\;\; \cdots } \etiqueta{4}$$ para obtener $3$ ecuaciones en la siguiente combinación de los tres incógnitas $(s_{1} ,\, s_{2}),(s_{1} ,\, s_{3}),(s_{2} ,\, s_{3}) $, sino que se replica para las combinaciones permitidas de $\pm$ signos en el $\lambda$s expresiones, como comentó anteriormente.

En la perspectiva geométrica, estamos en el punto donde, después de haber fijado las pirámides bordes mutuamente tienen igual longitud $s_k$, vamos a variar éstas de manera que los tres productos de puntos es igual.

Respecto a la solución práctica de las ecuaciones (4), su estructura (ver ejemplo a continuación) no permitir a buscar una escalera método.

Sólo podemos pensar en un método de aproximaciones sucesivas.

Sin embargo hemos llegado a una etapa que nos permite trazar las tres superficies resultantes de (4), y de identificar visualmente si y donde podría ser una solución.
La siguiente imagen un ejemplo. Por los sucesivos "zoom" de una solución encuentran en el rango indicado.
Pero también, una segunda solución parece estar presente en torno a $s_{1}=2.03, \, s_{2}=2.75, \, s_{3}=5.8$, lo que complica el panorama.

Rot_3Lines_2

En la actualidad, yo no investigar más sobre estas soluciones, y no ir de nuevo a la los triángulos representan para comprobar si se pueden girar uno sobre el otro.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X