Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



simulation::montecarlo(n)                   Tcl Simulation Tools                   simulation::montecarlo(n)



____________________________________________________________________________________________________________

NAME
       simulation::montecarlo - Monte Carlo simulations

SYNOPSIS
       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

____________________________________________________________________________________________________________

DESCRIPTION
       The technique of Monte Carlo simulations is basically simple:

             generate random values for one or more parameters.

             evaluate the model of some system you are interested in and record the interesting results for
              each realisation of these parameters.

             after a suitable number of such trials, deduce an overall characteristic of the model.

       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 num-
       bers correlate. Sometimes a median value is a more robust characteristic than a mean  value  -  espe-cially especially
       cially if you have a statistical distribution with "fat" tails.

PROCEDURES
       The package defines the following auxiliary procedures:

       ::simulation::montecarlo::getOption keyword
              Get the value of an option given as part of the singeExperiment command.

              string keyword
                     Given keyword (without leading minus)


       ::simulation::montecarlo::hasOption keyword
              Returns 1 if the option is available, 0 if not.

              string keyword
                     Given keyword (without leading minus)


       ::simulation::montecarlo::setOption keyword value
              Set the value of the given option.

              string keyword
                     Given keyword (without leading minus)

              string value
                     (New) value for the option


       ::simulation::montecarlo::setTrialResult values
              Store the results of the trial for later analysis

              list values
                     List of values to be stored


       ::simulation::montecarlo::setExpResult values
              Set the results of the entire experiment (typically used in the final phase).

              list values
                     List of values to be stored


       ::simulation::montecarlo::getTrialResults
              Get  the  results  of all individual trials for analysis (typically used in the final phase or
              after completion of the command).


       ::simulation::montecarlo::getExpResult
              Get the results of the entire experiment (typically used in the final phase or even after com-pletion completion
              pletion of the singleExperiment command).


       ::simulation::montecarlo::transposeData values
              Interchange columns and rows of a list of lists and return the result.

              list values
                     List of lists of values

       There are two main procedures: integral2D and singleExperiment.

       ::simulation::montecarlo::integral2D ...
              Integrate a function over a two-dimensional region using a Monte Carlo approach.

              Arguments PM


       ::simulation::montecarlo::singleExperiment args
              Iterate  code  over  a  number  of trials and store the results. The iteration is gouverned by
              parameters given via a list of keyword-value pairs.

              int n  List of keyword-value pairs, all of which are available during the  execution  via  the
                     getOption command.

       The singleExperiment command predefines the following options:

             -init code: code to be run at start up

             -loop  body:  body  of  code  that  defines the computation to be run time and again. The code
              should use setTrialResult to store the results of each trial (typically a list of numbers, but
              the interpretation is up to the implementation). Note: Required keyword.

             -final code: code to be run at the end

             -trials n: number of trials in the experiment (required)

             -reportfile file: opened file to send the output to (default: stdout)

             -verbose: write the intermediate results (1) or not (0) (default: 0)

             -analysis proc: either "none" (no automatic analysis), standard (basic statistics of the trial
              results and a correlation matrix) or the name of a procedure that will take care of the analy-sis. analysis.
              sis.

             -columns list: list of column names, useful for verbose output and the analysis

       Any other options can be used via the getOption procedure in the body.

TIPS
       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.

KEYWORDS
       math, montecarlo simulation, stochastic modelling

CATEGORY
       Mathematics

COPYRIGHT
       Copyright (c) 2008 Arjen Markus <arjenmarkus@users.sourceforge.net>




simulation                                           0.1                           simulation::montecarlo(n)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Tcl.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Tcl через их страницу создания отчетов ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.