?? 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 + -