- You have M-1 unknowns y, but you try to provide M time derivatives dy.
- You reference y(M) and y(M+1) in your loop which do not exist.
- You have to prescribe a boundary condition at x=L. Open boundaries are not allowed for second-order PDEs.
diffusion with difference finite metod
조회 수: 2 (최근 30일)
이전 댓글 표시
Good morning.
I do not understand the error in this script:
param.Cafeed=0.014158;% concentration [mol/dm3]
param.v=0.1;
param.L=1.1245; % led leight [dm]
param.D=0.001;
nx = 100; % to define the dimension of the initial condition
x = linspace(0,param.L,nx);
h = x(2)-x(1);
y0 = zeros(nx,1);
y0(1) = param.Cafeed;% Boundary condition
tspan = linspace(0,30,nx);
[t,y] = ode15s(@(t,y)fun(t,y,param,h),tspan,y0);%To solve the time dependence
function dy=fun(t,y,param,h)
M = length(y)+1;
dy = zeros(M+1,1);
dy(1)= 0;
for i=2:M
dy(i) = -param.v*(y(i)-y(i-1))/h+(param.D/h^2*(-2*y(i)+y(i-1)+y(i+1)));
end
thank you
댓글 수: 1
Torsten
2019년 2월 6일
편집: Torsten
2019년 2월 6일
Best wishes
Torsten.
답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Eigenvalue Problems에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!