实验报告四 线性方程组的求解-迭代法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江大学城市学院实验报告

课程名称 科学计算

实验项目名称 线性方程组的求解-迭代法

实验成绩 指导老师(签名 ) 日期 2014/11/17

一. 实验目的和要求

1. 掌握Jacobi 迭代方法,Gauss-Seidel 迭代方法,SOR 迭代方法的编程思想,能够分别用分量形式和矩阵形式编写相关程序。

2. 观察SOR 迭代法中松弛因子变化情况对收敛的影响。

3. 了解Hilbert 矩阵的病态性和作为线性方程组系数矩阵的收敛性。

二. 实验内容和原理

编程题2-1要求写出Matlab 源程序(m 文件),并有适当的注释语句;分析应用题2-2,2-3,2-4要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上。

2-1 编程注释

11121121

222212

,n n n n nn n a a a b a a a b A b a a a b ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ 对下述求解线性方程组的Matlab 程序添上注释语句,其中A 和b 分别为线性方程组的系数矩阵和右端向量;0x 为迭代初始向量(0)X ;max N 为容许迭代最大次数,eps 为迭代终止

条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-范数。

1) Jacobi 迭代:Jacobimethod(A,b,x0,Nmax,eps)

2) Gauss-Seidel 迭代:GaussSeidelmethod(A,b,x0,Nmax,eps)

2-2 分析应用题

利用2-1中的程序来分析用下列迭代法解线性方程组:

123456410100014101050141012101410501014120010146x x x x x x --⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥---⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥----=⎢⎥⎢⎥⎢⎥---⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥----⎢⎥⎢⎥⎢⎥--⎢⎥⎢

⎥⎢⎥⎣⎦⎣⎦⎣⎦ 的收敛性,并求出使(1)()20.0001k k X

X +-≤的近似解及相应的迭代次数,其中取迭代初始向量(0)X 为零向量。

1)Jacobi 迭代法;

2)Gauss-Seidel 迭代法;

2-3 分析应用题

考虑方程组HX b =,其中系数矩阵H 为Hilbert 矩阵,

,,1(),,,1,2,,1i j n n i j H h h i j n i j ⨯===+-

选择问题的维数n 分别为2、3、5、10,并通过首先给定解再定出右端的办法确定问题,解的给定可以使用函数(,1)X rand n =定义,并取迭代初始向量(0)X 为零向量,迭代误差为(1)()

20.00001k k X X +-≤,编写程序:

2_3()ex n

其中n 为Hilbert 矩阵的维数,分别构造求解该问题的Jacobi 迭代和Gauss-Seidel 迭代,看它们是否收敛。

2-4 分析应用题

解线性方程组k k AX b =的解向量,取1k k k X b X +∞

=,其中 124711162358121745691318,max |()|789101419111213141520161718192021k k j

A X X j ∞⎡⎤

⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥

⎢⎥⎢⎥⎢⎥⎣⎦ 1b 为任一非零的六元向量;编写程序输出结果:

;(1,2,,10)

b X k

k k

认真观察之,能发现什么有趣的现象?

【MATLAB相关函数】

⏹提取(产生)对角阵

v=diag(x)若输入向量x,则输出v是以x为对角元素的对角阵;若输入矩阵x,则输出v 是x的对角元素构成的向量

v=diag(diag(x))输入矩阵x,输出v是x的对角元素构成的对角阵,可用于迭代法中从A中提取D。

⏹提取(产生)上(下)三角阵

v=triu(x)输入矩阵x,输出v是x的上三角阵;

v=tril(x)输入矩阵x,输出v是x的下三角阵;

v=triu(x,1)输入矩阵x,输出v是x的上三角阵,但对角元素为0,可用于迭代法中从A 中提取U。

v=tril(x,-1)输入矩阵x,输出v是x的下三角阵,但对角元素为0,可用于迭代法中从A中提取L。

⏹矩阵特征值

b=eig(A)输入矩阵A,输出b是A的所有特征值。

⏹范数

n=norm(x)输入x为向量或矩阵,输出为x的2范数;

n=norm(x,p)输入x为向量或矩阵,当p=1, inf时分别输出为x的1,无穷范数;

⏹Hilbert矩阵

h=hilb(n)输出h为n阶Hilbert矩阵

三. 操作方法与实验步骤(包括实验数据记录和处理)

四. 实验结果与分析

相关文档
最新文档