2014-09-30 4 views
0

저는 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; 

답변

0

더 나은 서식 지정을 원할 경우 댓글을 달아주세요. 그래프가 보이지 않는다고 말하는 숫자 답과의 비교를 위해 사용한다고 가정하는 분석 솔루션은 초기 조건이나 pdepe를 먹이는 경계 조건을 고려하지 않는 것으로 보이므로 시작할 것입니다. 이 uy

처럼 당신이 설정하는 초기 및 경계 조건을 보이지 않는 이유를 알아 내려고하면 다음과 같습니다

u(0, t) = 1 
u(1, t) = 0 
u(x, 0) = 1e-4 

따로 설정 경계 및 초기 조건, 분쟁의 분석 솔루션 당신 있음 코드에 제안이있다

u(0, t) = 1/((1+exp(-b*ct))) 
u(1, t) = 1/((1+exp(b*(1-ct))) 
u(x, 0) = 1/((1+exp(b*x)) 

따라서 수치 적 및 분석적 솔루션이 달라야하고 IC/BC 설정으로 인한 차이가있을 것으로 예상됩니다. 나는 pdepe이 아마 당신이 그것을주는 방정식을 풀고 있다고 의심한다.

+0

저는 분석 솔루션이 잘못되었다는 것을 알고 있습니다. 나는 그것을 주석했다. (필자는 그것을 제거해야한다는 것을 알았습니다, 죄송합니다!) pdepe 그래프는 소스 용어가 무엇이든 정확하게 똑같습니다. 그게 왜 내가 pdepe에 문제가 있는지 궁금 해서요. –

+0

나는 그 해법이 근원 용어에 의존하지 않는다는 것에 동의하지 않는다. 나는 소스 용어를 u * (1-u)에서 1e3 * u * (1-u)로 바꿨고 매우 다른 그래프를 얻었다. – KevinMc

+0

감사합니다. 케빈. –

0

길이 및 시간 척도를 늘리면 원하는 답변을 얻을 수 있습니다. 문제는 다른 시간에 해결하고 파도의 전조를 보았다. 작은 길이에 대해서는 그 파도의 일부만 볼 수있었습니다.

관련 문제