Jacobi迭代法求解线性方程组实验报告

仿真平台与工具应用实践

Jacobi 迭代法求解线性方程组

院 系:

专业班级:

姓 名:

学 号:

指导老师: 实 验 报 告

一、 实验目的

熟悉Jacobi 迭代法原理;

学习使用Jacobi 迭代法求解线性方程组;

编程实现该方法;

二、 实验内容

应用Jacobi 迭代法解如下线性方程组:

⎧4x 1-x 2+x 3=7⎪-7⎨4x 1-8x 2+x 3=-21,要求计算精度为10 ⎪-2x +x +5x =15123⎩

三、 实验过程

(1)、算法理论

Jacobi 迭代格式的引出是依据迭代法的基本思想:构造一个向量系列

{X ()},使其收敛至某个极限X n *,则X *就是要求的方程组的准确解。 Jacobi 迭代

将方程组: ⎧a 11x 1+a 12x 2+ +a 1n x n =b 1⎪a x +a x + +a x =b ⎪2112222n n 2 ⎨ (1) ⎪⎪⎩a n 1x 1+a n 2x 2+ +a nn x n =b n

⎧x 1=b 12x 2+b 13x 3+ +b 1n x n +g 1⎪x =b x +b x + +b x +g ⎪22112332n n 2在假设a ii ≠0,改写成⎨ (2)

⎪x n =b n 1x 1+b n 2x 2+ +b n (n -1)x n -1+g n ⎩

如果引用系数矩阵

⎡a 11 a 1n ⎤⎡0 b 1n ⎤⎡x 1⎤⎥B =⎢ ⎥⎢ ⎥b =A =⎢ X =, 及向量⎢⎥⎢⎥⎢⎥,

⎢⎢⎢⎣x n ⎥⎦⎣a n 1 a nn ⎥⎦⎣b n 1 0⎥⎦⎡b 1⎤⎡g 1⎤⎢ ⎥g =⎢ ⎥⎢⎥, ⎢⎥,⎢⎢⎣g n ⎥⎦⎣b n ⎥⎦

方程组(1)和(2)分别可写为:AX =b 及X =BX +g ,这样就得到了jacobi 迭代格式X k +1=BX k +g 0用jacobi 迭代解方程组AX =b 时,就可任意取初值X 0带入迭代可知式X k +1=BX k +g ,然后求lim X k 。但是,n 比较大的时候,k →∞

写方程组(1) 和(2) 是很麻烦的,如果直接由A ,b 能直接得到B ,g 就是矩阵与向量的运算了,那么如何得到B ,g 呢?实际上,如果引进非奇异对角矩阵

⎡a 11 0⎤⎥0 (a ii ≠0) D =⎢⎢⎥

⎢⎣0 a nn ⎥⎦

将A 分解成:A =A -D +D , 要求AX =b 的解,实质上就有AX =(A -D ) X +DX , 而D 是非奇异的,所以D -1存在,DX =AX +(D -A ) X , 从而有X =D -1AX +D -1b , 我们在这里不妨令B =I -D -1A , g =D -1b 就得到jacobi 迭代格式:X k +1=BX k +g

(2)算法框图

(3)、算法程序

m 文件:

function x=jacobi(A,b,P,delta,n)

N=length(b); %返回矩阵b 的最大长度

for k=1:n

for j=1:N

x(j)=(b(j)-A(j,[1:j-1,j+1:N])*P([1:j-1,j+1:N]))/A(j,j); end

