Intersezione tra ellissoide e sfera
Salve a tutti,
sono un mezzo ingegnere con (più di) qualche carenza in geometria... Fino a rette e piani ci arrivo, ma le quadriche non erano incluse nemmeno nel mio programma di Geometria...
Ho bisogno di un aiuto... Descrivo (in modo informale) il problema: ho un ellissoide di parametri a, b, c centrato nell'origine e allineato con gli assi. Inoltre ho una sfera di centro C (non necessariamente coincidente con l'origine) e raggio r.
Devo verificare la verità o falsità della seguente affermazione: "l'elissoide e la sfera si intersecano o sono l'uno contenuto nell'altra (o viceversa)".
Vorrei tanto fossero due sfere!
Non vengo qui a chiedervi il compitino svolto, ma se potete darmi una traccia ve ne sarei molto grato.
sono un mezzo ingegnere con (più di) qualche carenza in geometria... Fino a rette e piani ci arrivo, ma le quadriche non erano incluse nemmeno nel mio programma di Geometria...

Ho bisogno di un aiuto... Descrivo (in modo informale) il problema: ho un ellissoide di parametri a, b, c centrato nell'origine e allineato con gli assi. Inoltre ho una sfera di centro C (non necessariamente coincidente con l'origine) e raggio r.
Devo verificare la verità o falsità della seguente affermazione: "l'elissoide e la sfera si intersecano o sono l'uno contenuto nell'altra (o viceversa)".
Vorrei tanto fossero due sfere!

Non vengo qui a chiedervi il compitino svolto, ma se potete darmi una traccia ve ne sarei molto grato.
Risposte
Ma qui non c'è bisogno di geometria analitica. Basta visualizzarsi il problema.
"dissonance":
Ma qui non c'è bisogno di geometria analitica. Basta visualizzarsi il problema.
Hai qualche idea? Tieni conto del fatto che sto cercando un processo "automatizzabile", non posso disegnare o vedere a occhio: si tratta di una verifica che deve essere svolta migliaia di volte al secondo da un calcolatore.
Aaaaaahhhh...
Scusa, avevo capito che fosse qualcosa di MOLTO più banale. Tu quindi vuoi una macchinetta che mangia un ellissoide e una sfera e dice se si intersecano, se sono uno contenuto nell'altra o viceversa, o se sono in altra posizione (ciascuno per i fatti suoi, per intenderci).
Non è semplicissimo. In che forma sono dati l'ellissoide e la sfera? Mediante equazioni cartesiane?

