Notifiche
Cancella tutti

Algoritmi estrazione radumrice quadrata

  

0
img 20220905 135551 7978828966090658489
Autore
Etichette discussione
5 Risposte



2



2
image
image
image
image
image
image
image
image

 



2

Svolgo rad_0.01   (1632) con l'algoritmo che si usava alle medie.

Il numero viene riscritto come  

16.32,00    

cioé raggruppando le cifre in blocchi di 2 a partire da destra e mettendo dopo la virgola

tante coppie di zeri quanti sono i decimali che si vogliono trovare.

La più alta cifra il cui quadrato non supera 16 é 4 

4*4 = 16 e 16 - 16 = 0

Si passa al blocco successivo che é 32 

 

16.32,00   |__________

  0 32         4 

Si affianca a 8 ( doppio di 4 )  una cifra 

8c x c  ( c dovrebbe essere la più alta che non faccia superare 32 )

81 x 1 = 41 é già troppo grande ( supera 32 ) 

 

40 x 0 = 0 

 

16.32,00   |__________

  0 32         40, 

     00

-------

     32 00

 

Si ripete : cerco la più alta c in modo che 80c x c non superi 3200 

ed é 3 : 803 x 3  = 2409 mentre 804 x 4 = 3216

 

16.32,00   |__________

  0 32         40,3

     00

-------

     32 00

     24 09

-----------

       7 91 

 

Abbiamo finito e il risultato ( per difetto a meno di 0.1 ) é 40,3.

Infatti 40.3^2 = 1624.09 mentre 40.4^" = 1632.16



2

Ma non hai un testo che ti spiega come fare? Puoi fare benissimo tu da solo. (Come le divisioni).

Sono calcoli un po' laboriosi e macchinosi che si imparavano ai miei tempi...

Se si dovesse perdere il tempo a calcolare le radici, i logaritmi e altre funzioni, non si avrebbe il tempo di mangiare, dormire e per risolvere certi problemi ci vorrebbero giornate intere. Ai miei tempi c'erano le tavole, regoli. Hanno inventato le macchine proprio per non perdere tempo a fare questi calcoli rognosi!

Ciao @contegiorgio

 



2

