How to solve coupled partial differential equation with an integral term?

2 次查看(过去 30 天)
I want to solve the below given PDE system in MATLAB,
I have written a code but I am not able to solve integro differential equation in this system.
%% discretizing a
dx=0.25;
x=0:dx:20;
m=length(x);
% discretizing time
dt=0.01;
%Tp=(10)^(-1);
% Tf=input('enter the max time');
Tf=20;
t=0:dt:Tf;
n=length(t);
%% parameter values
a3=0; a4=1000; rho = 0.2;
c=1; alpha = 0.40; mu = 0.30; k=0.5; lambda=50;
%% size of the matrix
A=zeros(m,n);
B=zeros(m,n);
S=zeros(1,n);
R=zeros(1,n);
sum=zeros(1,n);
%% initial data
S(1) = a4; % S_s
R(1) = a3; % R_s
%% defining functions
for i=1:m
a1(i) = 0; %l_s(a)
a2(i) = 0; %i_s(a)
p(i) = 1700*(1-exp(-x(i))); %p(a)
% p(i) = i; %p(a)
delta1(i) = 0.01; % delta_l(a)
delta2(i) = 0.4; % delta_i(a)
end
%% initial conditions
for i=1:m
A(i,1) = a1(i);
B(i,1) = a2(i);
sum(1)=trapz(p(i).* B(i,1))*dx;
end
% %trapz(p(i)* B(:,i))*dx%
%% discretizing age and time derivative
for j=1:n-1
for i=2:m-1
A(i,j+1)=A(i,j)+dt*(-(A(i+1,j) - A(i-1,j))/(2*dx) - alpha*A(i,j)-delta1(i)*A(i,j));
B(i,j+1)=B(i,j)+dt*(-(B(i+1,j) - B(i-1,j))/(2*dx) +alpha*A(i,j)-delta2(i)*B(i,j));
sum(j+1)=trapz(p(i).* B(i,j))*dx;
S(j+1) = S(j) + dt*(lambda - k*R(j).*S(j) - mu*S(j));
R(j+1) = R(j)+ dt*sum(j+1) - dt*c*R(j);
end
% boundary conditions
A(1,j+1)= rho*k*R(j)*S(j);
B(1,j+1)= (1-rho)*k*R(j)*S(j);
end
plot(t,S,'b-', t,R,'r-');
I have plotted the solution but the plot of R(t) is not correct, I feel that I am not able to solve integro differential correctly. Please help me to solve integro differential equation by some method.
  4 个评论
Bill Greene
Bill Greene 2020-11-16
I am confused by your boundary condition on l. You show
but it looks like in your code
Please clarify this.

请先登录,再进行评论。

回答(1 个)

Hewa selman
Hewa selman 2021-12-23
hello it does not work. could you please write the last version of your code again
with regards

Community Treasure Hunt

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

Start Hunting!

Translated by