function u = heat2d(m) % 熱伝導シミュレーション(2次元、定常) % m: 分割数 d = 5; % 板の縦横の長さ(d * d) f = 20; % 発熱量 h = d/(m - 1); % 分割の幅 n = m^2; % 節点数 A = zeros(n); b = zeros(n,1); % 初期化 for jj=1:m for ii=1:m i = ii + (jj - 1)*m; % 節点番号 if (ii == 1) || (ii == m) || (jj == 1) || (jj == m) % 境界条件 u(i) = 0 A(i,i) = 1; b(i) = 0; else % 板の内部 4*u(i)-u(i-1)-u(i+1)-u(i-m)-u(i+m)=h^2*f A(i,i) = 4; A(i,i-1) = -1; A(i,i+1) = -1; A(i,i-m) = -1; A(i,i+m) = -1; b(i) = h^2*f; end end end u = A\b; % Ax=bを解く(Macの場合、\はoption+\)