clear; // *** ŽžŠÔ‚Ć‹óŠÔ‚Ě•ŞŠ„ *** n = 129; // ‹óŠÔ‚Ě•ŞŠ„” dx = 1 / (n - 1); // ‹óŠÔ‚̍‚Ý• r = 4 dt = r * dx ^ 2; // ŽžŠÔ‚̍‚Ý• m = 1001; // ŽžŠÔ‚Ě•ŞŠ„” dm = 100; // ƒvƒƒbƒg‚ˇ‚é m ‚ĚŠÔŠu // *** ‰ŠúđŒ‚Ć‹ŤŠEđŒ *** // ‰ŠúđŒ u = zeros(n,m); // ‹ŤŠEđŒ u(1,1) = 0; u(n,1) = 1; // *** s—ńC *** C = sparse(toeplitz([-2, 1, zeros(1,n - 2)])); A = sparse(2 * eye(n,n) - r * C); B = sparse(2 * eye(n,n) + r * C); b = zeros(n,1); b($) = 2 * r; // *** •Î”÷•Ş•ű’öŽŽ‚ĚŒvŽZ *** for j = 1:(m - 1) // ‹ŤŠEˆČŠO‚ĚŒvŽZ u(:, j + 1) = A \ (B * u(:,j) + b); // ‹ŤŠEđŒ u(1, j + 1) = 0; u(n, j + 1) = 1; end // *** ƒOƒ‰ƒt‚Ěƒvƒƒbƒg *** plot([0:dx:1],u(:,1:dm:m));