Utilizzando
Geogebra è possibile disegnare e fare i calcoli geometrici necessari. Geogebra non permette di calcolare l'area che ci interessa, viene calcolata come differenza tra l'area del settore circolare e il triangolo. Allego il file di Geogebra, i punti modificabili sono A e B, tutti gli altri dati sono poi aggiornati automaticamente.
Utilizzando come CAS (Computer Algebra System)
Maxima e il suo front-end
wxMaxima è possibile fare tutti i calcoli necessari per trovare una soluzione approssimata di

e poi verificarla con i valori di Geogebra.
Area del settore circolare:
- Codice: Seleziona tutto
AC: (R^2 * theta) / 2;

Lunghezza corda:
- Codice: Seleziona tutto
c: R * sin(theta / 2) * 2;

Altezza triangolo:
- Codice: Seleziona tutto
d: R * cos(theta / 2);

Area triangolo:
- Codice: Seleziona tutto
AT: trigreduce(c * d / 2);

Area segmento circolare:
- Codice: Seleziona tutto
A: factor(AC - AT);

Se tentiamo di risolvere l'equazione rispetto a

Maxima non trova nessuna soluzione valida.
Utilizziamo l'approssimazione di Taylor di

fino al 3 grado:
- Codice: Seleziona tutto
T3: taylor(sin(theta), theta, 0, 3);

Utilizzando l'approssimazione di Taylor troviamo 3 soluzioni, 2 complesse e una reale, prendiamo quest'ultima:
- Codice: Seleziona tutto
solve(ev(A, sin(theta) = T3) = 'A, theta)$
s:rootscontract(xthru(rhs(%[3])));

Con la soluzione approssimata possiamo calcolare l'altezza approssimata:
- Codice: Seleziona tutto
h:rootscontract(ratsimp(ev(R - d, theta=s)));

Sostituiamo i valori di Geogebra
- Codice: Seleziona tutto
ev(h, R=3.81, A=2.17), float;

Troviamo un valore di

vicino al valore

di Geogebra. Maggiore è l'angolo

maggiore è l'errore che si commette con all'approssimazione di Taylor.
Possiamo utilizzare il metodo delle tangenti (Newton-Raphson) per trovare, se possibile, una migliore soluzione numerica:
https://it.wikipedia.org/wiki/Metodo_delle_tangentiPuliamo tutta la memoria di Maxima, carichiamo il modulo con il codice per il metodo di Newton e impostiamo i dati numerici di partenza:
- Codice: Seleziona tutto
kill(all)$
load ("newton1")$
dati:[R=3.81, A=2.17];
Per trovare la soluzione bisogna impostare un punto iniziale

e una tolleranza

:
- Codice: Seleziona tutto
sol: newton(ev((R^2*(theta - sin(theta)))/2 - A, dati), theta, 0.1, 1E-4)$
float(sol * 180 / %pi);
ev(R - R * cos(theta / 2), dati, theta=sol);


L'angolo

in gradi sessadecimale e l'altezza

sono molto vicini ai valori di Geogebra quindi si tratta di una soluzione migliore.