Intersezione di due pianiSto cercando una risposta a questo e non sono sicuro se c'è una soluzione JMP facile. Ho due formule in JMP, ognuna con due variabili X. Posso creare diagrammi di superficie di questi in JMP abbastanza facilmente e posso vedere visivamente che i due piani (bene, piani curvi) si intersecano.
Vorrei determinare la linea che definisce la posizione dell'intersezione e, se possibile, ottenere l'angolo di intersezione (piani tangenti su entrambe le superfici nella posizione dell'intersezione) nella direzione X1.
Vedo le soluzioni basate su Profiler in JMP se le due formule sono basate su una variabile X. Questo può essere fatto sottraendo le due formule l'una dall'altra e utilizzare la desiderabilità per far corrispondere il target a zero per ottenere il punto di intersezione come mostrato in https://community.jmp.com/t5/Discussions/How-can-I-calculate-the-intersection-point-of-two-functions-in/mp/12588 . Ma il mio problema non si traduce in un punto di intersezione, ma piuttosto in una linea di intersezione.
Se c'è una soluzione facile, grande. In caso contrario, dovrei essere in grado di risolverlo con altri software.
Re: intersezione di due pianiQuesto funziona abbastanza bene. Si scopre che l'ingegnere con cui stavo lavorando su questo aveva un X1 categorico e un X2 continuo, e questo complica un po 'la soluzione. Ma per il caso a due variabili continue questo funziona.
Re: intersezione di due pianiPuoi anche utilizzare l'abilità del Profiler per salvare ed espandere la formula per ottenere la formula per la differenza tra i due piani. È quindi possibile analizzare questa formula per ottenere i coefficienti. Puoi provare questo script nella tabella dati che ho caricato.
_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: intersezione di due pianiSembra che il file allegato non sia andato a buon fine. Provando di nuovo.
Re: intersezione di due pianiSe hai l'equazione dei piani in due formule di colonna (nella colonna y1 e y2), potresti questo JSL per ottenere la formula
_dt=current data table();
y1formula = char(Simplify Expr(_dt:y1 << Get Formula));
y2formula = char(Simplify Expr(_dt:y2 << Get Formula));
Dovresti quindi capire come analizzare quelle stringhe di caratteri per ottenere i coefficienti per la formula. Semplificare Espr () renderà entrambe le formule simili nella struttura, e quindi probabilmente la funzione Regex () funzionerebbe al meglio per analizzare i coefficienti. Non so abbastanza su regex per capire il modello di ricerca. Una volta ottenuti i coefficienti, è possibile ottenere matematicamente i coefficienti per la linea di intersezione.
Come hai affermato, puoi utilizzare Surface Plot per visualizzare l'intersezione. Vedi il file allegato con un esempio.
Re: intersezione di due pianiNon sei sicuro di cosa intendi per ogni formula ha 2 variabili X - forse un'equazione quadratica ???
Qualcosa, oltre a JMP, potresti dare un'occhiata a Maxima, disponibile in Windoze e Mac OS. È un'applicazione matematica simbolica open-source (gnu) (CAS - computer algebra system) ( http://maxima.sourceforge.net ). Pensa a Mathematica, ma gratis !!! (Mathemetica potrebbe avere qualcosa a disposizione - non l'ha guardata da un po '- dai https://www.wolframalpha.com uno sguardo).
Ci sono front-end disponibili (fondamentalmente è riga di comando) e piuttosto semplici.