Index exceeds the number of array elements (252).
    4 次查看(过去 30 天)
  
       显示 更早的评论
    
% Explicit Quickest scheme
clc; clear all;  
xmin = 0;             % [m]          
xmax = 50*1000;       % [m]
dx = 200;             % [m]              
tmax = 0.5*24*3600;   % [s]
u = 0.45;             % [m/s]
D=10;                 %[m2/s]
k=0.1/(24*3600);      %[1/s]            
dt = 50;             % [s]
No = (xmax - xmin)/dx;
x = xmin : dx : xmax + dx; 
%%  initial and Boundary conditions  
for i = 1:length(x)
    if  x(i)<=0
        Co(i) = 100;
       else
        Co(i) = 0;
    end
end 
C = Co;
Cp = Co;
% Analytical solution
 ns = tmax/dt; 
for n = 1 : ns
        for i = 1 : No+2  
   if x(i)<=u*tmax
        d(i) = 100;  
   else
        d(i) = 0; 
   end
end
end
% Quickest
ns = tmax/dt;
for n = 1 : ns
        for i = 3 : No+2
       F=D*dt/(dx)^2;
       g=u*dt/dx;
       gr= (C(i+1)-C(i))/dx;
       gl=(C(i)-C(i-1))/dx;
       cr=(C(i+1)-2*C(i)+C(i-1))/dx^2;
       cl=(C(i-2)-2*C(i-1)+C(i))/dx^2;
       Cp(i) = C(i)-g*((0.5*(C(i)+C(i+1))-0.5*dx*g*gr-0.166*dx^2*(1-g^2-3*F)*cr)-(0.5*(C(i-1)+C(i))-0.5*dx*g*gl-0.166*dx^2*(1-g^2-3*F)*cl))+F*((dx*gr-0.5*dx^2*g*cr)-(dx*gl-0.5*dx^2*g*cl))-k*C(i)*dt;
        end 
   C = Cp;
end
1 个评论
  AC_GBX
 2020-11-6
				Hey ummabb66, 
please use the code insert function to display your code, so it can be understood. What is you exact problem?
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


