雅可比法在数值线性代数中,雅可比法(Jacobi Method)是一种解对角元素几乎都是各行和各列的绝对值最大的值的线性方程组的算法。求解出每个对角元素并插入近似值。不断迭代直至收敛[1]。这个算法是雅可比矩阵的精简版。方法的名字来源于德国数学家卡尔·雅可比。 描述给定一个n×n的线性方程组 其中: A 可以分解成对角部分D和剩余部分R: 线性方程组可以重写为: 雅可比法是一种迭代方法。在每一次迭代中,上一次算出的x被用在右侧,用来算出左侧的新的x。这个过程可以如下表示:
注意计算 xi(k+1)需要x(k)中除了自己之外的每个元素。 不像高斯-赛德尔迭代,我们不能用 xi(k+1)覆盖xi(k),因为在接下来的计算中还要用到这些值。这是雅可比和高斯-塞德尔方法最显著的差别,也是为什么前者可以用并行算法而后者不能的原因。最小需要的存储空间是两个长度为n的向量。 算法选择一个初始猜想值
收敛标准的收敛情况是当迭代矩阵的谱半径 保证收敛的条件是矩阵A为严格或不可约地对角占优矩阵。严格的行对角占优矩阵指对于每一行,对角线上的元素之绝对值大于其余元素绝对值的和,即 有时即使不满足此条件,雅可比法仍可收敛。 举例一个形如 的线性方程,估计初始: 我们用上文描述的方程来估计。首先,将等式写为以方便计算,其中和。注意 中的 和是的严格 递增和递减部分。变成如下数值: 令 as 解出C为: 用计算出来的T和C,我们估计为 继续迭代得: 这个过程一直重复直到收敛(直到足够小)。这个例子在25次迭代之后的解是 一個用Fortran解的例子subroutine solve(A,b,x,x0,n)
implicit real*8(a-z)
integer::n,imax=200
integer::i,j,k
real*8::tol=1d-15
real*8::A(n,n),b(n),x(n),x0(n),x1(n),x2(n)
write(102,501)
501 format('Jacobi iteration',/)
x1=x0
do k=1,imax
do i=1,n
s=0
do j=1,n
if (j==i) cycle
s=s+A(i,j)*x1(j)
enddo
x2(i)=(b(i)-s)/A(i,i)
enddo
! the following step check if convergence is reached
dx2=0
do i=1,n
dx2=dx2+(x1(i)-x2(i))**2
enddo
dx2=dsqrt(dx2)
if (dx2<tol) exit
x1=x2
write(102,502)k,x1 ! record the iteration process
502 format(1x,i3,<n>(1x,1pd25.15))
enddo
x=x2
end subroutine solve
program main
implicit real*8(a-z)
integer,parameter::n=3
real*8 ::A(n,n),b(n),x(n),x0(n)
open(unit=101,file='result.txt')
open(unit=102,file='it_result.txt')
x0=(/0d0,0d0,0d0/) ! initial guess
b=(/9d0,7d0,6d0/)
A=reshape((/10,-1,0,-1,10,-4,0,-2,10/),(/3,3/))
call solve(A,b,x,x0,n) ! solve Ax=b
write(101,501)'x(1)','x(2)','x(3)',x
501 format('jacobi result',//,<n>(1x,a25),/,<n>(1x,1pd25.15))
end program main
参考文献外部链接
|
Index:
pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve
Portal di Ensiklopedia Dunia