1、雅克比迭代方法的使用1雅克比迭代法的目的及意义无论差值公式与求积公式的建立,还是常微分方程的差分格式的构造,其基本思想是将其转化为代数问题来处理,特别是归结为线性方程组。在科学计算与工程计算中,线性方程组会经常遇到。因此,线性方程组的解法在数值分析中占有极其重要的地位。而线性方程组的迭代法,其基本思想是将联立方程组的求解,归结为重复计算一组彼此独立的线性表达式,这就是问题得到了简化。2算法描述1.输入数据。2.对所计算的一系列 X 进行赋初值,即 x(1)=x(2)=x(36)=0.3.通过雅克比迭代公式),(/*),()(1iajxiaibynj计算 y(1),y(2),y(3).4.判断(
2、x(i)-y(i)的绝对值中最大值是否小于精度系数,若小于的话,直接输出结果;否侧,返回上述 3 过程,直到(x(i)-y(i)的绝对值中最大值小于精度系数。流程图如下所示:.=开始输入数据 ),(/*),()(1iajxiibynjeiyni)(m1K=n输出迭代失败标志输出y1,y2,y3K=k+1X(i)=y(i)((i0(i)结束K=13程序设计program main implicit none integer:i,j,k,l=30 ,m=3, n=3real:e=0.0001real:y(3),x(3)=(/0,0,0/)real:b(3)=(/7.2,8.3,4.2/)real:
3、a(3,3)=(/10,-1,-1,-1,10,-1,-2,-2,5/)do k=0,lwrite(*,*) k,x(1),x(2),x(3)do i=1,ndo j=1,mif(i-j)/=0) theny(i)=y(i)+(-a(i,j)/a(i,i)*x(j) end ifend doy(i)=y(i)+b(i)/a(i,i)end doif (max(abs(y(1)-x(1),abs(y(2)-x(2),abs(y(3)-x(3)e) stop x=yy=(/0,0,0/)end doEndK x(1) x(2) x(3)0 0.0000000E+00 0.0000000E+00 0
4、.0000000E+001 0.7200000 0.8300000 0.84000002 0.9710000 1.070000 1.1500003 1.057000 1.157100 1.2482004 1.085350 1.185340 1.2828205 1.095098 1.195099 1.2941386 1.098338 1.198337 1.2980397 1.099442 1.199442 1.2993358 1.099811 1.199811 1.2997779 1.099936 1.199937 1.299924press any key to continue四,结果及误差分析真实值为:x(1)=1.1,x(2)=1.2,x(3)=1.3绝对误差:x(1)-x(1)*=1.099936-1.1=0.000064ex(2)-x(2)*=1.199937-1.2=0.000063ex(3)-x(3)*= 1.299924-1.3=0.000076e收敛性:由于上述方程组的系数矩阵对角占优,因此其迭代过程收敛。算法评价:优点:算法简单,编制程序比较容易。缺点:他要求的系数矩阵具有某种特殊性质,以保证迭代过程的收敛性。