Punto comune a ellisse e circonferenza

paololi
Buongiorno a tutti
Presento un problema di intersezione/tangenza tra ellisse e circonferenza.

Ellisse: \(\frac{x^2}{a^2} +\frac{y^2}{b^2}=1\) con \(b>a\) dati \(a\) e \(b\).

Circonferenza centrata in \((d,e)\) di raggio \(r\) di eq. \((x-d)^2 +(y-e)^2=r^2\)
con \(d\), \(r\), \(a\) dati ed \(d<(r+a)\) con \(e\) variabile

Problema: trovare una formula/algoritmo numerico per determinare \(e\) tale che l'ellisse abbia un solo punto comune con la circonferenza (tangente?).

Ho fatto qualche tentativo mettendo a sistema le due equazioni senza poter arrivare ad una
forma "agevole", inoltre non saprei quali le condizioni per imporre un solo punto in comune vista l'eq. di 4^ grado che ne esce fuori. Ecco anche una rappresentazione in geogebra

[ggb]https://www.geogebra.org/m/a4z5fu3z[/ggb]

Ringrazio in anticipo chi vorrà darmi un aiuto.
Paolo

Aggiornamento:
Ho inserito la rappresentazione corretta con geogebra!
prima non funzionava l'applet

Risposte
Quinzio
Siccome si parla anche di trovare un algoritmo, oltre che una formula si potrebbe fare un metodo ad approssimazioni successive nel modo che segue.
Si parte con una $x$ che sara' $a/2$ e poi ci si sposta in modo "dicotomico" di $1/4 a $ in base a un confronto (che sara' il raggio del cerchio).
Poi ci si sposta ancora di $1/8 a$, poi $1/16 a$ fino a raggiungere la precisione voluta.

Scegliamo una ascissa $0 < x < a$.

La corrispondente ordinata sull'ellisse e' $y = b\sqrt(1- x ^2/a^2)$.

Questo vale nel primo quadrante, ma adattare la soluzione ad altri quadranti e' banale.

Ora troviamo il coefficiente della retta normale all'ellisse nel punto $(x, y)$.

Se differenziamo l'eq. dell'ellisse troviamo $(2x/a^2, 2y/b^2)$.

Da questo segue che il coefficiente della normale e' $c = y/x a^2/b^2$.

Se sostituiamo $y$ in funzione di $x$ otteniamo $c = b\sqrt(1- x ^2/a^2)/x a^2/b^2 = a/b \sqrt(a^2-x^2)/x$.

Siccome imponiamo che il cerchio sia tangente all'ellisse nel punto $(x, y)$, la retta normale all'ellisse e al cerchio nel punto di tangenza e' la stessa, quindi anche il coefficiente e' lo stesso.

La retta normale incontra la retta verticale di ascissa $d$ nel centro del cerchio.

Ora ci chiediamo qual e' il raggio del cerchio che abbiamo individuato in questo modo.

Il punto di tangenza $(x,y)$ dista dal centro del cerchio
$r' = \sqrt((x-d)^2(1+c^2)) = \sqrt((x-d)^2(1+a^2/b^2 (a^2-x^2)/x^2)) = (x-d)/(bx) \sqrt(a^4 + (b^2-a^2)x^2)$.

Questa distanza $r'$ e' anche il raggio del cerchio.

Ora, se vediamo che $r' > r$, spostiamo il nuovo punto di tangenza verso $a$, altrimenti lo spostiamo verso l'asse delle ordinate.

Ti imposto un esempio semplice.

Supponiamo che $a = 256, b = 1, d = 257, r = 2$

Partiamo da $x = a/2 = 128$.

Calcoliamo $r'$ con la formula scritta sopra. Verra' sicuramente $r' > r$.

Quindi ci spostiamo verso $a$ di $64$ e quindi la nuova $x$ sara' $x = 192$.

Se ci dovevamo spostare verso lo zero, la nuova $x$ era $x = 128-64 = 64$.

Troviamo un nuovo $r'$ questa volta ci spostiamo di $32$, verso $a$ o verso lo $0$ a seconda del confronto.

Il procedimento continua a piacere fino a raggiungere la precisione voluta.

moccidentale
.

paololi
\[ AO_c \]Grazie Quinzio,
per la trattazione molto pratica, e per me può essere adatta ad essere implementata

