⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fdm.m

📁 利用matlab实现电磁场数值方法里面的有限差分与有限元法
💻 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 + -