Previous Up Next

23.4.2  Approximating solutions of the system v′=f(t,v)

This section covers using odesolve to solve first order systems of differential equations; using it to solve a single first order differential equation was discussed last section.

The odesolve can be used to solve a system of the form

  x′=f(t,x),

where x=[x1,…,xn] is a list of unknown functions and f is a function of n+1 variables with an initial condition.

odesolve can take its arguments in various ways. Letting t be the independent variable and x=[x1,…,xn] be a vector of dependent variables, t0 and x0 be the initial values, t1 the place where you want the value of x, f be the function in the differential equation, f(t,x) be a list of expressions which determines the function f (see Section 8.2.1 for the difference between a function and an expression).

Examples

Solve the system of equations x′(t)=−y(t) and y′(t)=x(t):

odesolve([-y,x],t=0..pi,[x,y],[0,1])
     
⎡
⎣
−1.79045146764×10−15,−1⎤
⎦
          

Solve the system of equations x′(t)=−y(t) and y′(t)=x(t):

odesolve(0..pi,(t,v)->[-v[1],v[0]],[0,1])

or:

f(t,v):=[-v[1],v[0]]:; odesolve(0..pi,f,[0,1])
     
⎡
⎣
−1.79045146764×10−15,−1⎤
⎦
          
odesolve(0..pi/4,f,[0,1],curve)
     
⎡
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎣
    0.0
⎡
⎣
0.0,1.0⎤
⎦
    0.0165441856471
⎡
⎣
−0.0165434309391,0.999863148082⎤
⎦
    0.0325491321983
⎡
⎣
−0.0325433851614,0.999470323763⎤
⎦
    0.0486049854945
⎡
⎣
−0.0485858499906,0.998819010222⎤
⎦
    ⋮⋮
    0.747336757246
⎡
⎣
−0.679687679865,0.733501641333⎤
⎦
    0.76509544295
⎡
⎣
−0.692605846268,0.721316256377⎤
⎦
    0.78286231703
⎡
⎣
−0.705311395415,0.708897619897⎤
⎦
    0.785398163397
⎡
⎣
−0.707106781186,0.707106781186⎤
⎦
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎦
          

Previous Up Next