MATLAB: What’s wrong with the folow function

differential equationserroreuler's method

I made a function in order to calculate a system of differential equations. I'm using Euler's method.
i=0;
C= 1; % Reagent's initial concentration
T=15; % Initial temperature
dC= -exp(-10/T+273)*C;
dT= 1000*exp(-10/(T+273))*C-10*(T-20);
h = 4;
ti = 0; % time=0
tf = 8; % end time of the simulation
niteracoes = round((tf-ti)/h); % number of steps
vC= zeros (niteracoes);
vT= zeros (niteracoes);
for i = 1:niteracoes
C(i+1) = C(i) - h*dC(i,i); % Euler's method

T(i+1) = T(i) - h*dT(i,i); % Euler's method
ti = ti + h; % Increment time
vC(i)=C(i+1);
disp(vC)
vT(i)=T(i+1);
disp(vT)
i=i+1;
end
Error in euler (line 16) C(i+1) = C(i) – h*dC(i,i);

Best Answer

You start dC as a single element, and you do not expand it in your "for" loop, so it does not have two elements by the time "i" becomes 2.
Related Question