Vediamo una semplice ma potenzialmente utile applicazione del metodo della bisezione (o algoritmo dicotomico), per risolvere equazioni algebriche. In particolare, l'implementazione in JavaScript, in modo tale da renderlo utilizzabile a chiunque, infatti è sufficiente un qualsiasi browser, su un sistema operativo desktop, Ctrl+Shift+J e facciamo copia-incolla di quanto segue all'interno della Console; modifichiamo per il caso nostro e premiamo invio, abbiamo così il risultato.
Prima vediamo tutto il codice, poi lo commentiamo:
function f(x){ //nella forma f(x)=0
return 2**x-x**2+2;
}
function bisezione(a,b,Nmax,err){
let c;
for(let i=0;i<Nmax;i++){
c=0.5*(a+b);
if(f(a)*f(c)<0){b=c;}else{a=c;}
if(f(c)**2<err**2){break;}
}
return c;
}
let MIN=-20;
let MAX=20;
let Nmax=100;
let err_lim=0.01;
//stampa del risultato
console.log("x="+ bisezione(MIN,MAX,Nmax,err_lim));
L'algritmo è semplice di per sé, non occorre commentarlo più di tanto (e comunque non era questo lo scopo). Ciò che è opportuno in questo caso è prestare attenzione a questi punti:
- f(x): dove c'è return, inseriamo la nostra equazione algebrica nella forma f(x)=0
- MIN: dobbiamo definire un valore minimo del potenziale risultato X (ad esempio -20)
- MAX: dobbiamo definire un valore massimo del potenziale risultato X (ad esempio 20)
- Nmax: numero massimo iterazioni, ad esempio 100
- err_lim: interrompe le iterazioni se il margine di approssimazione è già inferiore a 0,01
Come detto, si tratta di un esempio semplice, di rapida implementazione ma potenzialmente utile in ambito didattico, anche come verifica numerica aggiuntiva del risultato matematico ottenuto per via analitica tradizionale. La scelta di usare JavaScript lo rende poi alla portata di tutti, chiunque abbia un computer desktop con un browser, copia-incolla nella Console, modificando opportunamente i parametri ed è pronto.