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.