我一直在試圖解決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是否有問題。 – 2014-10-01 04:06:39
我不同意解決方案不依賴於源項 - 我將源項從u *(1-u)更改爲1e3 * u *(1-u),並得到非常不同的圖。 – KevinMc 2014-10-01 04:12:14
謝謝凱文。 – 2014-10-02 13:26:01