<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hello,<br>
      <br>
      Le 27/06/2015 23:20, Samuel Enibe a écrit :<br>
    </div>
    <blockquote
cite="mid:CAJKcLoWL9+s+w+FKLPcABFq53OZjm91Lsbf4ktY+yzzztgX9eQ@mail.gmail.com"
      type="cite">
      <pre wrap="">I would like to use the SCILAB ode function with the option of second
or more output arguments activated. In the example shown below (also
attached), I would like to pass the variable dd in line 3 of the
function linear.

When the ode function is called without the second output argument as
in line 12, it works, but when the second output argument is included
as in line 13, it does not work.
.</pre>
    </blockquote>
    In normal mode (not for "root" or "discrete" ones), the second and
    third<br>
    output arguments require to provide them also as (last) input
    arguments:<br>
    <tt>[y, w, iw] = ode([type,] y0, t0, t [,rtol [,atol]], f [,jac]
      [,w, iw])</tt><br>
    <br>
    This "iterated" mode is not really documented. It lacks of examples.
    <br>
    Anyway, it does not look to be what you want to do.<br>
    <br>
    In the case that you've posted, the need to define (and provide)
    u()  is unclear. <br>
    Indeed, omega and t are available in linear(), so sin(omega*) can be
    computed in it <br>
    instead of an external u().<br>
    By the way, even keeping u() does not require to provide it in the
    list: <br>
    linear() sees it anyway.<br>
    Finally, A is not modified while ode() is run. Nor dd=cos(A).
    Therefore, cos(A) can be<br>
    computed out of ode(), without being among output arguments.<br>
    <br>
    Hope this helps<br>
    Samuel Gougeon<br>
    <br>
    <blockquote
cite="mid:CAJKcLoWL9+s+w+FKLPcABFq53OZjm91Lsbf4ktY+yzzztgX9eQ@mail.gmail.com"
      type="cite">
      <pre wrap="">

Any help in correcting this will be greatly appreciated.

///////////////////////////////////////////////////////////////////
function [xdot, dd] =linear(t, x, A, u, B, omega)
    xdot=A*x+B*u(t,omega);
    dd = cos(A);
endfunction
function ut=u(t, omega)
    ut=sin(omega*t)
endfunction
A=[1 1;0 2];
B=[1;1];
omega=5;
y0=[1;0];
t0=0;
t=[0.1,0.2,0.5,1];
[y] = ode(y0,t0,t,list(linear,A,u,B,omega))
[y1, dd] = ode(y0,t0,t,list(linear,A,u,B,omega))
///////////////////////////////////////////////////////////
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>