ecco una rappresentazione in figura: (mi scuso che non l'ho inserita prima)


una osservazione: con $d$ >0 dove compare $(x-d)$ devrebbe essere $(d-x)$ ?

Grazie mille anche a sellacollesella per la trattazione,


"sellacollesella":
[quote="paololi"]un solo punto comune con la circonferenza (tangente?)

A mio modo di vedere dovresti specificare se ti interessa solo il caso di tangenza esterna (che implica un unico punto di intersezione) oppure ti interessa anche il caso di tangenza interna (che potrebbe coinvolgere contemporaneamente la tangenza in un secondo punto o la secanza in altri due punti distinti).

[/quote]

nel mio caso concreto si tratta di considerare la tangenza esterna

la complessità della trattazione chiusa ma suprattutto per la mia preparazione insufficiente
temo sia molto impervia da implementare

a meno di trovare SW o strumenti agevoli allo scopo, che però non conosco

altri suggerimentio sono ben accetti,

grazie ancora a tutti
Paolo

moccidentale
.

paololi
Grazie ancora sellacollesella
I tuoi suggerimenti sonon molto interessanti !!!
Sinceramente ho capito il filo conduttore, ma ho alcune lacune in deversi punti del tuo approccio;
vedo con piacere che hai molta dimestichezza col tema ed effettivamente mi sembra
molto interessante.

Tuttavia per ragioni di tempo devo implementare al piu' presto
un algoritmo efficiente per l'ambiente di produzione...

Ho implementato il metodo di Quinzio e funziona molto bene
per il mio ambiente e, per una prima classe di valori di ingresso,
risolve il qualche centinaio di iterazioni... ancora grazie a Quinzio!!

A questo punto però lo devo inserire nell'infrastruttura
generale di calcolo e testarlo "al limite"...

Con più tempo possiamo approfondire il problema complessivo
che sto cercando di formalizzare e risolvere.

=D> Ancora complimenti per la trattazione e grazie per l'aiuto
a presto
Paolo

genzo87
Buongiorno a tutti,
avrei bisogno del vostro aiuto, io dovrei trovare le coordinate del punto di tangenza tra una circonferenza inizialmente centrata nell'origine con equazione:
$ x^2 + y^2 = r^2 $
e un'ellisse non centrato nell'origine e posizionato nel terzo quadrante, con equazione:
$ ((x-h)^2)/(a^2) + ((y-k)^2)/(b^2) = 1 $
con a > b

Da notare che:
- il semiasse a dell'ellisse diminuisce sempre di più fino a quando non raggiunge lo stesso valore di b, in poche parole l'ellisse alla fine diventa una circonferenza
- la coordinata h del centro dell'ellisse diminuisce sempre più, mentre la coordinata k del centro dell'ellisse rimane costante
- il centro della circonferenza si sposta verso l'alto ma non in orizzontale

Per farvi capire meglio, in pratica è come vedere una "trave" con sezione circolare che ruotando nel piano spinge verso l'alto una ruota di una macchina; la "trave" che ruota nel piano vista frontalmente ha il profilo di un'ellisse.
Spero di essere stato chiaro, altrimenti posso provare ad esserlo di più.

Grazie.
Ciao!

moccidentale
.

genzo87
Capisco che possa non essere chiaro, provo a spiegarmi meglio. Per prima cosa, si tratta di un'applicazione reale, sto studiando un sistema per il sollevamento delle automobili, allego uno schema riassuntivo del funzionamento:

In pratica, le pinze (quelle che avevo definito in prima battuta "travi") in posizione di riposo sono aperte, poi chiudendosi sollevano la ruota; e se si osserva il sistema frontalmente (immagine in alto) si vede come la sezione della pinza sia un'ellisse che al variare dell'angolo gamma, varia il proprio semiasse maggiore fino a diventare una circonferenza. Fino ad ora ho trattato la sezione della pinza come se fosse sempre una circonferenza e così facendo è facile trovare il punto di contatto tra le due (anche perché la distanza tra i centri delle due curve, una volta che è avvenuto il contatto, è sempre pari alla somma dei raggi), ma il calcolo dei bracci delle forze in gioco nel sistema è impreciso.
Sotto l'ipotesi semplificativa che la ruota sia indeformabile e che il suo profilo non sia raccordato, sono riuscito a ricavare tutti i valori del semiasse maggiore dell'ellisse in funzione dell'angolo gamma, ma non riesco a trovare la relazione tra lo stesso semiasse maggiore e il punto di intersezione o la distanza tra i centri delle due coniche.
I tentativi fatti finora sono stati quelli di mettere a sistema le due equazioni, oppure quelli di trovare le rette tangenti alle due curve e uguagliarne i coefficienti angolari e le coordinate dei punti di tangenza, ma in tutti i casi non sono riuscito a ricavare molto.
Spero di essere stato più chiaro.

moccidentale
.

genzo87
Le due pinze sono nella realtà due cilindri, lo si può vedere in questa immagine, dove si vede il sistema di sollevamento visto dall'alto:




Il mio scopo è quello far passare il piano per un fianco del cilindro che rappresenta la ruota (la linea orizzontale tratteggiata sopra), che è il piano a cui appartiene sempre il punto di contatto.
Per curiosità, che programma hai usato per fare la simulazione numerica?

moccidentale
.

genzo87
Ciao, innanzitutto grazie mille per la risposta! Sei stato gentilissimo.
Seconda cosa, purtroppo le mie conoscenze derivate dagli studi di ingegneria non mi permettono di "seguire" fino in fondo il tuo ragionamento, soprattutto quando parli di matrice di Sylvester e metodo di Newton-Raphson, dovrò approfondire...
Comunque ho una domanda, all'inizio quando scrivi:
$ xp=x¯p+r/tanγ,a=r/sinγ $

a me invece risulterebbero:
$ xp=x¯p+ c sinγ, a=r/sin(pi/2 - γ) $

dove $ x¯p $ è una grandezza fissa e c è l'ipotenusa (variabile) creata dal movimento della pinza che vale:
$ c=30 / cos γ $




Ti torna?

moccidentale
.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.