err=abs(norm(x'-P)); %求(x'-P )模的绝对值 P=x';

if (err

end

end

E=eye(N,N); %产生N 行N 列矩阵

D=diag(diag(A));

f=A*inv(D); %f是A 乘D 的逆矩阵

B=E-f;

P

x=x';

k,err

B

MATLAB 代码:

>> clear all

A=[4,-1,1;4,-8,1;-2,1,5];

b=[7,-21,15]';

P=[0,0,0]';

x=jacobi(A,b,P,1e-7,20)

(4)、算法实现

⎧4x 11-x 12+x 13=7⎪用jacobi 迭代法求解方程组:⎨4x 21-8x 22+x 23=-21

⎪-2x +x +5x =15313233⎩

正常计算结果是2,3,4 ,下面是程序输出结果:

P =

2.0000

4.0000

3.0000

k =

17

err =

9.3859e-008

B =

0 -0.1250 -0.2000

-1.0000 0 -0.2000

0.5000 0.1250 0

x =

2.0000

4.0000

3.0000

四、 实验体会

MATLAB 是非常实用的软件,能够避免大量计算,简化我们的工作,带来便捷。通过本次试验,我了解了MATLAB 软件,提高了解决实际问题的能力。

五、 参考文献

《科学计算与数学建模实验报告_Jacobi迭代法求解线性方程组》

仿真平台与工具应用实践

Jacobi 迭代法求解线性方程组

院 系:

专业班级:

姓 名:

学 号:

指导老师: 实 验 报 告

一、 实验目的

熟悉Jacobi 迭代法原理;

学习使用Jacobi 迭代法求解线性方程组;

编程实现该方法;

二、 实验内容

应用Jacobi 迭代法解如下线性方程组:

⎧4x 1-x 2+x 3=7⎪-7⎨4x 1-8x 2+x 3=-21,要求计算精度为10 ⎪-2x +x +5x =15123⎩

三、 实验过程

(1)、算法理论

Jacobi 迭代格式的引出是依据迭代法的基本思想:构造一个向量系列

{X ()},使其收敛至某个极限X n *,则X *就是要求的方程组的准确解。 Jacobi 迭代

将方程组: ⎧a 11x 1+a 12x 2+ +a 1n x n =b 1⎪a x +a x + +a x =b ⎪2112222n n 2 ⎨ (1) ⎪⎪⎩a n 1x 1+a n 2x 2+ +a nn x n =b n

⎧x 1=b 12x 2+b 13x 3+ +b 1n x n +g 1⎪x =b x +b x + +b x +g ⎪22112332n n 2在假设a ii ≠0,改写成⎨ (2)

⎪x n =b n 1x 1+b n 2x 2+ +b n (n -1)x n -1+g n ⎩

如果引用系数矩阵

⎡a 11 a 1n ⎤⎡0 b 1n ⎤⎡x 1⎤⎥B =⎢ ⎥⎢ ⎥b =A =⎢ X =, 及向量⎢⎥⎢⎥⎢⎥,

⎢⎢⎢⎣x n ⎥⎦⎣a n 1 a nn ⎥⎦⎣b n 1 0⎥⎦⎡b 1⎤⎡g 1⎤⎢ ⎥g =⎢ ⎥⎢⎥, ⎢⎥,⎢⎢⎣g n ⎥⎦⎣b n ⎥⎦

方程组(1)和(2)分别可写为:AX =b 及X =BX +g ,这样就得到了jacobi 迭代格式X k +1=BX k +g 0用jacobi 迭代解方程组AX =b 时,就可任意取初值X 0带入迭代可知式X k +1=BX k +g ,然后求lim X k 。但是,n 比较大的时候,k →∞

写方程组(1) 和(2) 是很麻烦的,如果直接由A ,b 能直接得到B ,g 就是矩阵与向量的运算了,那么如何得到B ,g 呢?实际上,如果引进非奇异对角矩阵

⎡a 11 0⎤⎥0 (a ii ≠0) D =⎢⎢⎥

⎢⎣0 a nn ⎥⎦

将A 分解成:A =A -D +D , 要求AX =b 的解,实质上就有AX =(A -D ) X +DX , 而D 是非奇异的,所以D -1存在,DX =AX +(D -A ) X , 从而有X =D -1AX +D -1b , 我们在这里不妨令B =I -D -1A , g =D -1b 就得到jacobi 迭代格式:X k +1=BX k +g

(2)算法框图

(3)、算法程序

m 文件:

function x=jacobi(A,b,P,delta,n)

N=length(b); %返回矩阵b 的最大长度

for k=1:n

for j=1:N

x(j)=(b(j)-A(j,[1:j-1,j+1:N])*P([1:j-1,j+1:N]))/A(j,j); end

err=abs(norm(x'-P)); %求(x'-P )模的绝对值 P=x';

if (err

end

end

E=eye(N,N); %产生N 行N 列矩阵

D=diag(diag(A));

f=A*inv(D); %f是A 乘D 的逆矩阵

B=E-f;

P

x=x';

k,err

B

MATLAB 代码:

>> clear all

A=[4,-1,1;4,-8,1;-2,1,5];

b=[7,-21,15]';

P=[0,0,0]';

x=jacobi(A,b,P,1e-7,20)

(4)、算法实现

⎧4x 11-x 12+x 13=7⎪用jacobi 迭代法求解方程组:⎨4x 21-8x 22+x 23=-21

⎪-2x +x +5x =15313233⎩

正常计算结果是2,3,4 ,下面是程序输出结果:

P =

2.0000

4.0000

3.0000

k =

17

err =

9.3859e-008

B =

0 -0.1250 -0.2000

-1.0000 0 -0.2000

0.5000 0.1250 0

x =

2.0000

4.0000

3.0000

四、 实验体会

MATLAB 是非常实用的软件,能够避免大量计算,简化我们的工作,带来便捷。通过本次试验,我了解了MATLAB 软件,提高了解决实际问题的能力。

五、 参考文献

《科学计算与数学建模实验报告_Jacobi迭代法求解线性方程组》


相关文章

  • 线性方程组的解法
  • 线性方程组的解法 1 引言 在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解.在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组.而如插值公式,拟合公式等的建立,微分方程差分格式的构造等, ...查看


  • 线性方程组求解matlab程序
  • 数学软件课程设计 题目 班级 数学081班 姓名 潘珊珊 实验目的 用Matlab语言实现Jacobi迭代算法.Gauss-Seidel迭代算法和逐次超松弛迭代法,求解一般的线性代数方程组问题. 实验内容 一.Jacobi迭代算法: 程序如 ...查看


  • 数值分析作业思考题
  • 数值分析思考题1 1.讨论绝对误差(限).相对误差(限)与有效数字之间的关系. 2.相对误差在什么情况下可以用下式代替? e *x *-x e =*= x x * *r 3.查阅何谓问题的"病态性",并区分与" ...查看


  • 西南交大数值分析上机实习报告
  • 2014数值分析上机实习报告 姓名:吴朋朋 学号:2014200328 专业:车辆工程 联系电话:[1**********] 序言 数值分析方法在工程技术领域中的应用越来越广泛,作为连接工程实际与计算机运算处理的基础科学也越来越受到人们的重 ...查看


  • 解线性方程组的迭代法
  • 第5章 解线性方程组的迭代法 本节研究用迭代法求解线性方程组 Ax =b (5.1) 其中A ∈R n ⨯n 为非奇异阵,b ∈R ,且b ≠0. (k ) ∞ n 迭代法求解方程组(5.1),是构造方程组的一个近似解序列{x 组的解x . ...查看


  • 非线性方程和线性方程的数值解
  • 非线性方程的几种数值解法 郭摇 摘要:现在许多科学理论和工程技术问题都最终要化成非线性方程f(x)=0或非线性方程组F(x)=0的求解.对于非线性方程的数值解法有很多种,如:二分法,简易牛顿法,斯蒂芬森迭代法,牛顿迭代法,割线法等. 关键字 ...查看


  • 非线性方程组的求解
  • 非线性方程组的求解 摘要:非线性方程组求解是数学教学中,数值分析课程的一个重要组成部分,作为一门学科,其研究对象是非线性方程组.求解非线性方程组主要有两种方法:一种是传统的数学方法,如牛顿法.梯度法.共轭方向法.混沌法.BFGS法.单纯形法 ...查看


  • 数值分析学习心得体会
  • 数值分析学习感想 一个学期的数值分析,在老师的带领下,让我对这门课程有了深刻的理解和感悟.这门 课程是一个十分重视算法和原理的学科,同时它能够将人的思维引入数学思考的模式,在处 理问题的时候,可以合理适当的提出方案和假设.他的内容贴近实际, ...查看


  • 同伦算法在6R机器人运动学逆解上的应用
  • ? 同伦算法在6R机器人运动学逆解上的应用 同伦算法在6R机器人运动学逆解上的应用 党磊,熊瑞平,唐静莹,孙飞 (四川大学制造科学与工程学院,四川成都610065) 摘要:针对一般6R机器人运动学的逆解问题,提出了一种自适应同伦算法的求解方 ...查看


热门内容