{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Constant model\n", "\n", "This model returns a value that doesn't change over time, and is mainly useful for testing purposes.\n", "\n", "\n", "The returned value is constant in time, but varies linearly with the given parameters:\n", "It returns a vector where at each time point $\\boldsymbol{f}(t) = (a_1, 2 a_2, 3 a_3, ... , k a_k)$ for the user-determined parameter vector $(a_1, a_2, a_3, ... , a_k)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Single-output example\n", "\n", "For a single output, the model takes 1 parameter:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 1\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from __future__ import print_function\n", "import pints\n", "import pints.toy as toy\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Load a forward model\n", "model = toy.ConstantModel(1)\n", "\n", "# The number of parameters equals the number of outputs\n", "print(model.n_parameters(), model.n_outputs())\n", "\n", "# Create some toy data\n", "real_parameters = [1]\n", "times = np.linspace(0, 1000, 1000)\n", "values = model.simulate([2], times)\n", "\n", "# Plot\n", "plt.plot(times, values, label = 'f(t) = 2')\n", "plt.xlabel('Time')\n", "plt.ylabel('Values')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multi-output example\n", "\n", "We can do the same with multiple outputs" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3 3\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Load a forward model\n", "model = toy.ConstantModel(3)\n", "\n", "# The number of parameters equals the number of outputs\n", "print(model.n_parameters(), model.n_outputs())\n", "\n", "# Create some toy data\n", "real_parameters = [1]\n", "times = np.linspace(0, 1000, 1000)\n", "values = model.simulate([2, -1, 4], times)\n", "\n", "# Plot\n", "plt.plot(times, values[:, 0], label = 'f_1(t) = 1 * 2')\n", "plt.plot(times, values[:, 1], label = 'f_2(t) = 2 * -1')\n", "plt.plot(times, values[:, 2], label = 'f_3(t) = 3 * 4')\n", "plt.xlabel('Time')\n", "plt.ylabel('Values')\n", "plt.legend()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }