MATLAB: ODE45 solver, with changing initial conditions

helpinitial valuesode45

I'm trying to numerically find the transition curves for a ODE, my code is supposed to do this by finding the solution to the ode, determining at which point the solution "blows up" and then storing the values for v and epsilon (epp) within an array.
However when running my code I keep on getting the following errors:
Unrecognized function or variable 'ODEvcnt'.
Error in ode2>@(t,y)dtheta(t,y,ODEvcnt,ODEeppcnt) (line 33)
sol = ode45(@(t,y) dtheta(t,y,ODEvcnt,ODEeppcnt),tspan,y0);
Error in odearguments (line 90)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in ode2 (line 33)
sol = ode45(@(t,y) dtheta(t,y,ODEvcnt,ODEeppcnt),tspan,y0);
I have attatched my code bellow:
Any help or advise would be much appreciated, thank you.

Best Answer

This runs without error. You need to determine if it produces the desired result:
syms y x epp t v
%cases
vM = 1; %Max's case
vMM =4; %Miu-Miu's case
%initial condition
initialY = pi/4;
%define expansions
v1 = 0.5:0.001:1.5; %max v
v2 = 3.5:0.001:4.5; % Miu Miu v
tspan = linspace(0,0.01,100); %time scale
epp = 0:0.0001:1; %epsilon possibilities
%storage variables
CritEpp = zeros(1000,2); % critical epsilon array
A = zeros(1,1000); % array to store applitudes
% sol=[t,y]; % 'sol' Is Not Defined At This Point
%definitiion od dtheta
for vcnt = 1:1:1000
for eppcnt = 1:1:10000
y0=[0,initialY,vcnt,eppcnt];
ODEvcnt = vcnt;
ODEeppcnt = eppcnt;
sol = ode45(@(t,y) dtheta(t,y,ODEvcnt,ODEeppcnt),tspan,y0);
A = max([sol.x.' sol.y.'],[],2);
end
if A(vcnt) > epp(eppcnt)
CritEpp(vcnt,:) = [v1(vcnt) epp(eppcnt)];
else
continue;
end
end
function dy = dtheta(t,y,ODEvcnt,ODEeppcnt)
vArr = 0.5:0.001:1.5;
eppArr = 0:0.0001:1;
dy = -(vArr(ODEvcnt))*y - (eppArr(ODEeppcnt))*cos(2*t);
end
These were not defined previously, anywhere in your code:
ODEvcnt = vcnt;
ODEeppcnt = eppcnt;
I took a guess as to what they should be, based on how you use them in your code. Make the appropriate corrections if I guessed wrong.
.