Why does my code think I want to use the Symbolic Math Toolbox when in reality I want to solve a system of ODEs numerically?

1 visualización (últimos 30 días)
I'm using MATLAB 2016a. I have a function that is called from the code's driver function. The called function has a line to solve a system of ODEs using ode45:
global TIME
global TORQUE I %% TORQUE = [0 0 0]' and I = [1e-31 1e-31 1e-31]' initially.
%% The variables "spin", "axes" and "dt" below are passed from the driver function.
%%create one vector array that has the spin and axes
y = reshape([spin' axes],1,12); %% [spin' axes] is a 3 x 4 matrix
t0 = TIME - dt; %% Initially, TIME = dt = 5.1e-5
%% Compute initial slopes
yp(1) = (TORQUE(1) + y(2)*y(3)*(I(2)-I(3)))/I(1);
yp(2) = (TORQUE(2) + y(3)*y(1)*(I(3)-I(1)))/I(2);
yp(3) = (TORQUE(3) + y(1)*y(2)*(I(1)-I(2)))/I(3);
yp(4:6) = y(3)*y(7:9) - y(2)*y(10:12);
yp(7:9) = y(1)*y(10:12) - y(3)*y(4:6);
yp(10:12) = y(2)*y(4:6) - y(1)*y(7:9);
%% create function handle to euler, which contains ODEs
fun=@euler;
%% Set integration parameters
tmp={'RelTol' 'AbsTol' 'MinStep' 'MaxStep' 'NextStep' ...
'SafetyFactor' 'GrowthLimit' 'ShrinkLimit' 'FallBack'
1e-5 1e-8 .001*dt dt nan ...
0.9 5 0.1 'on'};
params=struct(tmp{:});
%% Call integrator
[t,y] = ode45(fun,[t0, t0 + dt],yp,params)
When I execute the code, it stops at the ode45 line and produces the following messages:
Screen Shot 2019-12-10 at 7.26.31 AM.png
Any insight into why this is happening would be appreciated.

Respuesta aceptada

Stephen23
Stephen23 el 10 de Dic. de 2019
Editada: Stephen23 el 10 de Dic. de 2019
Take a look at these two lines:
%% create function handle to euler, which contains ODEs
fun=@euler;
euler is in the symbolic toolbox:
Based on your comment you seemed to think that you were calling another function.
  1 comentario
Augusto C
Augusto C el 10 de Dic. de 2019
Editada: Augusto C el 10 de Dic. de 2019
That was it! I hadn't realized "euler" was part of the Symbolic Toolbox. Those error messages are now gone. Thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by