vuoi
o PayPal
tutte le volte che vuoi
Cristiano Teodoro
cristianoteodoro at virgilio.it
SUL CALCOLO DELLA RADICE ENNESIMA
E SUL RECIPROCO DELLA RADICE QUADRATA DI UN NUMERO
In un articolo comparso recentemente su questo Sito [1] veniva esposto come calcolare tutte le radici sia reali che
complesse di una equazione algebrica di qualsiasi grado e avente coefficienti reali.
Un tipo particolare di equazioni di grado è quello che si presenta sotto la seguente forma:
n
−
n = 0 per cui risolvendola con l’algoritmo summenzionato si possono calcolare tutte le sue radici sia reali che
x a n
complesse.
Riguardo poi il tipo di valori ottenuti per tale equazione si rileva quanto segue:
- per un si hanno radici reali di valore opposto e radici che risultano complesse e coniugate
n pari 2 n - 2
a coppie ;
- per un si ha una sola radice reale ed radici complesse coniugate a coppie
n dispari n - 1
Per trovare il valore algebrico della radice reale di questo tipo di equazione, che risulta essere evidentemente la radice
n
ennesima di cioè , non è tuttavia necessario utilizzare l’algoritmo generale summenzionato, ma è sufficiente
a
a,
prendere in esame l’algoritmo di Newton relativo al calcolo delle radici reali.
−
n
Pertanto considerando la funzione (x) = , partendo dalla generica formula iterativa riguardante questo
x a
f
algoritmo, cioè: ( )
f x
= − con k = 0, 1, 2, 3 …………
k
x x
+1 ′
k k ( )
f x k
n
per la quale si ha: lim = per k → ∞ dove è la derivata di (x),
a
x f ’(x) f
k n
si può ottenere con una convergenza di tipo quadratico, il valore numerico di reale positiva .
a
n
Affinché poi si abbia convergenza verso la con un numero limitato di iterazioni risulta opportuno scegliere il
a
= n
valore iniziale di valore superiore al valore di a e possibilmente dello stesso ordine di grandezza di
x x a .
0
k −
⋅ 1
n
Poiché per questa equazione si ha = la formula iterativa dopo opportuni e semplici passaggi diventa [2]:
n x
f ’(x)
⎡ ⎤ ⎛ ⎞
1 1
a a
( ) ⎜ ⎟
− ⋅ + +
1
⎢ ⎥
= che, per = 2 cioè per il calcolo di assume la nota formula =
x x
n x a x
n
+ +
−
1 1
1 ⎝ ⎠
⎣ ⎦ 2
k k
k n k
n x
x k
k
Un semplicissimo programma di tipo didattico espresso in linguaggio Qbasic viene qui di seguito presentato e proposto:
CLS : PRINT "------ CALCOLO DELLA RADICE ennesima DI UN NUMERO -----"
’DEFDBL A-Z
INPUT "introdurre il numero di cui si cerca la radice ennesima: ",a
INPUT "quale valore di radice vuoi "; n
If a < 1 then xo = 1: goto icso
b = INT(a): s$ = STR$(b): lc = len(s$)-1: ’PRINT lc
c = lc / n :if c <> INT(c) then c = INT(c)+1: ’PRINT c
xo=1 : for k = 1 to c: xo=xo*10 : NEXT k
icso: x=xo : PRINT "xo="; x
m = n - 1
DO
y = x: d = 1
FOR k = 1 TO m: d = d * y: NEXT k
x = (m * y + a / d) / n
LOOP WHILE x<y
PRINT x
Nel programma sono state introdotte le opportune istruzioni atte a contemplare per il valore iniziale xo le condizioni sopra
enunciate.
Se si volessero ottenere i valori della radice in doppia precisione, vale a dire con la presentazione di 16 cifre decimali
anziché di 8, per i risultati basterebbe togliere il simbolo ’ dall’inizio della seconda riga.
Dato il semplice e corto listato esposto in linguaggio Qbasic, non risulta difficile trasformarlo in un listato relativo ad un
qualsiasi altro linguaggio evoluto. 1