Dato che le due pinze sono cilindriche ne ho sezionata una con un piano \(y = y_p + r\) e ho ottenuto quanto sopra riportato. D'altro canto tu, che ovviamente hai ben in mente il meccanismo che stai analizzando, hai sezionato con un piano \(y = y_p + k\) e poi, invece dell'angolo \(\gamma\), hai considerato il suo complementare: \[
x_p = \overline{x}_p + k/\tan(\pi/2-\gamma) = \overline{x}_p + k\tan\gamma,
\quad \quad
a = r/\sin(\pi/2-\gamma) = r/\cos\gamma
\] dove assumendo \(k = 30\) si ottengono esattamente le tue formulazioni, che in quanto tali sono corrette.
Sul resto, se vuoi approfondire ti posso linkare le rispettive pagine
Wikipedia:
click e
click, dove tra i due inutile dire che sia decisamente più importante che tu conosca molto bene il
metodo di Newton-Raphson, essendo praticamente il metodo numerico più potente e trasversale, perlomeno tra quelli noti ai comuni mortali come noi altri, poi ne esistono talmente tanti altri più sofisticati che è meglio non pensarci!
Quindi, volendo dribblare la tiritera del discriminante, possiamo rifarci a dei fatti geometrici fondamentali:
- per una curva implicita \(f(u,v)=0\) un vettore normale è \(\mathbf{n}_f = \left(f_u,f_v\right) \ne (0,0)\);
- per una superficie implicita \(f(u,v,w)=0\) un vettore normale è \(\mathbf{n}_f = \left(f_u,f_v,f_w\right) \ne (0,0,0)\).
Pertanto, considerando le due curve implicite in gioco: \[
f(x,z) := \frac{(x-x_p)^2}{a^2} + \frac{(z-z_p)^2}{r^2} - 1 = 0,
\quad \quad
g(x,z) := \frac{x^2}{R^2} + \frac{(z-z_r)^2}{R^2} - 1 = 0
\] possiamo calcolarne i rispettivi vettori normali: \[
\mathbf{n}_f = \left(\frac{2(x-x_p)}{a^2},\frac{2(z-z_p)}{r^2}\right),
\quad \quad
\mathbf{n}_g = \left(\frac{2x}{R^2},\frac{2(z-z_r)}{R^2}\right)
\] e imporre che nel punto di tangenza di coordinate \((x,z)\) siano paralleli, ossia proporzionali: \[
\mathbf{n}_f = \lambda\,\mathbf{n}_g,
\quad \quad \text{con} \; \lambda \in \mathbb{R}\backslash\{0\}.
\] Nella fattispecie, il sistema di equazioni appena scritto permette di determinare il punto di tangenza: \[
(x,z) = \left(\frac{R^2x_p}{R^2-\lambda a^2},\frac{R^2z_p-\lambda r^2z_r}{R^2-\lambda r^2}\right)
\] che, naturalmente, dipende dalle incognite \(z_r \ge 0\) e \(\lambda < 0\), quest'ultima disequazione deducibile dal fatto che nel nostro specifico caso di interesse il vettore \(\mathbf{n}_f\) punta verso l'alto e il vettore \(\mathbf{n}_g\) punta verso il basso.
Ciò fatto, sfruttando nuovamente il fatto che stiamo operando nel semipiano negativo delle quote, si ha: \[
g(x,z) = 0
\quad \Rightarrow \quad
z = z_r - \sqrt{R^2-x^2}
\quad \Rightarrow \quad
\frac{R^2z_p-\lambda r^2z_r}{R^2-\lambda r^2} = z_r - \sqrt{R^2-\left(\frac{R^2x_p}{R^2-\lambda a^2}\right)^2}
\] equazione lineare rispetto a \(z_r\) verificata se e soltanto se: \[
z_r = z_p + \frac{R^2-\lambda r^2}{R}\sqrt{1-\left(\frac{R\,x_p}{R^2-\lambda a^2}\right)^2}.
\] Non ci rimane che sostituire l'espressione di \(z_r\) nelle coordinate del punto di tangenza, che a loro volta sostituite nell'unica equazione che manca all'appello, ossia \(f(x,z)=0\), permette di ridursi all'equazione: \[
p(\lambda) := c_0 + c_1\,\lambda + c_2\,\lambda^2 + c_3\,\lambda^3 + c_4\,\lambda^4 = 0
\] dove: \[
\begin{aligned}
& c_0 = -R^6 \\
& c_1 = 2 a^2 R^4 \\
& c_2 = R^2\left(r^2 (R^2 - x_p^2) - a^2 (a^2 - x_p^2)\right) \\
& c_3 = -2 a^2 r^2 R^2 \\
& c_4 = a^4 r^2 \\
\end{aligned}.
\] Ancora una volta siamo in balia di un'equazione polinomiale di quarto grado, che perlomeno ora non necessita del calcolo del rispettivo discriminante, dato che la questione circa la tangenza l'abbiamo sfangata a monte ragionando in termini di vettori normali alle due curve implicite in gioco. D'altro canto, seppur per i polinomi fino al quarto grado esistano delle formulazioni in forma chiusa, non sono per nulla agevoli se non nei classici casi di un'equazione di primo o secondo grado, che non a caso vengono trattati sin dalle scuole superiori.
È proprio per questo motivo che i metodi numerici entrano in gioco di prepotenza, tra i quali inutile ribadirlo che a farla da padrone sia il
metodo di Newton-Raphson, il re assoluto dei cosiddetti
root-finding algorithms.
Nella fattispecie, dato che sappiamo dover risultare \(\lambda<0\) sarà sufficiente porre come valore di primo tentativo \(\lambda^* = -10\) e poi aggiornare tale valore quasi casuale iterando il seguente metodo numerico: \[
\lambda^* = \lambda^* - p(\lambda^*)/p'(\lambda^*).
\] Al solito, basteranno una decina di iterazioni per arrivare a convergenza e poter concludere \(\lambda = \lambda^*\).
Dulcis in fundo, possiamo sintetizzare l'intero algoritmo in quattro passi:
- assegnare dei valori numerici a tutti i parametri noti e inizializzare \(\gamma = 10^{-3}\);
- risolvere iterativamente l'equazione \(p(\lambda) = 0\) determinando l'unico \(\lambda < 0\) che la verifica;
- calcolare \(z_r\): se \(z_r<0\) non c'è tangenza, quindi \(z_r = 0\) e si passa all'ultimo punto; altrimenti
c'è tangenza, il valore di \(z_r\) è accettabile e permette di determinare il punto di tangenza \((x,z)\);
- incrementare \(\gamma\) e tornare al secondo punto finché \(\gamma\) non sia nei pressi di \(\pi/2\).
Va da sé che i dati iniziali debbano essere ragionevoli, altrimenti potrebbe benissimo essere che \(\lambda^*\) converga ad un valore positivo, che a sua volta renderà negativo il radicando, mandando tutto alle ortiche. Ciò accade, ad esempio, se assumiamo un valore di \(\overline{x}_p\) troppo piccolo e quindi la pinza risulterebbe interna alla ruota, che ovviamente è un caso fisicamente impossibile. Tutto ciò per sottolineare che bisogna sempre ragionarci bene!