VALORE DI UN POLINOMIO

CON IL METODO DI HORNER

Variabili semplici e strutturate (array)
Strutture di controllo: sequenza
iterazione enumerativa(ciclo for)

ESEMPIO

Introduci i coefficienti del seguente polinomio ed il valore di x. Premendo il tasto "=" otterrai il valore del polinomio

x =
x10 + x9 + x8 + x7 + x6 + x5 + x4 + x3 + x2 + x +

Per un altro valore premi il pulsante

F


acciamo il punto.
Argomenti correlati:

 

William George Horner
(Bristol, 1786 – Bath, 1837)
Matematico britannico, noto per la regola per valutare un polinomio come anche per l'invenzione dello zootropio.
Approfondimento su wikipedia.
Functions
Le funzioni in JavaScript permettono di scrivere del codice in un blocco in modo che possa essere utilizzato anche più volte quando sia necessario. La sintassi è:

function nome(argomenti){
     istruzioni;
}

dove al posto di nome possiamo scrivere un termine che ci ricordi lo scopo della funzione stessa.
Le istruzioni vanno separate dal punto e virgola.
Per riferirsi, o chiamare, una funzione, basta usare questa sintassi:

nome(valore degli argomenti)

Se gli argomenti mancano, occorre comunque inserire le parentesi.
Ad esempio, noi abbiamo costruito la funzione function leggi() ed in seguito l'abbiamo richiamata scrivendo leggi().

eval
Metodo che valuta una data stringa trattandola come se fosse un'istruzione. La sintassi è:
Risultato=eval(stringa)
Approfondimento

document.MioForm.elements.length
elements: proprietà dell'oggetto form. E' un array che contiene tutti gli oggetti del form.
elements.length: proprietà che rappresenta il numero di oggetti del form, nell'ordine dichiarato.
Approfondimento sugli oggetti
document.MioForm.elements[i].value
E' possibile usare l'array elements per accedere agli oggetti individualmente.
Ad esempio document.MioForm.elements[0].value è il contenuto della prima casella di testo inserita, nel nostro caso il valore della variabile x.
Visto che, il primo elemento di un array ha sempre indice 0, l'ultimo ha indice document.MioForm.elements.length-1
Approfondimento sui form
readonly
Proprietà che indica che il contenuto della casella di testo non può essere cambiato dall'utente. Abbiamo aggiunto questa opzione alla casella di testo che contiene il valore del polinomio.
Il pulsante New
L'aggiunta di questo pulsante non serve strettamente per il programma ma ad aggiornare le caselle di testo per comodità dell'utente.
Il pulsante chiama la funzione aggiorna().
Esso è stato inserito in un nuovo form per non sporcare il codice per il calcolo del valore del polinomio.
Questo il codice:

E


sercizio
    1. Scrivi un programma che calcoli, con il metodo di Horner, il valore di un polinomio di grado variabile.

CALCOLARE IL VALORE DI UN POLINOMIO p(x) CON IL METODO DI HORNER:


Partiamo da un esempio e calcoliamo il valore del polinomio p(x) = 3x4 + 4x3 - 2x2 + 5x - 4 per x = 2.
  1. Si raccoglie x fra tutti i termini che ce l'hanno come fattore comune:
    p(x)=x(3x3 + 4x2 - 2x + 5) - 4
  2. Si ripete il procedimento:
    p(x)=x[x(3x2 + 4x - 2) + 5] - 4
  3. Si ripete il procedimento:
    p(x)=x{x[x(3x + 4) - 2] + 5} - 4
Fino a quando si arriva ad un binomio di primo grado.
Dunque si tratta di prendere x e moltiplicarlo per il primo coefficiente, quindi aggiungere il secondo; moltiplicare il risultato per x ed aggiungere il terzo coefficiente; moltiplicare il risultato per x ed aggiungere il quarto coefficiente; moltiplicare il risultato per x ed aggiungere il quinto coefficiente; aggiungere il sesto coefficiente.
In tutto dobbiamo eseguire 4 moltiplicazioni e 4 addizioni.
Se invece avessimo usato il metodo tradizionale avremmo dovuto eseguire:
4 moltiplicazioni per il termine 3x4
3 moltiplicazioni per il termine 4x3
2 moltiplicazioni per il termine -2x2
1 moltiplicazioni per il termine 5x
4 addizioni.
In tutto 10 moltiplicazioni ed 1 addizione.

Il vantaggio computazionale del metodo di Horner, che ovviamente cresce all'aumentare del grado del polinomio, si sposa con la facilità dell'implementazione dell'algoritmo.
Vediamo come.

PREPARIAMO UN PRIMO SCHEMA DI PROGRAMMA


  1. leggi il valore dei coefficienti del polinomio: questi saranno memorizzati, ordinatamente, in un array di nome pol, mediante la dichiarazione
    pol=new Array()
  2. leggi il valore di x
  3. calcola il valore del polinomio con il metodo di Horner
  4. scrivi il risultato sullo schermo

PREPARIAMO SINGOLARMENTE LE PROCEDURE

 

function leggi() {
for (i=1; i<document.MioForm.elements.length-2;i++) {
    pol[i]=eval(document.MioForm.elements[i].value)
 }
  x = eval(document.MioForm.elements[0].value)
  }
 
function calcola() { 
  valore = pol [1]
  for (i=2; i< pol.length;i++) {
     valore = valore * x + pol[i]
       }
  document.MioForm.elements[document.MioForm.elements.length-1].value=valore
  }
       

PREPARIAMO LA PROCEDURA FINALE


function esegui() {
 leggi();
 calcola();
}

METTIAMO INSIEME IL TUTTO

Inseriamo il codice fra i tag <script> e </script>
Abbiamo inserito il codice in un'area di testo: volendo, si può copiare ed incollare.

INSERIAMO IL SEGUENTE FORM NEL CORPO DEL DOCUMENTO

Questo è il codice:


INDICE

 INDIETRO

©2009 www.webfract.it