解线性方程组的预条件Gauss_Seidel型迭代法

合集下载

线性方程组的迭代解法(Jacobi迭代法Gauss-Seidel迭

线性方程组的迭代解法(Jacobi迭代法Gauss-Seidel迭

线性方程组的迭代解法(Jacobi迭代法Gauss-Seidel迭按照算法(Jacobi迭代法)编写Matlab程序(Jacobi.m) function [x, k, index]=Jacobi(A, b, ep, it_max)% 求解线性方程组的Jacobi迭代法,其中% A --- 方程组的系数矩阵% b --- 方程组的右端项% ep --- 精度要求。

省缺为1e-5% it_max --- 最大迭代次数,省缺为100% x --- 方程组的解% k --- 迭代次数% index --- index=1表示迭代收敛到指定要求;% index=0表示迭代失败if nargin <4 it_max=100; endif nargin <3 ep=1e-5; endn=length(A); k=0;x=zeros(n,1); y=zeros(n,1); index=1;while 1for i=1:ny(i)=b(i);for j=1:nif j~=iy(i)=y(i)-A(i,j)*x(j);endendif abs(A(i,i))<1e-10 | k==it_maxindex=0; return;endy(i)=y(i)/A(i,i);endif norm(y-x,inf)<epbreak;endx=y; k=k+1;end用Jacobi迭代法求方程组的解。

输入:A=[4 3 0;3 3 -1;0 -1 4];b=[24;30;-24];[x, k, index]=Jacobi(A, b, 1e-5, 100)输出:x =-2.999811.9987-3.0001k =100index =2. 熟悉Gauss-Seidel迭代法,并编写Matlab程序function[v,sN,vChain]=gaussSeidel(A,b,x0,errorBound,maxSp) %Gauss-Seidel迭代法求解线性方程组%A-系数矩阵 b-右端向量 x0-初始迭代点 errorBound-近似精度maxSp-最大迭代次数%v-近似解 sN-迭代次数 vChain-迭代过程的所有值step=0;error=inf;s=size(A);D=zeros(s(1));vChain=zeros(15,3);%最多能记录15次迭代次数k=1;fx0=x0;for i=1:s(1)D(i,i)=A(i,i);end;L=-tril(A,-1);U=-triu(A,1);while error>=errorBound & step<maxspx0=inv(D)*(L+U)*x0+inv(D)*b;vChain(k,:)=x0';k=k+1;error=norm(x0-fx0);fx0=x0;step=step+1;endv=x0;sN=step;用Gauss-Seidel迭代法求解上题的线性方程组,取。

Gauss-Seidel迭代法

Gauss-Seidel迭代法

G a u s s-S e i d e l迭代法-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN数值分析课程论文姓名:学号:Gauss-Seidel迭代法求解线性方程组摘要线性方程组的求解在许多的工程技术中是一个极为常见的问题,对于线性方程组的求解无论从理论上还是实践应用上都已经成熟.对于一般线性方程组的求解有Gauss消元法为基础的直接法,也有迭代法.其中Gauss-Seidel是一个重要的组成部分.鉴于此,本论文细致地研究了用Gauss-Seidel迭代法求解线性方程组.论文的第一部分先介绍了迭代法求解线性方程组的一般模式,并给出这种迭代法的收敛性条件,Gauss-Seidel迭代法求解线性方程组的基本原理.这一部分是Gauss-Seidel迭代法的理论基础.论文的第二部分给出了Gauss-Seidel迭代法的具体操作步骤,以伪代码的形式细致的描绘如何使用Gauss-Seidel迭代法的求解方程组.同时,为了验证算法的有效性,在这一部分,还引入一个简单的算例,用于MATLAB编程发现计算结果完全正确.论文的第三部分给出了关于Gauss-Seidel迭代法的MATLAB程序,用于计算线性方程组.关键词:Gauss-Seidel迭代法,基本原理,算例,MATLAB程序目录1 Gauss-Seidel迭代法的基本理论 (1)1.1线性方程组的迭代法求解 (1)1.2Gauss-Seidel迭代法的原理 (2)2.具体的算例和操作步骤 (3)2.1. Gauss-Seidel迭代法的伪代码 (3)2.2.具体的算例验证算法的有效性 (3)3.MATLAB程序 (4)参考文献 (6)Gauss-Seidel 迭代法求解线性方程组一. Gauss-Seidel 迭代法的基本理论1.1线性方程组的迭代法求解在考虑求解线性方程组Ax=b 时,其中A 为非奇异矩阵.尽管Guass 消元法通过有限次运算可以求解此问题,其对应的计算复杂度为3O(n ).但是对于工程技术中和某些偏微分方程过程中出现的大型稀疏型矩阵利用迭代法可以更快的收敛,找到解.另外一方面,由于迭代法占用的计算机内存少,且便于计算.这两方面的优势促成了迭代法求解线性方程组的研究.关于迭代法的收敛的几个判定条件 1(迭代法基本原理)设有方程组f Bx x +=,对于任意初始向量()0x 及任意f ,解此方程组的迭代法(即()()f Bx x k k +=+1)收敛的充要条件是()1<B ρ.2(迭代法收敛的充分条件)如果方程组f Bx x +=的迭代公式为()()f Bx x k k +=+1(()0x 为任意初始向量),且迭代矩阵的某一种范数1<=q B v ,则:︒1迭代法收敛;︒2()()()v k k vk x x q qx x 11-*--≤-;︒3()()()v kvk x x q q xx 011--≤-*.定理3 如果mn RA ⨯∈为严格对角占优阵或为不可约弱对角占优阵,则对于任意的()0x ,解方程组b Ax =的Jacobi 迭代法,Gauss-Seidel 迭代法均收敛.定理4如果A 为对称正定矩阵,且20<<ω,则解式b Ax =的SOR 方法收敛.1.2Gauss-Seidel 迭代法的原理由Jacobi方法迭代公式()()()()010k k xx B x f +⎧⎪⎨=+⎪⎩初始向量,可知,迭代的每一步计算过程,都是用()k x 的全部分量来计算()1+k x 的所有分量,显然在计算第i 个分量()1+k ix时,已经计算出的最新分量()11+k x ,()12+k x ,…,()11+-k i x 没有被利用.从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第1+k 次近似()1+k x 的分量()1+k jx 加以利用,就得到所谓解方程组的Gauss-Seidel 迭代法(简称G-S 方法):()()()()()T=002010n x x x x ,,, (初始向量),()()()()n i k x a x a b a x i j n i j k j ij k j ij i iik i,,2,1;,2,1,0111111 ==⎪⎪⎭⎫ ⎝⎛--=∑∑-=+=++或写为()()()()()⎪⎩⎪⎨⎧⎪⎪⎭⎫ ⎝⎛--=∆==∆+=∑∑-==++.1,,,2,1;,2,1,01111i j ni j k j ij k iij i ii i i k i k i x a x a b a x n i k x x x上面第2个式子利用了最新计算出的分量()11+k x ,第i 个式子利用了计算出的最新分量()()1,,2,11-=+i j x k j .还可写成矩阵形式()()()()()()k k k k k Ux b x L D Ux Lx b Dx+=-++=+++111,,若设()1--L D 存在,则()()()()b L D Ux L D x k k 111--+-+-=, 于是Gauss-Seidel 迭代公式的矩阵形式为()()f Gx x k k +=+1,()6.2.8 其中 ()U L D G 1--=,()b L D f 1--=.由此可以看出,应用Gauss-Seidel 迭代法解式b Ax =,就是对方程组f Gx x +=应用迭代法.G 称为解式的Gauss-Seidel 迭代法的迭代矩阵.Gauss-Seidel 迭代法的一个明显优点是,在用计算机计算时,只需一组工作单元,以便存放近似解.由式可以看出,每迭代一步只需计算一次矩阵与向量的乘法.二.具体的算例和操作步骤2.1. Gauss-Seidel 迭代法的伪代码 1.输入问题的参数A,b 2.分解A 为D,L,U.3.计算迭代方程G ,f.4.开始迭代,随机设定一个初值.5.以迭代方程更新x 的值.6.如果到达迭代次数,则进入步骤7;否则,回到步骤5.7.输出x ,结束.2.2.具体的算例验证算法的有效性 求解如下的线性方程组1231231238-3+2=204+11-=336+3+12=36x x x x x x x x x ⎧⎪⎨⎪⎩ 这个方程的真实解为(3,2,1). 程序运行结果: 情况1:输入GS (A,b ) GS(A,b)xhis =0 0 0 2.5000 2.0909 1.2273 2.9773 2.0289 1.0041 3.0098 1.9968 0.9959 2.9998 1.9997 1.0002 2.9998 2.0001 1.0001 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 ans = 3.0000 2.00001.00000.51.5解的迭代情况图一。

二维gauss-seidel迭代法matlab代码

二维gauss-seidel迭代法matlab代码

二维Gauss-Seidel迭代法是解线性方程组的一种常用方法,通过迭代求解,能够快速且精确地得到方程组的解。

在MATLAB中,可以使用简洁的代码实现二维Gauss-Seidel迭代法,下面我们将介绍该方法的原理以及在MATLAB中的具体实现。

一、Gauss-Seidel迭代法原理1. Gauss-Seidel迭代法是一种逐次逼近的方法,通过不断迭代更新方程组中的未知数,最终得到方程组的解。

其基本思想是利用已知的未知数值不断逼近更精确的解。

2. 对于线性方程组Ax=b,可以将其表示为x(k+1)=Tx(k)+c的形式,其中T为迭代矩阵,c为常量向量,x为未知数向量。

Gauss-Seidel 迭代法通过不断更新x(k)的值,逐步逼近方程组的解。

3. 迭代矩阵T和常量向量c的具体计算方式为:首先将系数矩阵A分解为下三角矩阵L、对角矩阵D和上三角矩阵U,然后得到T=-L*(D^-1)*U,c=L*(D^-1)*b。

4. 通过不断迭代更新x(k)的值,直到满足一定的精度要求或者迭代次数达到设定值,即可得到方程组的解。

二、MATLAB实现二维Gauss-Seidel迭代法在MATLAB中,可以很方便地实现二维Gauss-Seidel迭代法,以下是具体的实现代码:```matlabfunction [x, k] = gauss_seidel(A, b, x0, tol, max_iter)A为系数矩阵,b为常量向量,x0为初始解向量,tol为精度要求,max_iter为最大迭代次数返回x为方程组的解,k为实际迭代次数n = length(b);x = x0;k = 0;err = tol + 1;L = tril(A, -1); 下三角矩阵U = triu(A, 1); 上三角矩阵D = diag(diag(A)); 对角矩阵T = -L*(D\U);c = L*(D\b);while err > tol k < max_iterx_old = x;x = T*x + c;err = norm(x - x_old, inf);k = k + 1;endend```三、代码说明1. 函数gauss_seidel接受系数矩阵A、常量向量b、初始解向量x0、精度要求tol和最大迭代次数max_iter作为输入参数,返回方程组的解x和实际迭代次数k。

Gauss-Seidel迭代法求解线性方程组

Gauss-Seidel迭代法求解线性方程组

一. 问题描述用Gauss-Seidel 迭代法求解线性方程组由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值。

使用了两倍的存储空间,浪费了存储空间。

若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量)1(+k ix 时,用最新分量)1(1+k x ,⋅⋅⋅+)1(2k x )1(1-+k i x 代替旧分量)(1k x ,⋅⋅⋅)(2k x )(1-k i x ,可以起到节省存储空间的作用。

这样就得到所谓解方程组的Gauss-Seidel 迭代法。

二. 算法设计将A 分解成U D L A --=,则b x =A 等价于b x =--U)D (L 则Gauss-Seidel 迭代过程)()1()1(k k k Ux Lx b Dx ++=++故)()1()(k k Ux b x L D +=-+若设1)(--L D 存在,则b L D Ux L D x k k 1)(1)1()()(--+-+-=令b L D f U L D G 11)()(---=-=,则Gauss-Seidel 迭代公式的矩阵形式为f Gx x k k +=+)()1(其迭代格式为Tn x x x x )()0()0(2)0(1)0(,,,⋅⋅⋅= (初始向量),)(11111)()1()1(∑∑-=-+=++--=i j i i j k j ijk j ij i ii i ix ax a b a x)210i 210(n k ⋅⋅⋅=⋅⋅⋅=,,,;,,,或者⎪⎩⎪⎨⎧--=⋅⋅⋅=⋅⋅⋅==∆+=∑∑-=-+=+++)(1)210i 210(1111)()1()1()()1(i j i i j k j ij k j ij i ii i i i k i k i x a x a b a x n k k x x x ,,,;,,,三. 程序框图四. 结果显示TestBench利用Gauss-Seidel 迭代法求解下列方程组⎪⎩⎪⎨⎧=+-=++--=++3103220241225321321321x x x x x x x x x , 其中取→=1)0(x 。

gauss-seidel迭代法例题matlab代码

gauss-seidel迭代法例题matlab代码

【题目】:Gauss-Seidel迭代法及Matlab代码实例【内容】:1. Gauss-Seidel迭代法介绍Gauss-Seidel迭代法是一种用于解线性方程组的数值方法,基于逐次逼近的思想,通过不断迭代逼近线性方程组的解。

该方法通常用于求解大型稀疏线性方程组,其收敛速度相对较快。

2. 迭代公式推导假设有如下线性方程组:$$Ax=b$$其中A为系数矩阵,b为常数向量,x为未知向量。

Gauss-Seidel迭代法的迭代公式为:$$x^{(k+1)}=(D+L)^{-1}(b- Ux^{(k)})$$其中,D为A的对角矩阵,L为A的严格下三角矩阵,U为A的严格上三角矩阵,k为迭代次数。

3. Matlab代码实现下面给出Gauss-Seidel迭代法的Matlab代码实例:```matlabfunction [x, k] = gaussSeidel(A, b, x0, tol, maxIter)A: 系数矩阵b: 常数向量x0: 初始解向量tol: 容差maxIter: 最大迭代次数x: 解向量k: 迭代次数n = length(b);x = x0;k = 0;while k < maxIterx_old = x;for i = 1:nx(i) = (b(i) - A(i,1:i-1)*x(1:i-1) - A(i,i+1:n)*x_old(i+1:n)) / A(i,i); endif norm(x - x_old, inf) < tolreturnendk = k + 1;enddisp('迭代次数达到最大值,未达到容差要求'); end```4. 应用实例假设有如下线性方程组:$$\begin{cases}2x_1 - x_2 + x_3 = 5\\-x_1 + 2x_2 - x_3 = -2\\x_1 - x_2 + 2x_3 = 6\end{cases}$$系数矩阵A为:$$\begin{bmatrix}2 -1 1\\-1 2 -1\\1 -1 2\end{bmatrix}$$常数向量b为:$$\begin{bmatrix}5\\-2\\6\end{bmatrix}$$取初始解向量x0为:$$\begin{bmatrix}0\\0\\\end{bmatrix}$$容差tol为1e-6,最大迭代次数maxIter为100。

分别用 jacobi 迭代法和 gauss-seidel 迭代法,求解方程组

分别用 jacobi 迭代法和 gauss-seidel 迭代法,求解方程组

分别用 jacobi 迭代法和 gauss-seidel 迭代法,求解方程组【jacobi 迭代法和 gauss-seidel 迭代法分别应用于方程组的求解】1. 引言在数学领域中,方程组的求解一直是一个重要的课题。

为了解决复杂的线性方程组,人们提出了各种迭代方法,其中 jacobi 迭代法和gauss-seidel 迭代法是两种常见的方法。

本文将探讨这两种迭代方法在求解方程组中的应用。

2. jacobi 迭代法的原理和应用jacobi 迭代法是一种基于逐次逼近的迭代方法。

对于线性方程组AX=B,其中 A 是系数矩阵,X 是未知数向量,B 是已知向量。

我们可以通过以下公式进行逐次逼近:X(k+1) = D^(-1)*(B - (L+U)X(k))其中,D、L、U 分别是 A 的对角线、下三角和上三角矩阵。

jacobi 迭代法的优点在于易于理解和实现,但在收敛速度上较慢,需要进行多次迭代才能得到精确解。

在实际应用中,需要根据实际情况选择合适的迭代次数。

3. gauss-seidel 迭代法的原理和应用与 jacobi 迭代法类似,gauss-seidel 迭代法也是一种基于逐次逼近的迭代方法。

不同之处在于,gauss-seidel 迭代法在计算 X(k+1) 时利用了已经得到的 X(k) 的信息,即:X(k+1)_i = (B_i - Σ(A_ij*X(k+1)_j,j≠i))/A_ii这种方式使得 gauss-seidel 迭代法的收敛速度较快,通常比 jacobi 迭代法更快,尤其是对于对角占优的方程组。

4. 分别用 jacobi 迭代法和 gauss-seidel 迭代法求解方程组为了更具体地说明 jacobi 迭代法和 gauss-seidel 迭代法的应用,我们分别用这两种方法来求解以下方程组:2x1 + x2 = 9x1 + 3x2 = 11我们将该方程组写成矩阵形式 AX=B:|2 1| |x1| |9||1 3| * |x2| = |11|我们根据 jacobi 迭代法和 gauss-seidel 迭代法的原理,依次进行迭代计算,直到满足收敛条件。

gauss-seidel迭代法收敛判断matlab

gauss-seidel迭代法收敛判断matlab

Gauss-Seidel迭代法是解线性方程组的一种常用方法,它通过不断迭代更新解向量,逐步逼近方程组的精确解。

在实际应用中,我们往往需要判断迭代法是否收敛,以保证计算结果的准确性和可靠性。

本文将以matlab为例,介绍如何利用数值计算软件对Gauss-Seidel迭代法的收敛性进行判断,并对其进行详细分析和讨论。

一、Gauss-Seidel迭代法简介Gauss-Seidel迭代法是一种逐次迭代的线性代数方法,用于求解线性方程组Ax=b的解向量x。

它的迭代更新公式为:xn+1i=1/aii(bi-∑(j=1,j≠i)n aijxj)其中,i=1,2,...,n;n为方程组的阶数;aii为系数矩阵A的第i行第i 列元素;bi是方程组右端的常数;xj为解向量x的第j个分量;∑(j=1,j≠i)n aijxj为除去第i个分量的求和。

通过不断迭代更新解向量的各个分量,最终可以逼近线性方程组的解。

二、Gauss-Seidel迭代法的收敛性判断针对Gauss-Seidel迭代法的收敛性判断,我们可以利用数值计算软件matlab进行分析。

在matlab中,可以使用以下命令进行Gauss-Seidel迭代法的计算:function[x,k]=GaussSeidel(A,b,x0,tol,maxk)n=length(b);x=x0;for k=1:maxkx0=x;for i=1:nx(i)=1/A(i,i)*(b(i)-A(i,:)*x+x(i));endif norm(x-x0,inf)<tolreturn;endenderror('达到最大迭代次数,方法未收敛');end在上述matlab代码中,A为系数矩阵,b为右端常数向量,x0为初始解向量,tol为迭代精度,maxk为最大迭代次数。

在函数中,我们设定了最大迭代次数以及迭代精度的条件,当满足这些条件时,算法将停止迭代。

三、Gauss-Seidel迭代法的收敛性分析Gauss-Seidel迭代法的收敛性与系数矩阵A的性质有关。

gauss-seidel迭代法matlab代码

gauss-seidel迭代法matlab代码

Gauss-Seidel迭代法是一种用于解线性方程组的数值方法,特别适用于稀疏矩阵。

以下是一个使用Matlab实现Gauss-Seidel迭代法的简单示例代码:```matlabfunction [x, iteration] = gaussSeidel(A, b, tol, maxIter)% 输入参数:% A:系数矩阵% b:右侧常数向量% tol:迭代收敛容差% maxIter:最大迭代次数n = length(b);x = zeros(n, 1); % 初始化解向量iteration = 0;while iteration < maxIterx_new = x; % 存储前一次迭代的解for i = 1:n% 计算新的解x(i) = (b(i) - A(i,1:i-1)*x(1:i-1) - A(i,i+1:n)*x_new(i+1:n)) / A(i,i);end% 计算迭代误差error = norm(x - x_new, inf);if error < tolreturn;enditeration = iteration + 1;endwarning('Gauss-Seidel迭代未收敛到指定容差。

');end```使用这个函数时,您需要提供系数矩阵A、右侧常数向量b、迭代收敛容差tol和最大迭代次数maxIter作为输入参数。

函数将返回解向量x和迭代次数iteration。

示例用法:```matlabA = [4, -1, 0; -1, 4, -1; 0, -1, 3];b = [12; -1; 0];tol = 1e-6;maxIter = 1000;[x, iteration] = gaussSeidel(A, b, tol, maxIter);fprintf('解向量x = \n');disp(x);fprintf('迭代次数= %d\n', iteration);```这将求解线性方程组Ax = b,并返回解向量x以及迭代次数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-1 B G- Sβ = ( I - L + β S - β SU ) U ≥0・
β a n1 a1 , n - 1 + a n , n - 1 β a n1 a1 n
定理 2 若 A 是不可约 Z- 矩阵满足 a ni ≠0 和 0 ≤ a n1 a1 n < 1・ 则 B 1 和 Bβ1 也是不可约 矩阵 ( 其中 B 1 和 Bβ1 由 ( 11) 定义) ・ 证明 由文献 [ 5 ] 易证 B 1 和 Bβ1 也是不可约矩阵・ 定理 3 设 A = I - L - U 是不可约 Z- 矩阵并且满足 a ni ≠0 和 0 ≤ a n1 a1 n < 1 , B G- S =
1 预条件 Gauss- Seidel 方法
在这部分中 , 给出比用 Gauss- Seidel 方法求解线性方程组 ( 1) 收敛速度快的预条件 GaussSeidel 方法 , 同时也给出了方法的最优参数的取值范围・ 因此 , 如果我们对 ( 4) 用 Gauss- Seidel 方法 ,即得到预条件 Gauss- Seidel 迭代法 ,迭代矩阵为 -1 ( 10) B G- Sβ = ( I - L + β S - β SU ) U・ 分别考虑由 ( 8) 和 ( 9) 定义的经典 Gauss- Seidel 迭代矩阵和预条件 Gauss- Seidel 迭代矩阵・ 易知
1120
程 光 辉 黄 廷 祝 成 孝 予
ω , 即 Bβ1α > λ α, 其中 ω = 因此 B G- Sβω ≥λ ρ( Bβ1 ) > λ ・ 即 ρ( B G- Sβ) > λ ・
ω1 α
・ 所以 ,由引理 2 得
( b) 如果 λ > 1 , - 1 ≤β < 0 , 则 B G- Sβ ω - B G- S ω ≥0・ 因此
引 言
求解线性方程组
( 1) Ax = b , n× n n× 1 n× 1 n× n 其中 A ∈ R 是非奇矩阵 , b ∈ R , x ∈ R ・ 若 A = M - N , 其中 M , N ∈ R 并且 M
是非奇的 ,则分裂迭代方法可以表示为 x ( k +1) = M - 1 Nx ( k) + M - 1 b , k = 0 , 1 , 2 , … ・ 在假设 aii ≠0 , i = 1 , 2 , …, n 的条件下 ,不失一般性我们可以设 A = I - L - U ,
B G- S 和 B G- S 因此 , 我们可以把矩阵 B G- S 和 B G- Sβ 分解为 β 的第一列元素均为 0・
B G- S =
0 0
B0 B1
, B G- S β =
0 0
Bβ 0 Bβ 1
,
( 11)
其中 B 1 和 Bβ1 均为 n - 1 阶方阵・ 现在 ,给出以下结果・ β ≤min ( - a ni / ( a n1 a1 i ) ) , 定理 1 若 A 是 Z- 矩阵满足 a ni ≠0 和 0 ≤ a n1 a1 n < 1 , - 1 ≤ )・ i = 2 , …, n - 1 ( 若 a n1 a1 i = 0 , 记 1/ ( a n1 a1 i ) = + ∞ 则 ( I - L + β S - β SU ) - 1 U ≥0・
1117
1118
程 光 辉 黄 廷 祝 成 孝 予
0
0 0
0 β ∈ R・ , … … a n1 0 0 由下式给出 Gauss- Seidel 法 x ( k +1) = ( I - L ) - 1 Ux ( k) + ( I - L ) - 1 b , k = 0 , 1 , 2 , … ・
S =
0
…Leabharlann … … … …0 ( 6)
( 7) ( 8) ( 9)
迭代矩阵为 B G- S = ( I - L ) - 1 U・ 现在 ,我们考虑线性方程组 ( 4) ,其中 A = ( I + β S) A = ( I + β S - L - β SU ) - U = D - L - U , D = diag ( d 1 , d 2 , …, d n ) , d i = 1 , i = 1 , …, n - 1 ; d n = 1 + β a1 n a n1・ 下面 ,给出几个我们需要的定义和结果・
( 12)
T
λ β( I - L + β S - β SU ) - 1 0 , 0 , …, 0 , -
i =1
6
n
a n1 a1 i ωi
T
=
T β (λ a n1 / ( 1 + β a n1 a1 n ) ) ( 0 , 0 , …, 0 , (λ - 1) ω = 1) T (λ(λ - 1) β a n1 / ( 1 + β a n1 a1 n ) ) ( 0 , 0 , …, 0 ,ω 1) ・ ( a) 如果 0 < λ < 1 , - 1 ≤β < 0 , 则 B G- Sβω - B G- Sω ≤0・ 因此
-1 ( I - L + β S - β SU ) [ Uω - λ( I - L + β S - β SU ) ω] = -1 β β ( I - L + β S - β SU ) ( - λ S +λ SU ) ω = -1 λ β( I - L + β S - β SU ) ( SU - S ) ω =
2) 若 λ = 1 , - 1 ≤β ≤min ( - a ni / ( a n1 a1 i ) ) 或 β = 0 , 则
ρ( B G- Sβ) = ρ( B G- S) ・ 3) 若 0 < λ < 1 , 0 < β ≤min ( - a ni / ( a n1 a1 i ) ) 或 λ > 1 , - 1 ≤β < 0 , 则 ρ( B G- Sβ) > ρ( B G- S) ・ 证明 首先 ,存在一个正的向量 ω 使得 ω, B G- Sω = λ 其中 λ = ρ( B G- S) , ω = (ω1 , …,ωn ) ・ 现考虑 ω= B G- Sβω - B G- Sω = ( I - L + β S - β SU ) - 1 Uω - λ
应用数学和力学 ,第 27 卷 第 9 期 Applied Mathematics and Mechanics 2006 年 9 月 15 日出版 Vol. 27 ,No. 9 ,Sep . 15 ,2006
文章编号 :1000-0887 (2006) 09-1117-05
Ξ
( 4) ( 5)
收稿日期 : 2005-12-07 ; 修订日期 : 2006-03-27 基金项目 : 教育部 “新世纪人才支持计划” 基金资助项目 ( 2004) ; 四川省应用基础研究基金资助项目 (05J Y029-068-2) ) ,男 ,长春人 ,博士 ( E-mail :cgh612 @126. com) ; 作者简介 : 程光辉 (1979 — 黄廷祝 ( 联系人 . Tel : + 86-28-83202637 ; E-mail :tzhuang @uestc. edu. cn) ・
( 2) ( 3)
其中 I 是单位矩阵 , - L 和 - U 分别是严格下三角矩阵和严格上三角矩阵 ・ 当 M = I - L ,
N = U 时 , 得到的是 Gauss- Seidel 方法・ 现在已有一些对 Gauss- Seidel 方法的修改的预条件
法 [1 ] ,提高了迭代法的收敛速度・ 给出了在某种假设条件下 , 应用本文给出的预条件方法解 ( 1) ,比用直接方法解收敛速度 要快 ,同时也给出了方法的最优参数的取值范围・ 因此 ,考虑线性预条件方程组 Ax = b , 其中 A = ( I + β S) A , b = ( I + β S) b ,
( I - L)
-1
U 和 B G- S S - β SU ) β = ( I - L +β
-1
U 分别是经典的 Gauss- Seidel 方法的迭代矩阵和
修改的 Gauss- Seidel 方法的迭代矩阵・ 那么 1) 若 0 < λ < 1 , - 1 ≤β < 0 或 λ > 1 , 0 < β ≤min ( - a ni / ( a n1 a1 i ) ) , 则 ρ( B G- Sβ) < ρ( B G- S) ・
( 13) ( 14)
B G- Sβω ≤ B G- Sω・ 由 B G- Sβ =
0 0
Bβ 0 Bβ 1 , 我们得到 ρ( B G- S ・ β) < λ
如果 β = 0 , 则 B G- S = B G- Sβ , 因此 ρ( B G- Sβ) = ρ( B G- S) ・ 如果 0 < β ≤min ( - a ni / ( a n1 a1 i ) ) , 则 B G- Sβω - B G- S ω ≥0 且 B G- Sβω - B G- Sω ≠0・
定义 1 [2 ] 矩阵 A 是一个 L - 矩阵 , 如果 aii > 0 , i = 1 , …, n , 并且 aij ≤0 , 对所有的 i , j = 1 , …, n 且 i ≠ j・ 定义 2 [3 ] 矩阵 A 是不可约的 , 如果矩阵 A 对应的图是强连通的・ 引理 1 [3 ] 若 A ≥0 是不可约的 n × n 矩阵・ 则 1 ) A 有一个正的实特征值等于它的谱半径 ; 2) ρ( A ) 对应的特征向量 x > 0 ; 3) ρ( A ) 是 A 的单特征值・ 引理 2 [4 ] 若 A 是非负矩阵・ 则 1) 如果 α x ≤ Ax 对某一个非负向量 x 且 x ≠0 成立 , 则 α ≤ρ( A ) ; 2) 如果 Ax ≤β x对 β α β 某一个正向量 x 成立 , 则 ρ( A) ≤ ・ 进一步 , 如果 A 是不可约并且若有 0 ≠ x ≤ Ax ≤ x, α x ≠ Ax 和 Ax ≠β x 对某一非负向量 x 成立 ,则 α < ρ( A) < β 且 x 是一正向量・
相关文档
最新文档