close all
clear,clc
c=1
xspan=[0 1]
tspan=[0 0.2]
ngrid=[100 10]
f=@(x) 4.*x-4*x.^2
g1=@(t) 0.*t
g2=@(t) 0.*t
n=ngrid(1)
m=ngrid(2)
h=range(xspan)/(m-1)
x=linspace(xspan(1),xspan(2),m)
k=range(tspan)/(n-1)
t=linspace(tspan(1),tspan(2),n)
r=c^2*k/h^2
s=1-2*r
if r>0.5
error%('为了保证算法的收敛,请增大步长 h或减小步长k!')
U=zeros(ngrid)
else
% 边界条件
U(:,1)=g1(t)
U(:,m)=g2(t)
% 初值条件
U(1,:)=f(x)
% 差分计算
for j=2:n
for i=2:m-1
U(j,i)=s*U(j-1,i)+r*(U(j-1,i-1)+U(j-1,i+1))
end
end
end
[x1,t1]=meshgrid(x,t)
mesh(x1,t1,U)
xlabel('x')
ylabel('t')
zlabel('T')
1、首先要打开MATLAB R2016a软件,如下图所示。
2、然后在打开的页面中,选择默认模式(Generic Scalar)-标量模式,具体如图。
3、建立几何模型,绘制两个椭圆,再定义边界条件,具体如图所示。
4、再定义PDE类型和系数,如下图所示。
5、并将其三角形网格化,具体如图所示。
6、最后可以对PDE图形进行求解了,如图所示就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)