Intersección de dos planos.Estoy buscando una respuesta a esto y no estoy seguro si hay una solución JMP fácil. Tengo dos fórmulas en JMP, cada una tiene dos variables X. Puedo hacer gráficos de superficie de estos en JMP lo suficientemente fácil y puedo ver visualmente que los dos planos (bueno, planos curvos) se intersecan.
Me gustaría determinar la línea que define la ubicación de la intersección y, si es posible, obtener el ángulo de intersección (planos tangentes a ambas superficies en la ubicación de la intersección) en la dirección X1.
Veo soluciones basadas en Perfilador en JMP si las dos fórmulas se basan en una variable X. Esto se puede hacer restando las dos fórmulas entre sí y usar la conveniencia de hacer coincidir el objetivo a cero para obtener el punto de intersección como se muestra en https://community.jmp.com/t5/Discussions/How-can-I-calculate-the-intersection-point-of-two-functions-in/mp/12588 . Pero mi problema no resulta en un punto de intersección sino en una línea de intersección.
Si hay una solución fácil, genial. Si no, debería poder resolverlo con otro software.
Re: Intersección de dos planos.Esto funciona bastante bien. Resulta que el ingeniero con el que estaba trabajando tenía un X1 categórico y un X2 continuo, y eso complica un poco la solución. Pero para el caso de dos variables continuas esto funciona.
Re: Intersección de dos planos.También puede utilizar la capacidad del Perfilador para guardar y expandir la fórmula para obtener la fórmula para la diferencia de los dos planos. A continuación, podría analizar esa fórmula para obtener los coeficientes. Puedes probar este script en la tabla de datos que cargué.
_dt=current data table();
y1formula = char(Simplify Expr(_dt:y1 << Get Formula));
y2formula = char(Simplify Expr(_dt:y2 << Get Formula));
_dt << New Column ("Y1-Y2", Formula(:Y1-:Y2));
_pf=Profiler(
Y( :Name( "Y1-Y2" ) ),
Profiler(
1,
Term Value(
X1( 0.5, Lock( 0 ), Show( 1 ) ),
X2( 0.55, Lock( 0 ), Show( 1 ) )
)
),
Expand
);
_pf << Save Expanded Formulas;
_pf << Close Window;
diffformula = char(simplify Expr(column(_dt, "Expanded Y1-Y2")<<GET formula=""></GET>Re: Intersección de dos planos.Parece que el archivo adjunto no pasó. Intentando otra vez.
Re: Intersección de dos planos.Si tiene la ecuación de los planos en dos fórmulas de columna (en las columnas y1 y y2), podría obtener este JSL para obtener la fórmula
_dt=current data table();
y1formula = char(Simplify Expr(_dt:y1 << Get Formula));
y2formula = char(Simplify Expr(_dt:y2 << Get Formula));
Entonces tendrías que averiguar cómo analizar esas cadenas de caracteres para obtener los coeficientes de la fórmula. Simplificar Expr () hará que ambas fórmulas tengan una estructura similar, y luego, probablemente, la función Regex () funcionará mejor para analizar los coeficientes. No sé lo suficiente sobre expresiones regulares para averiguar el patrón de búsqueda. Una vez que tuvo los coeficientes, podría hacer los cálculos matemáticos para obtener los coeficientes de la línea de intersección.
Como dijiste, podrías usar Surface Plot para visualizar la intersección. Ver archivo adjunto con un ejemplo.
Re: Intersección de dos planos.¿No está seguro de lo que quiere decir con cada fórmula que tiene 2 variables X - tal vez una ecuación cuadrática?
Algo, aparte de JMP, que podría echarle un vistazo es Maxima, disponible en Windoze y Mac OS. Es una aplicación matemática simbólica de código abierto (gnu) (CAS - computer algebra system) ( http://maxima.sourceforge.net ). Piensa Mathematica, pero gratis !!! (Mathemetica podría tener algo disponible, no he mirado en un tiempo, dar https://www.wolframalpha.com una mirada).
Hay front-ends disponibles (es fundamentalmente línea de comando), y bastante sencillos.