📄 fdm.m
字号:
function [n, v1] = FDM(a, h)%h为步长
px = 2 * a / h + 1; %长边上的点数
py = a / h + 1; %短边上的点数
v1 = ones(py, px); %设置一10*20的矩阵
v1(1, :) = ones(1, px) * 10; %初始化上边界
v1(py, :) = zeros(1, px); %初始化下边界
for i = 1 : py %初始化左右边界
v1(i, 1) = 0;
v1(i, px) = 0;
end
v2 = v1;
maxt = 1;
t = 0;
n = 0;
while(maxt > 1e-6)
maxt = 0;
n = n + 1;
for i = 2 : py - 1
for j = 2 : px - 1
v2(i, j) = 0.25 * (v1(i, j + 1) + v1(i + 1, j) + v1(i - 1, j) + v1(i, j - 1)); %计算边界内的值
t = abs(v2(i, j) - v1(i, j));
if(t > maxt) %误差判断
maxt = t;
end
end
end
v1 = v2;
end
axis([0, 20, 0, 10, 0, 10]);
contour(v1, 30);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -