Filter löschen
Filter löschen

Attempted to access C2(3); index out of bounds because numel(C2)=2.

1 Ansicht (letzte 30 Tage)
Shashi
Shashi am 18 Jun. 2013
Dear Sir
I am trying to solve this code for the last few days but getting different kinds of errors. Now when I run this code I got error message 'Attempted to access C2(3); index out of bounds because numel(C2)=2.'. Please help me for solving this problem.
global Vl asl Vm Da K h Ksl n V v
clc
clear all
n = 100;
Lt = 4; % Length(cm)
rt = 1; % radius(cm)
Vl = 3.14*rt^2*Lt; % Volume(cm3)
asl = 880; % Specific surface area(cm2/g)
Vm = 1;
D = 7.2*10^-5;
por = 0.3;
Da =D*por^0.5;
V=5;
v=20;
Ea = 61000; % Activation Energy(J/mol)
R = 8.314; % Universal gas constant( J/mol/K)
T = 303.15;
K = 0.19*exp(-Ea/(R*T)); %%rate constant
h = Lt/(n-1); %%grid spacing or distance
Ksl = 10^-5; %%coeff.(cm/s)
C2=[0;0.3*ones(n,1);0.3];
C1=[0;10^-4*ones(n,1);10^-4];
C=[C1;C2];
[t,C1]=ode45(@tube_fun_ode_f,[0 10^5],[10^-4,0.3]);
function dC = tube_fun_ode_f(t,C)
global h K Da Ksl Vl asl Vm n v
C1=[0;10^-4*ones(n,1);10^-4];
C2=[0;0.3*ones(n,1);0.3];
C=[C1;C2];
for i=1
dC(1)=[10^-5; Vm*(Ksl*K*asl/(Ksl*asl-Vl*K))*C1(i)];
end
for i=2:length(C)-1
dC(i)=[(C2(i+1)*Da/h^2-C2(i)*v(i)/2*h)*C1(i+1)-(C2(i+1)*Da/h^2+C2(i)*Da/h^2)*C1(i)+(C2(i)*Da/h^2+C2(i)*v(i)/2*h)*C1(i-1)+C2(i)*K*C1(i); Vm*(Ksl*K*asl/(Ksl*asl-Vl*K))*C1(i)];
end
for i=length(C)
dC(end)=[dC(end-1); Vm*(Ksl*K*asl/(Ksl*asl-Vl*K))*C1(i)];
end
here is my original problem which I want to solve after discretization.
dC1/dt=d/dx(De*C2*(dC1/dx))-V*(dC1/dx)+(Ksl*asl/(Ksl*asl-Vl*K))*C1*C2
dC2/dt=Vm*( Ksl*asl/(Ksl*asl-Vl*K))*C1
t=0 C1=0 all x
t>0 C1=0 at x=0
T>0 dC1/dx=0 at x=L
at t=0 C2=0
--
Shashikant

Antworten (1)

David Sanchez
David Sanchez am 18 Jun. 2013
I think you problem ( at least one of them ) lies on:
dC(1)=[10^-5; Vm*(Ksl*K*asl/(Ksl*asl-Vl*K))*C1(i)];
inside your tube_fun_ode_f function. Why do you use a for_loop if you only have one value ( for i=1 ). You are assigning a 2D array to dC(1). What's the point of your semicolon ( ; )?

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by