MathLab> octave Octave, version 1.1.1. Copyright (C) 1992, 1993, 1994, 1995 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'.
octave:1> # octave:1> # Comment: Define ODE RHS: octave:1> function xdot = f (x,t) > xdot=-exp(-t)*x^2; > endfunction
octave:2> # octave:2> # For help see prior Octave HTML page link, or use: octave:2> # "help -i differential (Return); (Space)" for the ODE page. octave:2> # Numerical Solution on (0,5): octave:2> # octave:2> x=lsode("f",2,(t=linspace(0,5,50)')); octave:3> # octave:3> # Comment: Here 50 points are used the inteval [0,5]. octave:3> # Assuming no access to full screen, we get an ascii plot: octave:3> set term dumb; octave:4> plot(t,x) 2 *+-----+------+------+------+------+------+------+------+------+-----++ * + + + + + + + line 1 ****** + * | 1.8 +* ++ |* | |* | 1.6 ++* ++ | * | | * | 1.4 ++ * ++ | ** | 1.2 ++ * ++ | * | | ** | 1 ++ ** ++ | ** | | **** | 0.8 ++ ****** ++ | ************* | + + + + + +*********************************** 0.6 ++-----+------+------+------+------+------+------+------+------+-----++ 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 octave:5> # For a nicer, postscript version of the plot ("set term postscript" before "plot"):
octave:6> # octave:6> # Comment: Define ODE RHSs: octave:6> function xdot = f (x,t) > r = 0.25; > k = 1.4; > a = 1.5; > b = 0.16; > c = 0.9; > d = 0.8; > xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1)); > xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2); > endfunction octave:7> # octave:7> # Using LSODE again, with initial conditions x(1)=1 and x(2)=2 on [0,50] with 200 points: octave:7> # octave:7> x = lsode ("f", [1; 2], (t = linspace (0, 50, 200)')); octave:7> # octave:8> set term dumb; octave:9> plot(t,x); 2.5 ++-----+------+------+------+------+------+------+------+------+-----++ + + + + + + + + line 1 ****** + | line 2 ###### | | | 2 #+ ++ |# | |# | |# | 1.5 +# ++ |# ********* | | # ****** *** | | # **** ** | 1 *+# *** ** ++ * # *** ** | * # *** ** | * # *** ** | 0.5 *+ ## *** *** ++ |* # *** ***** |* ## **** ###### | +* ### +******** + + + + + #### + #### 0 ++**************##########################################-----+-----++ 0 5 10 15 20 25 30 35 40 45 50 octave:10> # For a nicer, postscript version of the plot: octave:10> set term postscript; octave:11> plot(t,x);
octave:12> quit MathLab>
Email Comments or Questions to hanson@math.uic.edu