Location: Uncertain starting point parabola @ 7542cec1cda8 / UncertainStartingParameter.cellml

Author:
Andrew Miller <ak.miller@auckland.ac.nz>
Date:
2011-08-16 11:44:27+12:00
Desc:
Initial work on the model and associated SED-ML descriptions, along with work towards scripts to generate figures showing the model in action
Permanent Source URI:
https://models.physiomeproject.org/w/miller/uncertain-starting-parabola/rawfile/7542cec1cda8b6deab8f25042f92f487edb436f5/UncertainStartingParameter.cellml

<?xml version="1.0" encoding="iso-8859-1"?>
<model name="uncertain_starting_parabola"
       xmlns="http://www.cellml.org/cellml/1.1#"
       xmlns:cellml="http://www.cellml.org/cellml/1.1#">
  <component name="main">
    <variable name="time" units="second"/>
    <variable name="gravity_accel" units="metres_per_second2"/>

    <variable name="initial_velocity_cartesian_x" units="metres_per_second"/>
    <variable name="initial_velocity_cartesian_y" units="metres_per_second"/>
    <variable name="initial_position_cartesian_x" units="metre"/>
    <variable name="initial_position_cartesian_y" units="metre"/>

    <variable name="velocity_cartesian_x" units="metres_per_second"/>
    <variable name="velocity_cartesian_y" units="metres_per_second"
              initial_value="initial_velocity_cartesian_y"/>
    <variable name="position_cartesian_x" units="metre"
              initial_value="initial_position_cartesian_x"/>
    <variable name="position_cartesian_y" units="metre"
              initial_value="initial_position_cartesian_y"/>
    <!-- These variables appear as bound variables in expressions. -->
    <variable name="x" units="metre" initial_value="0"/>
    <variable name="xv" units="metres_per_second" initial_value="0"/>

    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply><eq/>
        <ci>velocity_cartesian_x</ci>
        <ci>initial_velocity_cartesian_x</ci>
      </apply>

      <apply><eq/>
        <apply><diff/>
          <bvar><ci>time</ci></bvar>
          <ci>velocity_cartesian_y</ci>
        </apply>
        <apply><minus/><ci>gravity_accel</ci></apply>
      </apply>

      <apply><eq/>
        <apply><diff/>
          <bvar><ci>time</ci></bvar>
          <ci>position_cartesian_x</ci>
        </apply>
        <ci>velocity_cartesian_x</ci>
      </apply>

      <apply><eq/>
        <apply><diff/>
          <bvar><ci>time</ci></bvar>
          <ci>position_cartesian_y</ci>
        </apply>
        <ci>velocity_cartesian_y</ci>
      </apply>

      <!-- xPosition(0) ~ N(0, 1) -->
      <apply><csymbol definitionURL="http://www.cellml.org/uncert1#uncertParWithDist"/>
        <ci>initial_position_cartesian_x</ci>
        <apply><csymbol definitionURL="http://www.cellml.org/uncert1#distFromDensity"/>
          <lambda>
            <bvar><ci>x</ci></bvar>
            <apply><times/>
              <apply><divide/>
                <cn cellml:units="dimensionless">1</cn>
                <apply><root/>
                  <apply><times/>
                    <cn cellml:units="dimensionless">2</cn>
                    <pi/>
                    <cn cellml:units="dimensionless">1</cn>
                  </apply>
                </apply>
              </apply>
              <apply><exp/>
                <apply><minus/>
                  <apply><divide/>
                    <apply><power/>
                      <apply><minus/>
                        <ci>x</ci>
                        <cn cellml:units="metre">0</cn>
                      </apply>
                      <cn cellml:units="dimensionless">2</cn>
                    </apply>
                    <apply><times/>
                      <cn cellml:units="dimensionless">2</cn>
                      <cn cellml:units="metre2">1</cn>
                    </apply>
                  </apply>
                </apply>
              </apply>
            </apply>
          </lambda>
        </apply>
      </apply>

      <!-- yPosition ~ N(0, 1) -->
      <apply><csymbol definitionURL="http://www.cellml.org/uncert1#uncertParWithDist"/>
        <ci>initial_position_cartesian_y</ci>
        <apply><csymbol definitionURL="http://www.cellml.org/uncert1#distFromDensity"/>
          <lambda>
            <bvar><ci>x</ci></bvar>
            <apply><times/>
              <apply><divide/>
                <cn cellml:units="dimensionless">1</cn>
                <apply><root/>
                  <apply><times/>
                    <cn cellml:units="dimensionless">2</cn>
                    <pi/>
                    <cn cellml:units="dimensionless">1</cn>
                  </apply>
                </apply>
              </apply>
              <apply><exp/>
                <apply><minus/>
                  <apply><divide/>
                    <apply><power/>
                      <apply><minus/>
                        <ci>x</ci>
                        <cn cellml:units="metre">0</cn>
                      </apply>
                      <cn cellml:units="dimensionless">2</cn>
                    </apply>
                    <apply><times/>
                      <cn cellml:units="dimensionless">2</cn>
                      <cn cellml:units="metre2">1</cn>
                    </apply>
                  </apply>
                </apply>
              </apply>
            </apply>
          </lambda>
        </apply>
      </apply>

      <!-- xVelocity(0) ~ N(10, 1) -->
      <apply><csymbol definitionURL="http://www.cellml.org/uncert1#uncertParWithDist"/>
        <ci>initial_velocity_cartesian_x</ci>
        <apply><csymbol definitionURL="http://www.cellml.org/uncert1#distFromDensity"/>
          <lambda>
            <bvar><ci>xv</ci></bvar>
            <apply><times/>
              <apply><divide/>
                <cn cellml:units="dimensionless">1</cn>
                <apply><root/>
                  <apply><times/>
                    <cn cellml:units="dimensionless">2</cn>
                    <pi/>
                    <cn cellml:units="dimensionless">1</cn>
                  </apply>
                </apply>
              </apply>
              <apply><exp/>
                <apply><minus/>
                  <apply><divide/>
                    <apply><power/>
                      <apply><minus/>
                        <ci>xv</ci>
                        <cn cellml:units="metres_per_second">10</cn>
                      </apply>
                      <cn cellml:units="dimensionless">2</cn>
                    </apply>
                    <apply><times/>
                      <cn cellml:units="dimensionless">2</cn>
                      <cn cellml:units="metres2_per_second2">1</cn>
                    </apply>
                  </apply>
                </apply>
              </apply>
            </apply>
          </lambda>
        </apply>
      </apply>

      <!-- yVelocity(0) ~ N(10, 1) -->
      <apply><csymbol definitionURL="http://www.cellml.org/uncert1#uncertParWithDist"/>
        <ci>initial_velocity_cartesian_y</ci>
        <apply><csymbol definitionURL="http://www.cellml.org/uncert1#distFromDensity"/>
          <lambda>
            <bvar><ci>xv</ci></bvar>
            <apply><times/>
              <apply><divide/>
                <cn cellml:units="dimensionless">1</cn>
                <apply><root/>
                  <apply><times/>
                    <cn cellml:units="dimensionless">2</cn>
                    <pi/>
                    <cn cellml:units="dimensionless">1</cn>
                  </apply>
                </apply>
              </apply>
              <apply><exp/>
                <apply><minus/>
                  <apply><divide/>
                    <apply><power/>
                      <apply><minus/>
                        <ci>xv</ci>
                        <cn cellml:units="metres_per_second">10</cn>
                      </apply>
                      <cn cellml:units="dimensionless">2</cn>
                    </apply>
                    <apply><times/>
                      <cn cellml:units="dimensionless">2</cn>
                      <cn cellml:units="metres2_per_second2">1</cn>
                    </apply>
                  </apply>
                </apply>
              </apply>
            </apply>
          </lambda>
        </apply>
      </apply>

      <!-- This should be made to include random variation... -->
      <apply><eq/>
        <ci>gravity_accel</ci>
        <cn cellml:units="metres_per_second2">9.80665</cn>
      </apply>
    </math>

    <units name="metres_per_second">
      <unit units="metre"/>
      <unit units="second" exponent="-1"/>
    </units>

    <units name="metres_per_second2">
      <unit units="metre"/>
      <unit units="second" exponent="-2"/>
    </units>

    <units name="metres2_per_second2">
      <unit units="metre" exponent="2" />
      <unit units="second" exponent="-2"/>
    </units>
  </component>
</model>