simulation::montecarlo(n) | Tcl Simulation Tools | simulation::montecarlo(n) |
simulation::montecarlo - Monte Carlo simulations
package require Tcl ?8.4?
package require simulation::montecarlo 0.1
package require simulation::random
package require math::statistics
::simulation::montecarlo::getOption keyword
::simulation::montecarlo::hasOption keyword
::simulation::montecarlo::setOption keyword value
::simulation::montecarlo::setTrialResult values
::simulation::montecarlo::setExpResult values
::simulation::montecarlo::getTrialResults
::simulation::montecarlo::getExpResult
::simulation::montecarlo::transposeData values
::simulation::montecarlo::integral2D ...
::simulation::montecarlo::singleExperiment args
The technique of Monte Carlo simulations is basically simple:
You can think of a model of a network of computers, an ecosystem of some kind or in fact anything that can be quantitatively described and has some stochastic element in it.
The package simulation::montecarlo offers a basic framework for such a modelling technique:
# # MC experiments: # Determine the mean and median of a set of points and compare them # ::simulation::montecarlo::singleExperiment -init { package require math::statistics set prng [::simulation::random::prng_Normal 0.0 1.0] } -loop { set numbers {} for { set i 0 } { $i < [getOption samples] } { incr i } { lappend numbers [$prng] } set mean [::math::statistics::mean $numbers] set median [::math::statistics::median $numbers] ;# ? Exists? setTrialResult [list $mean $median] } -final { set result [getTrialResults] set means {} set medians {} foreach r $result { foreach {m M} $r break lappend means $m lappend medians $M } puts [getOption reportfile] "Correlation: [::math::statistics::corr $means $medians]" } -trials 100 -samples 10 -verbose 1 -columns {Mean Median}This example attemps to find out how well the median value and the mean value of a random set of numbers correlate. Sometimes a median value is a more robust characteristic than a mean value - especially if you have a statistical distribution with "fat" tails.
The package defines the following auxiliary procedures:
There are two main procedures: integral2D and singleExperiment.
Arguments PM
The singleExperiment command predefines the following options:
Any other options can be used via the getOption procedure in the body.
The procedure singleExperiment works by constructing a temporary procedure that does the actual work. It loops for the given number of trials.
As it constructs a temporary procedure, local variables defined at the start continue to exist in the loop.
math, montecarlo simulation, stochastic modelling
Mathematics
Copyright (c) 2008 Arjen Markus <arjenmarkus@users.sourceforge.net>
0.1 | simulation |