Я пытаюсь решить безразмерное уравнение Фишера Колмагорова в Matlab. Я получаю график, который не выглядит так, как должен. Кроме того, я получаю уравнение независимо от значения s
(исходный термин в решателе pdepe
). Независимо от того, какое значение s
Я помещаю в график, остается без изменений.Решение для Fisher Kolmagorov Частичное дифференциальное уравнение
function FK
m = 0;
x = linspace(0,1,100);
t = linspace(0,1,100);
u = pdepe(m,@FKpde,@FKic,@FKbc,x,t);
[X,T] = meshgrid(x,t);
%ANALYTICAL SOLUTION
% a=(sqrt(2))-1;
% q=2;
% s=2/q;
% b= q /((2*(q+2))^0.5);
% c= (q+4)/((2*(q+2))^0.5);
% zeta= X-c*T;
%y = 1/((1+(a*(exp(b*zeta))))^s);
%r=(y(:,:)-u(:,:))./y(:,:); % relative error in numerical and analytical value
figure;
plot(x,u(10,:),'o',x,u(40,:),'o',x,u(60,:),'o',x,u(end,:),'o')
title('Numerical Solutions at different times');
legend('tn=1','tn=5','tn=30','tn=10','ta=20','ta=600','ta=800','ta=1000',0);
xlabel('Distance x');
ylabel('u(x,t)');
% --------------------------------------------------------------------------
function [c,f,s] = FKpde(x,t,u,DuDx)
c = 1;
f = DuDx;
s =u*(1-u);
% --------------------------------------------------------------------------
function u0 = FKic(x)
u0 = 10^(-4);
% --------------------------------------------------------------------------
function [pl,ql,pr,qr] = FKbc(xl,ul,xr,ur,t)
pl = ul-1;
ql = 0;
pr = ur;
qr = 0;
Я знаю, что аналитическое решение ошибочно. Я прокомментировал это. (Я знал, что я должен был удалить его, извините!) График pdepe выглядит точно так же, независимо от того, какой исходный термин вы ему дадите. То почему я интересовал если что-то было неправильно с pdepe. –
Я не согласен с тем, что решение не зависит от исходного члена - я изменил исходный член от u * (1-u) до 1e3 * u * (1-u) и получил очень разные графики. – KevinMc
Спасибо, Кевин. –