-
大小: 2KB文件類型: .m金幣: 1下載: 0 次發布日期: 2021-05-07
- 語言: Matlab
- 標簽: matlab程序??DuFort-Frank??
資源簡介
DuFort-Frankel格式求解橢圓-拋物型偏微分方程組,matlab程序,其中橢圓用積分公式,拋物用DuFort-Frankel格式,多多指教
代碼片段和文件信息
function?[U?x?t]=PDEParabolicClassicalExplicit(uXuTphipsi1psi2MNC)
%古典顯式格式求解拋物型偏微分方程
uX=20;M=1000;uT=100;N=200;uL=0.01;qL=0;uR=0.01*(1+atan(uX));qR=0;epsi=100;
phi=@(x)0.01*(1+atan(x));psi11=@(t)uL;psi12=@(t)uR;psi21=@(t)qL;
dx=uX/M;%x的步長
dt=uT/N;%t的步長
x=(0:M)*dx;
t=(0:N)*dt;
r=dt/dx/dx;%步長比
r1=1-2*r;
%if?r?>?1/2
%???disp(‘r?>?1/2不穩定‘)
%end
%計算初值和邊值
U=zeros(M+1N+1);
q=zeros(M+1N+1);
for?i=1:M+1
????U(i1)=phi(x(i));U(i2)=U(i1);
end
for?j=1:N+1
????U(1j)=psi11(t(j));U(M+1j)=psi12(t(j));
????q(1j)=psi21(t(j));q(M+1j)=0;
end
%用公式q=-1/2\int_0^{inf}(e^{|x-y|}-e^{-|x+y|})u_y(y)dy解q(i1)
for?i=1:M
????for?k=2:M?????
????????Q=q(i1);
????????q(i1)=Q-1/4*(exp(-abs(i*dx-k*dx))-exp(-abs(i*dx+k*dx)))*(U(k+1
評論
共有 條評論