Scusa, avevo capito che fosse qualcosa di MOLTO più banale. Tu quindi vuoi una macchinetta che mangia un ellissoide e una sfera e dice se si intersecano, se sono uno contenuto nell'altra o viceversa, o se sono in altra posizione (ciascuno per i fatti suoi, per intenderci).
Non è semplicissimo. In che forma sono dati l'ellissoide e la sfera? Mediante equazioni cartesiane?
"dissonance":
Tu quindi vuoi una macchinetta che mangia un ellissoide e una sfera e dice se si intersecano, se sono uno contenuto nell'altra o viceversa, o se sono in altra posizione (ciascuno per i fatti suoi, per intenderci).
Esattamente. Ho le conoscenze tecniche per realizzare questa "macchinetta" (è quello per cui studio

"dissonance":
Non è semplicissimo. In che forma sono dati l'ellissoide e la sfera? Mediante equazioni cartesiane?
Ho i parametri a, b, c dell'ellissoide. L'ellissoide si assume centrato nell'origine e allineato con gli assi (ovvero i suoi tre assi giacciono sugli assi cartesiani), bastano dunque i parametri a, b, c per identificarlo.
La sfera è centrata in P (non necessariamente coincidente con l'origine) e di raggio r.
Ho i seguenti dati: a, b, c, P, r.
Sono benvenute anche soluzioni approssimate e con margini d'errore ragionevoli.

Ho scritto una mia euristica (molto artigianale, ingegneristica nel senso brutto del termine) che però fallisce miseramente se la sfera è di dimensioni analoghe all'ellissoide, ma va benissimo quando la sfera è piccola: cerco la retta che congiunge i due centri dell'ellissoide e della sfera (uno è l'origine, l'altro è il punto P), trovo l'intersezione tra la retta e i due oggetti (facile) e a quel punto in base alla posizione di questi due punti prendo una decisione (è abbastanza banale). Purtroppo il margine d'errore è molto alto.

Quando la sfera ha dimensioni paragonabili a quelle dell'ellissoide, puoi approssimare quest'ultimo con un parellelepipedo $[-a, a]\times [-b, b] \times [-c, c]$; ... Così è facile.
Se $P=(x, y, z)$ è nel parallelepipedo, ovvero se $x\in[-a, a], y\in[-b, b], z\in[-c, c]$, allora devi decidere se la sfera interseca il bordo oppure no, e questo si fa confrontando $r$ con il minimo tra $|x-a|, |y-b|, |z-c|$;
Se $P=(x,y,z)$ non è nel parallelepipedo, di nuovo si deve prendere la stessa decisione, e questo si potrà fare in qualche altra maniera analoga che se vuoi possiamo mettere a punto.
Ma è molto brutale come schemino. Vediamo se qualcuno ha in mente una soluzione più intelligente.
Se $P=(x, y, z)$ è nel parallelepipedo, ovvero se $x\in[-a, a], y\in[-b, b], z\in[-c, c]$, allora devi decidere se la sfera interseca il bordo oppure no, e questo si fa confrontando $r$ con il minimo tra $|x-a|, |y-b|, |z-c|$;
Se $P=(x,y,z)$ non è nel parallelepipedo, di nuovo si deve prendere la stessa decisione, e questo si potrà fare in qualche altra maniera analoga che se vuoi possiamo mettere a punto.
Ma è molto brutale come schemino. Vediamo se qualcuno ha in mente una soluzione più intelligente.
Guarda penso che alla fine farò qualcosa di ancora più brutale. Parametrizzo l'ellissoide in coordinate sferiche, mi calcolo 100 punti e testo se sono dentro la sfera. Ci metterà 500 microsecondi in tutto.
Un sistema analistico ci sarebbe, e la soluzione viene quasi in forma chiusa.
Il fatto e' che viene fuori una equazione abbastanza spaventosa al quarto grado.
Macinarle in modo algebrico e' improponibile, per cui queste equazioni verranno poi date in pasto a una macchina calcolatrice che in meno di un microsecondo sputera' il risultato.
Cosi' avremo risparmiato 499 microsecondi rispetto al metodo "n'do cojo cojo", ovvero provare sistematicamente tanti punti.
Con 499 us ci facciamo il caffe'.
Il trucco e' usare i moltiplicatori di Mr. Lagrange.
In giro c'e' ampia letteratura sui moltiplicatori per cui passo subito al quibus.
Intanto farei uno swap tra la nostra ellissoide e la sfera ovvero la sfera la mettiamo con centro in O e l'ellissoide finisce con centro in C. Non cambia nulla, se si intersecavano prima, si intersecano anche dopo.
Ipotizzando la sfera avente raggio 1 (eventualmente si riscalano gli assi) la sfera ha equazione
[tex]x^2+y^2+z^2 - 1 = 0[/tex]
, l'ellissoide ha equazione
[tex]\frac{(x-C0)^2}{A}+\frac{(y-C1)^2}{B}+\frac{(z-C2)^2}{C} - R^2 = 0[/tex]
dove [tex]C0, C1, C2[/tex] sono le coordinate del centro dell'ellissoide
In pratica con i moltiplicatori di Lagrange si risolvono problemi di massimo e minimo di funzioni sottposte a vincolo.
Un funzione F definita su un dominio G (il vincolo) in genere presentera' dei massimi e dei minimi.
IL moltiplicatore di Lagrange trova questi punti di massimo/minimo.
In pratica, la funzione per cui si cerca un massimo/minimo e' la distanza di un punto dall'orgine
[tex]x^2+y^2+z^2[/tex]
muovendosi sull'ellissoide.
Nel nostro caso vogliamo trovare un minimo perche' l'ellissoide e' supposto esterno alla sfera.
Se fosse interno cercheremo il massimo.
Trovate le coordinate del punto dell'ellissoide che e' piu vicino all'origine, verifichiamo se il raggio della sfera e' maggiore o minore.
Ovviamente se la minima distanza ellissoide-origine e' minore del raggio, l'ellissoide "entra" nella sfera, intersecandola.
Detto cio' si costruisce la seguente funzione
[tex]H(x,y,z) = x^2 + y^2 +z^2 + \lambda (\frac{(x-C0)^2}{A}+\frac{(y-C1)^2}{B}+\frac{(z-C2)^2}{C} - R^2)[/tex]
usando la distanza dall'origine ( o il suo quadrato) e l'espressione dell'ellissoide.
Quindi si calcolano le derivate parziali e le si pone uguali a zero.
[tex]\frac{\partial H}{\partial x}=0, \frac{\partial H}{\partial y}=0, \frac{\partial H}{\partial z}=0, \frac{\partial H}{\partial \lambda}=0,[/tex]
La soluzione del sistema di 4 equazioni [tex]x, y, z, \lambda[/tex]
fornisce le coordinate dei massimi e dei minimi.
Quello che ne risulta e'
[tex]BC(C0 A)^2(B+\lambda)^2(C+\lambda)^2 +[/tex]
[tex]CA(C1 B)^2(C+\lambda)^2(A+\lambda)^2 +[/tex]
[tex]AB(C2 C)^2(A+\lambda)^2(B+\lambda)^2 - R^2 = 0[/tex]
Non sono 3 equazioni, e' una sola che ho messo su 3 righe cosi' si vede meglio la permutazione dei parametri.
L'equazione va risolta ripetto a [tex]\lambda[/tex] , che compare al quarto grado nell'espressione.
Trovata l'espressione di [tex]\lambda[/tex], le coordinate del minimo/massimo si trovano con
[tex]x = \frac{\lambda C0}{\lambda +A}[/tex]
[tex]y = \frac{\lambda C1}{\lambda +B}[/tex]
[tex]z = \frac{\lambda C2}{\lambda +C}[/tex]
Si calcola la distanza dall'origine e si confronta col raggio della sfera.
Se la distanza e' minore/uguale del raggio, ellissoide e sfera si intersecano.
Errori a parte, il concetto e' questo.
Dovrebbe funzionare, magari qualcuno piu' esperto di me potrebbe confermare.
Ti puo' essere utile tutto cio' ?
C'e' da risolvere una espressione al quarto grado, non credo si possa semplificare.
Saluti, vado a mangiare.
Il fatto e' che viene fuori una equazione abbastanza spaventosa al quarto grado.
Macinarle in modo algebrico e' improponibile, per cui queste equazioni verranno poi date in pasto a una macchina calcolatrice che in meno di un microsecondo sputera' il risultato.

Cosi' avremo risparmiato 499 microsecondi rispetto al metodo "n'do cojo cojo", ovvero provare sistematicamente tanti punti.
Con 499 us ci facciamo il caffe'.
Il trucco e' usare i moltiplicatori di Mr. Lagrange.
In giro c'e' ampia letteratura sui moltiplicatori per cui passo subito al quibus.
Intanto farei uno swap tra la nostra ellissoide e la sfera ovvero la sfera la mettiamo con centro in O e l'ellissoide finisce con centro in C. Non cambia nulla, se si intersecavano prima, si intersecano anche dopo.
Ipotizzando la sfera avente raggio 1 (eventualmente si riscalano gli assi) la sfera ha equazione
[tex]x^2+y^2+z^2 - 1 = 0[/tex]
, l'ellissoide ha equazione
[tex]\frac{(x-C0)^2}{A}+\frac{(y-C1)^2}{B}+\frac{(z-C2)^2}{C} - R^2 = 0[/tex]
dove [tex]C0, C1, C2[/tex] sono le coordinate del centro dell'ellissoide
In pratica con i moltiplicatori di Lagrange si risolvono problemi di massimo e minimo di funzioni sottposte a vincolo.
Un funzione F definita su un dominio G (il vincolo) in genere presentera' dei massimi e dei minimi.
IL moltiplicatore di Lagrange trova questi punti di massimo/minimo.
In pratica, la funzione per cui si cerca un massimo/minimo e' la distanza di un punto dall'orgine
[tex]x^2+y^2+z^2[/tex]
muovendosi sull'ellissoide.
Nel nostro caso vogliamo trovare un minimo perche' l'ellissoide e' supposto esterno alla sfera.
Se fosse interno cercheremo il massimo.
Trovate le coordinate del punto dell'ellissoide che e' piu vicino all'origine, verifichiamo se il raggio della sfera e' maggiore o minore.
Ovviamente se la minima distanza ellissoide-origine e' minore del raggio, l'ellissoide "entra" nella sfera, intersecandola.
Detto cio' si costruisce la seguente funzione
[tex]H(x,y,z) = x^2 + y^2 +z^2 + \lambda (\frac{(x-C0)^2}{A}+\frac{(y-C1)^2}{B}+\frac{(z-C2)^2}{C} - R^2)[/tex]
usando la distanza dall'origine ( o il suo quadrato) e l'espressione dell'ellissoide.
Quindi si calcolano le derivate parziali e le si pone uguali a zero.
[tex]\frac{\partial H}{\partial x}=0, \frac{\partial H}{\partial y}=0, \frac{\partial H}{\partial z}=0, \frac{\partial H}{\partial \lambda}=0,[/tex]
La soluzione del sistema di 4 equazioni [tex]x, y, z, \lambda[/tex]
fornisce le coordinate dei massimi e dei minimi.
Quello che ne risulta e'
[tex]BC(C0 A)^2(B+\lambda)^2(C+\lambda)^2 +[/tex]
[tex]CA(C1 B)^2(C+\lambda)^2(A+\lambda)^2 +[/tex]
[tex]AB(C2 C)^2(A+\lambda)^2(B+\lambda)^2 - R^2 = 0[/tex]
Non sono 3 equazioni, e' una sola che ho messo su 3 righe cosi' si vede meglio la permutazione dei parametri.
L'equazione va risolta ripetto a [tex]\lambda[/tex] , che compare al quarto grado nell'espressione.
Trovata l'espressione di [tex]\lambda[/tex], le coordinate del minimo/massimo si trovano con
[tex]x = \frac{\lambda C0}{\lambda +A}[/tex]
[tex]y = \frac{\lambda C1}{\lambda +B}[/tex]
[tex]z = \frac{\lambda C2}{\lambda +C}[/tex]
Si calcola la distanza dall'origine e si confronta col raggio della sfera.
Se la distanza e' minore/uguale del raggio, ellissoide e sfera si intersecano.
Errori a parte, il concetto e' questo.
Dovrebbe funzionare, magari qualcuno piu' esperto di me potrebbe confermare.
Ti puo' essere utile tutto cio' ?
C'e' da risolvere una espressione al quarto grado, non credo si possa semplificare.
Saluti, vado a mangiare.
L'idea è ottima, solo che così non riesci a capire se l'ellissoide è contenuto nella sfera o no, solo se la interseca o no. Mi pare di capire che euthymos invece voleva anche la prima informazione. Ma a questo si può ovviare con un piccolo ritocco: ti calcoli minima ($m$) e massima ($M$) distanza dei punti dell'ellissoide dall'origine e verifichi:
- [*:czigunyr]se $m<1, M<1$ (stiamo supponendo la sfera di raggio $1$) allora l'ellissoide è contenuto nella sfera senza intersecarla;[/*:m:czigunyr]
[*:czigunyr]se $m<1, M>1$ allora l'ellissoide interseca la sfera senza esservi contenuto;[/*:m:czigunyr]
[*:czigunyr]se $m>1, M>1$ allora l'ellissoide non interseca la sfera e non è contenuto nella sfera.[/*:m:czigunyr][/list:u:czigunyr]
Ci sarebbero i casi di uguaglianza ma visto che si preannuncia un festival di calcoli approssimati non vale la pena di formalizzare troppo. Ci vorrà anche un buon algoritmo numerico per risolvere l'equazione non lineare.
Si in effetti e' corretto il tuo ragionamento sull'ellissoide interna/esterna.
Non so perche' ma mi ero convinto che nel problema si dichiarava che la sfera era esterna all'ellissoide
.... forse all'inizio l'ho immaginata cosi' ..........e cosi' e' rimasta
.
Forse in modo piu' compatto ma meno comprensibile possiamo scrivere...
La sfera e l'ellissoide si intersecano se
[tex](m-1)(M-1)<0[/tex]
Saluti...
Non so perche' ma mi ero convinto che nel problema si dichiarava che la sfera era esterna all'ellissoide


Forse in modo piu' compatto ma meno comprensibile possiamo scrivere...
La sfera e l'ellissoide si intersecano se
[tex](m-1)(M-1)<0[/tex]
Saluti...
