一、数值求解如下正方形域上的 Poisson 方程边值问题 { −(ᵱ2ᵆᵱᵆ2 + ᵱ2ᵆᵱᵆ2) = f(x, y)= 2,0 < x, y < 1ᵆ(0, ᵆ)= ᵆ(1, ᵆ)= ᵆ(1 − ᵆ), 0 ≤ ᵆ ≤ 1ᵆ(0,ᵆ) = ᵆ(ᵆ, 1)= 0, 0≤ ᵆ ≤ 1 用椭圆型第一边值问题的五点差分格式得到线性方程组为 4ᵆᵅ,ᵅ − ᵆᵅ−1,ᵅ−ᵆᵅ+1,ᵅ − ᵆᵅ,ᵅ−1 − ᵆᵅ,ᵅ+1 = ℎ2ᵅᵅᵅ 1≤ ᵅ,ᵅ ≤ ᵄᵆ0,ᵅ = ᵅℎ(1 − ᵅℎ),ᵆᵄ+1,ᵅ = ᵅℎ(1− ᵅℎ) ᵆᵅ,0 = 0, ᵆᵅ,ᵄ+1 = 0 0≤ ᵅ,ᵅ ≤ ᵄ + 1 写成矩阵形式Au =f
其中[] A =[ ᵃ11−ᵃ−ᵃᵃ22⋱⋱⋱−ᵃ−ᵃᵃᵄᵄ ] u = [ᵆ1ᵆ2⋮ᵆᵄ] f = [ᵄ1ᵄ2⋮ᵄᵄ] A = [4−1−14⋱⋱⋱−1−14] ᵆ1 = (u1,1, u2,1,⋯, u N,1)ᵄ ᵆ2 = (u1,2,u2,2,⋯, u N,2)ᵄ ⋯⋯ ᵆᵄ = (u1,ᵄ,u2,N,⋯, u N,N)ᵄ ᵄ1 = ℎ2(ᵅ1,1,ᵅ2,1, ⋯ᵅᵄ ,1)ᵄ + ᵆ0 + ᵆ2 ᵄ2 = ℎ2(ᵅ1,2,ᵅ2,2,⋯ ᵅᵄ,2)ᵄ + ᵆ1 + ᵆ3 ⋯⋯ ᵄᵄ = ℎ2(ᵅ1,ᵄ, ᵅ2,ᵄ, ⋯ᵅᵄ,ᵄ )ᵄ + ᵆᵄ−1 + ᵆᵄ+1 采用Jacobi、块 Jacobi、SOR、块 SOR、Gauss-Seidal 和块 Gauss-Seidal 六种不同迭代法求解 Au=f
1、用 Jacobi 迭代法求解线性方程组 Au =f
Jacobi 迭代法格式: uᵅ,ᵅ(ᵅ+1)= (uᵅ−1,ᵅ(ᵅ)+ uᵅ+1,ᵅ(ᵅ)+ uᵅ,ᵅ−1(ᵅ)+ uᵅ,ᵅ+1(ᵅ)+ ℎ2ᵅᵅᵅ)/4 function [u,k,time]