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?
2 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!