{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#First define the function f(t,u) in the ODE u' = f(t,u). Here u is treated\n", "#as a vector (u[0],u[1],...) so for a scalar ODE use u[0].\n", "def f(t,u):\n", " return [t+u[0]]" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "T = ode_solver() #Set up data structure \"T\" for handling solution process" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "T.function = f #Define the right side of the ODE" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "T.ode_solve(y_0=[1],t_span=[0,1],num_points=10) #Call the solver with initial condition u(0)=1 (must label \"y0\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "usol = T.interpolate_solution() #Set up a function \"usol\" to interpolate the solution" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(usol,0,1).show() #Plot the solution" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.7974425413610653" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "usol(0.5) #Evaluate the solution at a certain time" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.2", "language": "sage", "name": "sagemath" }, "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.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }