Home
Accesso / Registrazione
 di 

Estrarre numeri a caso e risolvere problemi? Il Metodo Montecarlo ci dimostra che si può fare!

001

Il metodo Montecarlo è un sistema numerico utilizzato per riprodurre e simulare una situazione reale o teorica. Con questo metodo è possibile generare gli eventi appartenenti ad una distribuzione di probabilità. Quello che state per leggere è un articolo che tratta di questo argomento nell'ottica di determinare alcune soluzioni a classi di problemi, normalmente risolti per mezzo di altri criteri o sistemi.

Contenuto esclusivo per gli ABBONATI PLATINUM di Elettronica Open Source.

Leggi subito tutto l'articolo e poi ricevilo in PDF all'interno di EOS-Book insieme a tanti altri vantaggi offerti dall'Abbonamento Platinum! Diventa Utente PLATINUM

SCOPRI TUTTI I VANTAGGI DI UN ABBONAMENTO ANNUALE CHE COMPRENDE ANCHE TUTTO L'ARCHIVIO

 

 

 

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Antonello

Certo che spiegato così

Certo che spiegato così sembra proprio un gioco per ragazzini.

Bravissimi!

ritratto di Gianluca Angelone

velocità di esecuzione ed esempi trattati

Nel testo è ripetuto più volte che il linguaggio C è "veloce". Che io sappia la velocità di esecuzione di un programma è legata all'hardware utilizzato. Facendo riferimento al primo esempio (nonno, padre, figlio) lo spazio delle soluzioni è 10^5 elementi: se volessimo "testarli" tutti, con tempo di esecuzione di 10 microsecondi impiegheremmo 1 secondo (in realtà di meno se la soluzione non è proprio l'ultimo elemento). Tentando la sorte è solo probabile che ci riusciamo in un secondo, potremmo anche aspettare un tempo infinito visto che i numeri generati sono solo "pseudo-casuali".
In generale molti degli esempi presentati hanno una soluzione analitica che si calcola in un tempo definito e quindi non si capisce perché utilizzare un metodo che non garantisce la soluzione in un tempo ragionevole. L'utilizzo di tecniche basate su numeri casuali trova sicuramente la sua utilità in quei casi in cui non è possibile definire analiticamente una soluzione o lo spazio delle soluzioni da esplorare è proibitivo.
Il metodo presentato, poi, è semplicemente una ricerca casuale di una soluzione: si ripete l'estrazione tante volte finché non si indovina. Il metodo Monte Carlo è un'altra cosa: si ripete tante volte un esperimento (un numero elevato ma "predefinito"), poi sui risultati ottenuti si effettuano delle operazioni statistiche che restituiscono valori che "con elevata probabilità" riproducono il valore cercato.
Faccio un esempio: se ho un circuito con 20 componenti, tra resistori, induttori, condensatori, oguno con una precisione del +o- 5% e voglio vedere come cambiano le prestazioni del circuito al variare  dei parametri, per farla semplice, con passo dell'1% ho 10^20 test diversi da fare.  A questo punto si sceglie di generare 10^5 "estrazioni" (quindi un numero predefinito ) e valutare il numero di casi in cui il valore sotto osservazione (per esempio la banda passante) si discosta  dal valore nominale oltre una soglia di riferimento (ad es. +o- 10%).

Infine una piccola nota di stile: limitiamoci a proporre una soluzione e lasciamo poi giudicare gli altri se quella che proponiamo è veramente una delle migliori, i commenti sono fatti apposta! Sicuramente, secondo il mio modesto parere, la proposta per "ampliare" il set di valori casuali è interessante ed ingegnosa però io dividerei per RAND_MAX forzando il tipo ad essere long double (80 bit penso bastino!) e poi moltiplicherei il numero (compreso fra 0 e 1) per il massimo valore che voglio utilizzare (al limite LDBL_MAX: oltre questo numero non credo si possa rappresentare nulla).

ritratto di Giorgio B.

Sulla nota di stile sono

Sulla nota di stile sono d'accordo.

Per il resto, l'articolo è interessante. e fa ben il paio con l'altro.

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 27 utenti e 77 visitatori collegati.

Ultimi Commenti