저는 Matlab에서 비 차원 Fisher Kolmagorov 방정식을 풀려고 노력해 왔습니다. 나는 그것을 보지 않는 그래프를 얻고있다. 또한, 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
감사합니다. 케빈. –