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);

 채택된 답변

Walter Roberson
Walter Roberson 2013년 12월 21일

0 개 추천

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.

댓글 수: 2

Mariana
Mariana 2013년 12월 21일
So, what I have to do?
Image Analyst
Image Analyst 2013년 12월 21일
Perhaps you could answer the question I asked in my Answer "What are you thinking that the two indexes of dC should correspond to?"

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2013년 12월 21일

0 개 추천

When you first get to this line:
C(i+1) = C(i) - h*dC(i,i);
dC is just a single number - it's not a 2D array. What are you thinking that the two indexes of dC should correspond to?

카테고리

질문:

2013년 12월 21일

편집:

2013년 12월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by