Gli algoritmi per l'estrazione della radice quadrata sono centinaia e se tu metti un titolo così generico metti in imbarazzo chi legge; così ciascuno di noi responsori ti mostra un po' di risultati col suo algoritmo preferito: @Remanzini_Rinaldo, Newton; @LucianoP e @EidosM, Bombelli; e anch'io ti mostrerò il mio preferito algoritmo dei dimezzamenti, ma non come alle medie con le sole tabelline imparate a memoria per il Bombelli: io ti illustro i dimezzamenti sapendo che hai speso tre euro per avere un volumetto di Tavole Numeriche con, fra l'altro, quadrati e radici quadrate dei numeri da 1 a 10000 e che con queste Tavole puoi dare un innesco efficiente all'algoritmo.
Però consentimi un appunto: tu frequenti questo sito da sette mesi e hai pubblicato una trentina di domande e una quindicina di commenti, perciò dovresti aver imparato come presentare una domanda. Com'è che invece metti un titolo generico, non scrivi una parola e alleghi una foto che, in turcomanno medievale, si classificherebbe "di merda"?
Potevi almeno rifarla leggibile dopo aver visto che cosa usciva nel browser, e che diavolo!
------------------------------
Bene, con notevoli sforzi interpretativi riesco a comprendere che la foto porta quattro richieste, tutte con la consegna
* "Utilizzando l'algoritmo per l'estrazione della radice quadrata"
calcolare quella di due, tre o quattro radicandi dati (senza dire mai QUALE algoritmo); e con diverse condizioni restrittive
a) "radice quadrata esatta" (ciò richiede che il radicando R sia un quadrato perfetto)
b1) "troncata all'unità (1 = 1/10^0)" (cioè la radice quadrata intera del radicando R)
b2) "troncata al decimo (0,1 = 1/10^1)" (cioè 1/10 della radice quadrata intera di 100*R)
b3) "troncata al centesimo (0,01 = 1/10^2)" (cioè 1/100 della radice quadrata intera di 10000*R)
NB: i tre casi "b" sono istanze della generica regola "c"
c) "troncata a 1/10^k" vuol dire 1/10^k della radice quadrata intera di R*10^(2*k)
------------------------------
Così il lavoro s'è ridotto a due sottolavori più semplici.
---------------
1) Dimostrare o confutare che {4624, 8464, 16384, 28900} siano quadrati perfetti e, per quelli che lo sono, mostrare la "radice quadrata esatta".
Risulta che lo sono tutt'e quattro e che le radici esatte sono {68, 92, 128, 170}.
Per 4624 e 8464, bastano le Tavole Numeriche nella colonna "√N".
Per 28900, servono prima la regola "c" e poi le Tavole per 289 = 17^2.
Per 16384, serve il metodo generale di cui al sottolavoro #2.
---------------
2) Come calcolare la radice quadrata intera r di un dato intero positivo R, tale che
* r^2 <= R < (r + 1)^2
Per esporre i passi del mio algoritmo preferito mi serve qualche numero d'esempio che mi procuro attingendo alla tua foto.
==============================
DALLA TUA FOTO
------------------------------
A) "radice quadrata esatta": resta solo 16384.
------------------------------
B1) "troncata all'unità (1 = 1/10^0)"
* √(665), √(2004), √(3112), √(4545)
------------------------------
B2) "troncata al decimo (0,1 = 1/10^1)" (cioè 1/10 della radice quadrata intera di 100*R)
* √(140) = (1/10)*√(14000)
* √(1632) = (1/10)*√(163200)
* √(6560) = (1/10)*√(656000)
------------------------------
B3) "troncata al centesimo (0,01 = 1/10^2)" (cioè 1/100 della radice quadrata intera di 10000*R)
* √(902) = (1/100)*√(9020000)
* √(4905) = (1/100)*√(49050000)
------------------------------
I radicandi R da cui trarre gli esempi sono nell'insieme
* {665, 2004, 3112, 4545, 14000, 16384, 163200, 656000, 9020000, 49050000}
le radici quadrate intere di quelli fino a 10000 si leggono dalle Tavole nella colonna "√N" eliminando la parte decimale del risultato.
Quindi da {665, 2004, 3112, 4545} si ottiene {25, 44, 55, 67}.
Restano R in {14000, 16384, 163200, 656000, 9020000, 49050000}, per cui determinare
* r^2 <= R < (r + 1)^2
---------------
PRIMA FASE: SEPARARE (si usano le colonne "N^2" e "√N")
Si tratta di trovare due numeri (L, U) tali che
* L^2 <= R < U^2
se U è il successore di L allora r = L.
L'intervallo [L, U) in cui la radice r è separata si trova alla Bombelli con Tavole.
Da R si ricava R1 sostituendo le ultime quattro cifre con zeri e iterando fino a restare con meno di quattro cifre che costituiscono un R2 sicuramente nelle Tavole da cui leggere r2: da r2 si ha L aggiungendo tante coppie di zeri per quante quadruple sono servite per fare R1; questa costruzione garentisce
* L^2 <= R
per trovare U si fa la stessa cosa coi successori di r2.
Esempio
* 14000 → 10000 → 100^2 <= 14000 < 200^2 = 40000
* 16384 → 10000 → 100^2 <= 16384 < 200^2 = 40000
* 163200 → 160000 → 400^2 <= 163200 < 500^2 = 250000
* 656000 → 650000 → 800^2 = 640000 <= 656000 < 900^2 = 810000
* 9020000 → 9020000 → 3000^2 = 9000000 <= 9020000 < 4000^2 = 16000000
* 49050000 → 49050000 → 7000^2 = 49000000 <= 49050000 < 8000^2 = 64000000
---------------
SECONDA FASE: RAFFINARE (si usano le stesse colonne)
Si procede per passi successivi.
1) Se L + 1 = U allora l'algoritmo termina e il risultato è r = L.
2) Se non è terminato si calcolano
2a) M = floor[(U + L)/2] (il troncamento all'unità della media fra gli estremi)
2b) e il suo quadrato M^2
3) Se M^2 = R allora l'algoritmo termina e il risultato è r = M.
4) Se non è terminato allora
4a) se M^2 < R allora si pone L = M e si prosegue dal passo #1.
4b) se M^2 > R allora si pone U = M e si prosegue dal passo #1.
Esempio
Beh, puoi pure pensarci da te!
A titolo di controllo, devi ottenere
* floor[√({14000, 16384, 163200, 656000, 9020000, 49050000})] =
= {118, 128, 403, 809, 3003, 7003}

 



Risposta




SOS Matematica

4.6
SCARICA