La radice quadrata è un’operazione matematica piuttosto comune (in Italia la si insegna alle scuole medie) che consiste nel trovare il numero che, moltiplicato per se stesso, dà come risultato un numero di partenza.
Ad esempio la radice quadrata di 4 è 2 perché 2 * 2 = 4
Usare la funzione sqrt() per calcolare la radice quadrata in C
In linguaggio C, esistono diversi modi per calcolare la radice quadrata di un numero. Il più semplice consiste nell’utilizzare la funzione matematica sqrt()
, che fa parte della libreria <math.h> di C. Questa funzione accetta un singolo argomento cioè il numero di cui si desidera calcolare la radice quadrata. Il numero passato in argomento alla funzione sqrt()
può esserei sia un numero intero che uno decimale. Altrettanto dicasi per il risultato che potrà essere, ovviamente, un numero intero o decimale.
#include <math.h>
#include <stdio.h>
int main() {
double numero = 10.89;
double risultato = sqrt(numero);
printf("La radice quadrata di %lf è %lf", numero, risultato);
return 0;
}
Il risultato che otterremo eseguendo questo semplice codice sarà il seguente:
La radice quadrata di 10.89 è 3.3
Utilizzare la tecnica di Newton-Raphson per il calcolo della radice quadrata in C
Un altro modo per calcolare la radice quadrata consiste nell’utilizzare un algoritmo di approssimazione, come ad esempio la tecnica di Newton-Raphson.
L’algoritmo di Newton-Raphson è un metodo matematico uche funziona facendo successive stime della radice e correggendo queste stime in base a quanto sono lontane dalla vera radice. Questo processo viene ripetuto finché non si ottiene una stima abbastanza precisa.
Questa tecnica in altre parole, utilizza un approccio iterativo per avvicinarsi al valore della radice quadrata di un numero.
Di seguito un esempio di sua implementazione in C:
#include <stdio.h>
double radiceQuadrata(double numero) {
double approssimazione = numero / 2.0;
double differenza = numero - approssimazione * approssimazione;
while (differenza > 0.00001) {
approssimazione = (approssimazione + numero / approssimazione) / 2.0;
differenza = numero - approssimazione * approssimazione;
}
return approssimazione;
}
int main() {
double numero = 10.89;
double risultato = radiceQuadrata(num);
printf("La radice quadrata di %lf è %lf", numero, risultato);
return 0;
}
Il risultato generato da queto codice sarà ovviamente identico a quello visto in precedenza.
Conclusioni
Esistono diversi modi per calcolare la radice quadrata di un numero in C: la soluzione più semplice è utilizzare la funzione sqrt()
oppre un algoritmo di approssimazione come quello di Newton-Raphson. In alternativa, in linea teorica, è possibile seguire anche altre strade come, ad esempio, l’utilizzo di librerie matematiche più complesse (come la libreria GMP) il cui utilizzo, tuttavia, appare esagerato per colcoli semplici come quello relativo alla radice quadrata.