La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Calcolo di valori approssimati delle radici

Presentazioni simili


Presentazione sul tema: "Calcolo di valori approssimati delle radici"— Transcript della presentazione:

1 Calcolo di valori approssimati delle radici

2 Il problema Implementare l'algoritmo che calcola il valore approssimato della radice di un numero. Esempio: il calcolo approssimato di Dato x, partendo da 0 con incrementi di 1, si cerca l'intero il cui quadrato è minore di x ed il quadrato del successivo è maggiore di x Dopo aver trovato la parte intera, si procede con i decimi, ripetendo il ciclo con incremento di 0.1 E così via 1 2 1,4 1,5 1,41 1,42

3 Il ciclo while Poiché non sappiamo quanti incrementi far fare, occorre usare un ciclo while, che ripete se una certa condizione è vera ed esce dal ciclo se la condizione diventa falsa Esempi (farli funzionare e scoprire cosa fanno) p=1; m=0; while (m<5) { p=p*2; m++; } alert(p); x = prompt("inserisci un numero",""); m=2; while (x % m !=0 ) { m++; } alert(m);

4 Passo 1 – La parte intera Calcolo di
Notare che dopo il ciclo bisogna togliere 1, perché esce quando il quadrato dell'intero supera il numero. x=30; // numero di cui dobbiamo trovare la radice. r=0; // approssimazione iniziale while (r*r<=x) { r=r+1; } r=r-1; alert("La parte intera della radice di " + x + " è " + r);

5 Passo 2 – La cifra dei decimi
E' come il precedente: occorre solo incrementare di 0.1 Questo secondo ciclo va messo dopo il primo (prima dell'alert, la cui frase va cambiata) Purtroppo si nota che JavaScript non dà l’esatta approssimazione ai decimi. Nell’esempio di dà invece che 5.4. Questo perché JS opera in base 2 (e 0.1 è periodico!) while (r*r<=x) { r=r+0.1; } r=r-0.1;

6 Come rimediare all'approssimazione
Trucco Calcoliamo * 10 = ; Lo approssimiamo alle unità 54 Dividiamo il risultato per 10, ottenendo 5.4 Le istruzioni, da mettere prima dell'alert r=r*10; r=Math.round(r); // round approssima all'intero più vicino r=r/10;

7 Passo 3 – La cifra dei millesimi
L'aggiunta da fare viene lasciata per esercizio Occorre mettere un terzo ciclo con incremento 0.01 Occorre anche modificare il trucco dell'approssimazione Il risultato deve essere 5.47

8 Generalizzazione function approssima(r,err) { while (r*r<x) {
Cosa cambia da un passo all'altro? Solo l'incremento: inizialmente è 1, poi 0.1, poi 0.01. Per generalizzare si potrebbe costruire una funzione nella quale entra il numero r e l'incremento err e restituisce l'approssimazione. function approssima(r,err) { while (r*r<x) { r=r+err; } r=r-err; return r;

9 Generalizzazione La funzione viene richiamata quante volte si vuole.
La prima volta si parte da 0, le successive da r. r = approssima(0, 1); r = approssima(r, 0.1); r = approssima(r, 0.01); r=r*1000; r=Math.round(r); r=r/1000; alert("La radice approssimata a 3 cifre decimali di " + x + " è " +r);

10 Ulteriori passi Fare inserire dall’utente il numero di cui va trovata la radice con una finestra di prompt Mettere un if con messaggio di errore se l’utente inserire un numero negativo. Mettere il richiamo della funzione approssima() in un ciclo. Farsi comunicare dall'utente anche con quante cifre decimali vuole il risultato Radice cubica: rifare lo script facendo le opportune modifiche per calcolare la radice cubica


Scaricare ppt "Calcolo di valori approssimati delle radici"

Presentazioni simili


Annunci Google