Index exceeds the number of array elements (252).
3 ビュー (過去 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?
参考
カテゴリ
Help Center および File Exchange で MATLAB Compiler についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!