Hello,

Le 27/06/2015 23:20, Samuel Enibe a écrit :
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.
.
In normal mode (not for "root" or "discrete" ones), the second and third
output arguments require to provide them also as (last) input arguments:
[y, w, iw] = ode([type,] y0, t0, t [,rtol [,atol]], f [,jac] [,w, iw])

This "iterated" mode is not really documented. It lacks of examples.
Anyway, it does not look to be what you want to do.

In the case that you've posted, the need to define (and provide) u() is unclear. Indeed, omega and t are available in linear(), so sin(omega*) can be computed in it
instead of an external u().
By the way, even keeping u() does not require to provide it in the list:
linear() sees it anyway.
Finally, A is not modified while ode() is run. Nor dd=cos(A). Therefore, cos(A) can be
computed out of ode(), without being among output arguments.

Hope this helps
Samuel Gougeon


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))
///////////////////////////////////////////////////////////


_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to