{-# LANGUAGE RecursiveDo #-} module Experiment (experiment) where import Simulation.Aivika import Simulation.Aivika.Experiment import Simulation.Aivika.Experiment.Chart specs = Specs { spcStartTime = 0, spcStopTime = 10000, spcDT = 1, spcMethod = RungeKutta4, spcGeneratorType = SimpleGenerator } experiment :: ChartRenderer r => Experiment r experiment = defaultExperiment { experimentSpecs = specs, experimentRunCount = 1, experimentTitle = "Difference Equations", experimentDescription = "Difference Equations as described in " ++ "the corresponded tutorial of Berkeley-Madonna " ++ "with small modification for calculating std.", experimentGenerators = [outputView defaultExperimentSpecsView, outputView $ defaultTableView { tableSeries = ["t", "x", "sumX", "sumX2", "avg", "std"] }, outputView $ defaultTimeSeriesView { timeSeriesTitle = "Time Series", timeSeries = [Left "x", Left "avg"] }, outputView $ defaultTimingStatsView { timingStatsSeries = ["x"] }, outputView $ defaultTimeSeriesView { timeSeriesTitle = "Sums", timeSeries = [Left "sumX", Right "sumX2"] }, outputView $ defaultTimeSeriesView { timeSeriesTitle = "Standard Deviation", timeSeries = [Left "std"] } ] }