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)
Mostrar comentarios más antiguos
Augusto C
el 10 de Dic. de 2019
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:
Any insight into why this is happening would be appreciated.
0 comentarios
Respuesta aceptada
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!