File: ode_root.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (64 lines) | stat: -rw-r--r-- 2,455 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
ode_root          Scilab Group          Scilab Function            ode_root
NAME
   ode_root - ordinary differential equation solver with root finding
  
CALLING SEQUENCE
 y,rd[,w,iw]=ode("root",y0,t0,t [,rtol  [,atol]],f  [,jac],ng,g [,w,iw])
PARAMETERS
 y0         : real vector or matrix (initial conditions).
            
 t0         : real scalar (initial time).
            
 t          : real vector (times at which the solution is computed).
            
 f          : external i.e. function or character string or list.
            
 rtol,atol  : real constants or real vectors of the same size as y.
            
 jac        : external i.e. function or character string or list.
            
 w,iw       : real vectors.
            
 ng         : integer.
            
 g          : external i.e. function or character string or list.
            
DESCRIPTION
   With this syntax (first argument equal to "root") ode computes the
  solution of the differential equation dy/dt=f(t,y) until the state y(t)
  crosses the surface g(t,y)=0.  g should give the equation of the surface.
  It is an external i.e. a function with specified syntax, or the name of a
  Fortran subroutine or a C function  (character string) with specified
  calling sequence or a list.
  
   If g is a function the syntax should be as follows:
  
 z=g(t,y)
   where t is a real scalar (time)  and y a real vector (state). It returns
  a vector of size ng which corresponds to  the ng constraints.  If g is a
  character string it refers to the name of a Fortran subroutine or a C
  function, with the following calling sequence:  g(n,t,y,ng,gout) where ng
  is the number of constraints and  gout is the value of g (output of the
  program). If g is a list the same conventions as for f apply (see ode
  help).  Ouput rd is a 1 x k vector. The first entry contains the stopping
  time. Other entries indicate which components of g have changed sign. k
  larger than 2 indicates that more than one surface ((k-1) surfaces) have
  been simultaneously traversed.  Other arguments and other options are the
  same as for ode, see the ode help.
  
EXAMPLE
 // Integration of the differential equation
 // dy/dt=y , y(0)=1, and finds the minimum time t such that y(t)=2
 deff("[ydot]=f(t,y)","ydot=y")
 deff("[z]=g(t,y)","z=y-2")
 y0=1;ng=1;
 [y,rd]=ode("roots",y0,0,2,f,ng,g)
 
 
 deff("[z]=g(t,y)","z=y-[2;2;33]")
 [y,rd]=ode("roots",1,0,2,f,3,g)
 
 
SEE ALSO
   dasrt, ode