搜档网
当前位置:搜档网 › 解线性方程组

解线性方程组

解线性方程组
解线性方程组

解线性方程组的直接法

对方程AX b = , 矩阵A 的维数是m n ?,b 为一给定的m 维向量.则有(1) m n = 恰定方程,寻求精确解;(2) m n >超定方程, 寻求最小二乘解;(3) m n <欠定方程,寻求基本解, 其中至多有m 个非零元素.针对不同的况,MATLAB 将采用不同的算法来求解. 一、超定方程组

当m n >时, 方程组个数比未知数多, 上式为一超定方程组.一般而言, 满足方程AX b =的解将不存在, 方程没有精确解, 在MATLAB 中, 利用左除命令

\X A b =来寻求它的最小二乘解, 即使2

AX b -最小.还可以用广义逆来求, 即

()*X pinv A b =, 所得的解不一定满足AX b =,X 只是最小二乘意义上的解.左除的方法是建立在奇异值分解基础之上, 由此获得的解最可靠;广义逆法是建立在对原超定方程直接进行householder 变换的基础上,其算法可靠性稍逊于奇异值分解, 但速度快. 二、欠定方程组

当m n <时, 未知数比方程个数多, 上式为一欠定方程组.这时, 满足方程AX b = 的解有无穷多个,MATLAB 只给出其中一个基本解\X A b =, 要得到它的通解,可用函数null 来实现 三、恰定方程组

恰定方程组由n 个未知数, n 个方程构成, 对AX b =在线性代数教科书中, 最常用的方程解法有:

(1)利用cramer 公式求解法; (2)利用矩阵求逆解法, 即1X A b -=; (3)利用gauss 消去法; (4)利用LU 分解法求解.

一般来说, 对于维数不高、条件数不大的矩阵, 上面4 种解法所得的结果差别不大.前两种解法的真正意义是在其理论上, 而不是实际的数值计算.而Gauss 消去法, 其本质上利用LU 分解,在MATLAB 中, 出于对算法稳定性的考虑, 行列式及逆矩阵的计算大都在LU 分解的基础上进行.因此, 在MATLAB 中, 求解这类方程组时可直接采用表达式: \X A b =.

(LU 分解)若n 阶矩阵A 可逆且顺序主子式不为零, 则A 可以分解为一个单位下三角阵L 和一个上三角阵U 的积A LU =, 并且这种分解是唯一的.由于AX LUX b ==记UX Z =, 则LZ b =, 从而由LZ b =求得\Z L b =, 再由UX Z =求\X U Z =,\(\)X U L b =MATLAB 中, 用[,]()L U lu A =函数求得L ,U , 再用\(\)X U L b =求得解.如果矩阵A 是对称正定矩阵, 可采用Cholesky 分解法, 矩阵Cholesky 分解定理为:

如果A 是对称正定矩阵, 则(至少)存在一个实的下三角矩阵L 使得T A LL =此外, 我们可以限定矩阵L 的对角元素全部为正, 那么, 对应的分解T A LL =是唯一的.在MATLAB 中, 用()L chol A =函数求得L , 再用\('\)X L L b =求得解.Guass 法(LU 分解)和cholesky 法的基础都是把线性方程组的矩阵分解为下三角矩阵和上三角矩阵的乘积, 但对于对称正定矩阵的情形, cholesky 比Gauss 法更加简便.我们也可以使用Householder 法则把矩阵分解为正交矩阵Q 和上三角矩阵R 的乘积, 称为QR 因子分解法.

给定n阶矩阵A, 则存在一个酉矩阵Q, 以及一个上三角矩阵R, 使得

=此外, 我们可以设法使矩阵R的对角元素都为正.如果A是可逆的, 则这A QR

时所对应的分解A QR

=函数求得Q, =是唯一的.在MATLAB 中, 用[,]()

Q R qr A

R, 再用\(\)

=求得解.

X R Q b

线性方程组的最小二乘解

线性最小二乘问题的解法在数据拟合、测量平差、控制理论等方面均得到广泛的应用。例如,已知m 对数据(,)i i t y (其中

1,2,

,i m =)和n 个已知函数()j h t (其中1,2,

,j n =)试构造线性组

1

()

n

j

j

j x h t =∑。用该线性组合最佳地拟合这m 对数据(,)i i t y (其中

1,2,

,i m =)即我们希望适当地选取组合系数j x (1,2,

,j n =),使

得在某种范数意义下,误差

1

()(),(1,2,

,)

n

i i j j i j r x y x h t i m ==-=∑能够达到

最小。令(),,(1,2,,;1,2,,)j i ij i i h t a y b i m j n ====。则上式可用矩阵向量形式把误差向量表为

()r x b Ax

=-,其中

1111

222

1222

1

2

()()(),()n n m n n nn r x a a a r x a a a r x A r x a a a ????

? ? ? ?== ? ? ? ?????

1212(,,

,),(,,

,)T T m n b y y y x x x x ==当m n =时,在上式中可要求()0r x =,

则估计12(,,

,)T n x x x x =的问题就转化为求解线性方程组。当m n >时,

一般()0r x ≠,最小二乘问题就是适当选取x 使误差()r x 在2范数意义下等于最小。 给定矩阵m n

A C

?∈及向量m b C ∈ ,寻找n

x C ∈满足

222

()min n

y C

r x b Ax Ay b ∈=-=-这就是线性最小二乘问题,其解也称为

线性方程组,m n

Ax b A C ?=∈的最小二乘解。在方程组不相容情形,它

可视为方程组在最小二乘意义下的最优近似解。在方程组相容时,则最小二乘解与通常意义下的解是一致的。

奇异值分解

1、奇异值与奇异值分解定理 奇异值定理: 设m n

A C ?∈,r=rank(A),则一定存在m 阶酉矩阵

U 和n 阶酉矩阵

V

1212(,,,)(

r

r

i

d

i

a

g i

σσσ

σ

σσ∑=≥

≥≥,且,而

使得H

A U

V =∑,称为A 的奇异值分解。

复数域内的奇异值:

(0)m n H r A C r A A ?∈>,的特征值为1210r r n λλλλλ+≥≥≥>=

==

则称1,2,,)i i n σ==为A 的正奇异值;当A 为零矩阵时,它的奇异值都是零。易见,矩阵A 的奇异值的个数等于A 的列数,A 的非零奇异值的个数等于rank(A)。 2、奇异值分解的理解

奇异值σ跟特征值类似,在矩阵Σ中也是从大到小排列,而且σ的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r 大的奇异值来近似描述矩阵。

r r r T r r r T v u v u v u V U V U A σσσ+++=∑=∑= 222111即A 可表示为r 个秩为一的举证的和,这是A 得奇异值分解的紧凑格式。 3、奇异值分解特征

奇异值分解的第一个特征是可以降维。A 表示 n 个 m 维向量 ,通过奇异值分解可表示成 m + n 个 r 维向量 ,若A 的秩 r

远远小于 m 和 n ,则通过奇异值分解可以大大降低 A 的维数。可以计算出 ,当 r

奇异值分解的第二个特征是奇异值对矩阵的扰动不敏感 ,而特征值对矩阵的扰动敏感。在数学上可以证明 ,奇异值的变化不会超过相应矩阵的变化 ,即对任何相同阶数的实矩阵A 、B ,

按从大到小排列的奇异值i σ和i ω,有2

B

A i

i i -≤-∑ωσ.

奇异值的第三个特征是奇异值的旋转不变性。即若 P 是正交阵 ,PA 的奇异值与A 的奇异值相同。奇异值的比例和旋转不变性特征在数字图像的旋转、 镜像、 平移、放大、缩小等几何变化方面有很好的应用。

奇异值的第四个特征是容易得到矩阵 A 的秩为 k (k ≤r)的一个最佳逼近矩阵。奇异值的这个特征可以应用于信号的分解和重构 ,提取有用信息 ,消除信号噪声。

讨论理解判别收敛条件

1.收敛性问题 现在来研究与方程组

f

Bx x +=对应的基本型迭代公式

),2,1,0()()1( =+=+k f Bx x k k

设*x 是方程组f Bx x +=(也即b Ax =)的就解,即有

f

Bx x +=**

要研究由迭代公式f Bx x k k +=+)()1(产生的序列)(k x 当 ∞→k 时是否

收敛于*x ,

)()(*)1((*)k k x x B x x -=-+ =)()1(*2--k x x B

=)()0(*1x x B k -+

可见当∞→k 时,是否有*)(x x k →,等价于是否有0→k B (零矩阵,

即k B 的每一个元素趋于零)

根据线性代数,任何n 阶矩阵B 都存在非奇异矩阵P ,使得 JP P B 1-= P J P B k k 1-= 其中J 为B 的Jordan

标准形 ????

?

?=1J J 2

J

n

n r J ???????

????

??

?=k k J J 1

k

J 2

n

n k r J ????????

???

??

?=i i J λ

1

i

λ

i

i n

n i ???????λ1

n n r

i i =∑=1

于是,可得

),,2,1;(0)(0)(0r i k J k J k B k

i k k =∞→→?∞→→?∞→→

这时,若设

???=λ2J ???λ1 ?????=λ3J λ1 ????

?

λ1 ????????=λm J λ1 1 λ ??

?

????

?

λ1

??

?=k

k

J λ2

????-k

k k λλ1=??

?k

λ

???

?

-k

k k

c λλ11

????

?=k

k

J λ3

k k k λλ1

-

?????---k

k k k k k λλλ122/)1(??

?

?

?=k

λ k k k c λλ1

1-

????

?

--k

k k k k c c λλλ1122

??????

?=k k

m

J λ

k

k k c λλ11-

112

2--k k k k c c λλ

??

????

?+--+--k

m k k m m k k m c c λλλ

2

2

1

1 其中

)!

(!!

m k m k c k

m -=

于是又可得到

),,2,1(1)(0r i k J i k i =

),,2,1(1r i =<λ,即 1)(

由上面就得到下面迭代法的收敛定理。 2.收敛性基本定理

定理 1 (迭代法收敛性基本定理)设方程组为

f

Bx x +=对任

意的初始向量)0(x ,解此方程组的迭代法 ),2,1,0()()1( =+=+k f Bx x k k 收敛的充分必要条件是迭代矩阵B 的谱半径 1)(

注意: 此定理为判断迭代法的敛散性提供了一个强有力的手段(充分必要条件)。然而,定理的条件往往不容易验证。因此,利用特征值上界性质B B ≤)(ρ,可以给出另一个条件较弱的结果。 定理 2 (迭代法收敛性充分条件) 如果迭代法 )2,1,0()()1( =+=+k f Bx x k k 的迭代矩阵B 的某一种算子范数1≤B ,则

(1) 对任意的初始向量)0(x ,迭代法收敛; (2) 迭代序列与方程组的解*x 存在误差估计式 )

1()()(*1---≤

-k k k x x B

B x x

)

0()1()(*1x x B

B

x x k

k --≤

-

证明 (1)由条件1≤B 及B B ≤)(ρ从而1)(<≤B B ρ,按定理3.3.2 可知迭代法收敛。

(2)

)

()()1(*)1()(*++-+-=-k k k k x x x x x x

=)

()()(*)1()(k k k x x B x x B -+--

)

(*)1()(k k k x x B x x B -+-≤-

整理得

)

1()()(*1---≤

-k k k x x B

B x x

由 )()2()1()1(----=-k k k k x x B x x 得 )

2()1()1()(----≤-k k k k x x B x x

则可得(2).

3.其他定理

设 n

n ij R a A ?∈=)(,若 ),,2,1(||||1n i a

a n

i

j j ij

ii =>

∑≠=则称A 为严格对角占

优矩阵。

容易证明,若 n n ij R a A ?∈=)(严格对角占优,则 ),,2,1(0n i a ii =≠,且A 为非奇异。

事实上,前者由定义可得到。后者用反证法,设A 奇异,则有0≠x 满足0=Ax 。又设其中k x 为0||>=∞x x k ,则

0=Ax 的第k 个方程为

∑≠=-

=n

k

j j j

kj

k kk x a

x a 1

由此有 ∑∑

≠=≠=≤

≤n

k

j j kj

n

k

j j k j kj

kk a x x a a 11|||

|||||

定理 3 若方程组

b Ax =中 n n ij R a A ?∈=)(为

严格对角占优矩阵,

则解此方程组的J 法和GS 法收敛。

定理 3.3.4 若方程组b Ax =中n n ij R a A ?∈=)(为对称正定矩阵,则解此方程组的GS 法收敛。

4.收敛速度

由定理2 (2)式可知

(1))0(x越接近*x,迭代法收敛速度越快,即收敛速度与初值选取有关;

(2 ) 迭代矩阵的范数B越小,(当然应有1<

B),迭代法收敛也越快;

(3)由于B

ρ越小,迭代收(ρ,所以迭代矩阵的谱半径)

)

B≤

(B

敛越快。

讨论设计算法及编程实现共轭斜量法根据书P175的算法表述可得算法流程图如下:

利用Matlab编程如下:

A=[1 -.1 -.2;-.1 1 -.2;-.2 -.2 1];

b=[.72 .83 .84]';

x=F(A,b)

F.m:

function x=F(A,b)

N=size(A,2);

x=rand(N,1);

r=b-A*x;

p=r;

for k=1:N

aerf=sum(r.*p)/sum((A*p).*p);

x=x+aerf*p;

r=r-aerf*A*p;

if r==0

break;

end

beita=sum(r.*(A*p))/sum(A*p.*p); p=r-beita*p;

end

结果与书P177结果一致。验证成功。

线性方程组有解的判别定理

非齐次线性方程组同解的讨论 摘要 本文主要讨论两个非齐次线性方程组有相同解的条件,即如何判定这两个非齐次线性方程组有相同的解. 关键词 非齐次线性方程组 同解 陪集 零空间 引言 无论是解齐次线性方程组,还是解非齐次线性方程组.所用的方法都是消元法,即对其系数矩阵或增广矩阵施以行的初等变换,而得到比较简单的同解方程组.用矩阵理论来说,就是系数矩阵或增广矩阵左乘以可逆矩阵后所得线性方程组与原线性方程组据有相同的解.这仅为问题的一面,而问题的反面是,如果两个非齐次线性方程组同解,则它们的系数矩阵或增广矩阵之间是否存在一个可逆矩阵?答案是肯定的,此即是本文主要解决的问题。 下面是一个非齐次线性方程组,我们用矩阵的形式写出 11121121222212n n m m mn m a x a x a x b a x a x a x b a x a x a x b +++=??+++=????+++=? 令 A= 111212122212n n m m mn a a a a a a a a a ???????????? ,b= 12m b b b ???????????? 。 即非齐次线性方程组可写成Ax b =。 一 、线性方程组同解的性质 引理 1 如果非齐次线性方程组Ax b =与Bx d =同解,则矩阵[]A b 与[]B d 的秩相等. 证明 设非齐次线性方程组Ax b =的导出组的基础解系为111,,,r ξξξ ,其中1 r 为矩阵[]A b 的秩,再设非齐次线性方程组Bx=d 的导出组的基础解系为 2 12,,,r ηηη ,其中2r 为矩阵[]B d 的秩,如果*η是非齐次线性方程组Ax=b 与Bx=d 特解,由于这两个方程组同解,所以向量组1*11,,,,r ξξξη 与向量组2*12,,,,r ηηηη 等价。从而这两个线性无关的向量组所含的向量个数相等,于是有12,r r =则矩阵[]A b 与[]B d 的秩相等. 引理[1]2 设A 、B 为m n ?矩阵,则齐次线性方程组0Ax =与0Bx =同解的充

MATLAB代码 解线性方程组的迭代法

解线性方程组的迭代法 1.rs里查森迭代法求线性方程组Ax=b的解 function[x,n]=rs(A,b,x0,eps,M) if(nargin==3) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值elseif(nargin==4) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-A)*x0+b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 2.crs里查森参数迭代法求线性方程组Ax=b的解 function[x,n]=crs(A,b,x0,w,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-w*A)*x0+w*b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x;

if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 3.grs里查森迭代法求线性方程组Ax=b的解 function[x,n]=grs(A,b,x0,W,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1;%前后两次迭代结果误差 %迭代过程 while(tol>eps) x=(I-W*A)*x0+W*b;%迭代公式 n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 4.jacobi雅可比迭代法求线性方程组Ax=b的解 function[x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200; elseif nargin<3 error return elseif nargin==5 M=varargin{1}; end D=diag(diag(A));%求A的对角矩阵 L=-tril(A,-1);%求A的下三角阵

线性方程组解的判定

1 / 3 第四节 线性方程组解的判定 从本节开始,讨论含有n 个未知量、m 个方程的线性方程组的解. 11112211211222221122n n n n m m mn n m a x a x a x b a x a x a x b a x a x a x b +++=??+++=????+++= ? (13—2) 主要问题是要判断出方程组(13-2)何时有解?何时无解?有解时解有多少?如何求出方程组的解。 线性方程组有没有解,以及有怎样的解,完全决定于方程组的系数和常数项。因此,将线性方程组写成矩阵形式或向量形式,以矩阵或向量作为讨论线性方程组的工具,将带来极大的方便。 方程组(13-2)中各未知量的系数组成的矩阵111212122212n n m m mn a a a a a a A a a a ??????=?????? 称为方程组(13-2)的系数矩阵.由各系数与常数项组成的矩阵,称为增广矩阵,记作A ,即 11121121 222212n n m m mn m a a a b a a a b A a a a b ??????=?????? 方程组(13-2)中的未知量组成一个n 行、1列的矩阵(或列向量),记作X ;常数项组成一个m 行、1列 的矩阵(或列向量),记作b ,即12n x x X x ??????=??????,12m b b b b ??????=?????? 由矩阵运算,方程组(13—2)实际上是如下关系111212122212 n n m m mn a a a a a a a a a ????????????12n x x x ????????????=12m b b b ???????????? 即 AX=b

数值分析5-用Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组

作业六:分别编写用Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组Ax=B的标准程序,并求下列方程组的解。 可取初始向量 X(0) =(0,0,0)’; 迭代终止条件||x(k+1)-x(k)||<=10e-6 (1) = (2) = Jacobi迭代法: 流程图 开 始 判断b中的最大值 有没有比误差大 给x赋初值 进行迭代 求出x,弱到100次还没到,警告不收 结束

程序 clear;clc; A=[8,-1,1;2,10,01;1,1,-5]; b=[1;4;3]; e=1e-6; x0=[0;0;0]'; n=length(A); x=zeros(n,1); k=0; r=max(abs(b)); while r>e for i=1:n d=A(i,i); if abs(d)100 warning('不收敛'); end end x=x0;

程序结果(1)

(2)

Gauss-Seidel迭代法: 程序 clear;clc; %A=[8,-1,1;2,10,01;1,1,-5]; %b=[1;4;3]; A=[5,2,1;-1,4,2;2,-3,10]; b=[-12;20;3]; m=size(A); if m(1)~=m(2) error('矩阵A不是方阵'); end n=length(b); %初始化 N=0;%迭代次数 L=zeros(n);%分解A=D+L+U,D是对角阵,L是下三角阵,U是上三角阵U=zeros(n); D=zeros(n); G=zeros(n);%G=-inv(D+L)*U d=zeros(n,1);%d=inv(D+L)*b x=zeros(n,1); for i=1:n%初始化L和U for j=1:n if ij U(i,j)=A(i,j); end end end for i=1:n%初始化D D(i,i)=A(i,i); end G=-inv(D+L)*U;%初始化G d=(D+L)\b;%初始化d %迭代开始 x1=x; x2=G*x+d; while norm(x2-x1,inf)>10^(-6)

【免费下载】线性方程组的解空间

第六章 向量空间 6.1 定义和例子 6.2 子空间 6.3 向量的线性相关性 6.4 基和维数 6.5 坐标 6.6 向量空间的同构 6.7 矩阵的秩齐次线性方程组的解空间返回教案总目录6.7矩阵的秩,齐次线性方程组的解空间一、教学思考 1、矩阵的秩与线性方程组解的理论在前面已经有过讨论,本节运用向量空间的有关理论重新认识矩阵的秩的几何意义,讨论线性方程组解的结构。2、注意:齐次线性方程组(含n 个未知量)的解的集合构成n F 的子空间,而非齐次线性方程组的解的集合非也。3、注意具体方法:1)证矩阵的行空间与列空间的维数相等;2)求齐次线性方程组的基础解系。 二、内容要求 1、内容:矩阵的秩的几何意义,齐次线性方程组的解空间。 2、要求:理解掌握矩阵的秩的几何意义,齐次线性方程组的基础解系的求法。三、教学过程 1、矩阵的秩的几何意义几个术语:设)(F M A n m ?∈,????? ??=mn m n a a a a A 1111,A 的每一行看作n F 的一个元素,叫做A 的行向量,用),2,1(m i i =α表示;由),2,1(m i i =α生成的n F 的子空间),,(1m L αα 叫做矩阵A 的行空间。 类似地,A 的每一列看作m F 的一个元素,叫做A 的列向量;由A 的n 个列向量生成的m F 的子空间叫做矩阵A 的列空间。注:)(F M A n m ?∈的行空间与列空间一般不同,分别是n F 与m F 的子空间;下证其维数相同。 引理6.7.1设)(F M A n m ?∈,1)若PA B =,P 是一个m 阶可逆矩阵,则B 与A 有相同的行空间;2)若AQ C =,Q 是一个n 阶可逆矩阵,则C 与A 有相同的列空间。分析:设()()()m m ij n m ij n m ij p P b B a A ???===,,,),2,1(m i i =α是A 的行向量,),2,1(m j j =β是B 的行向量;只需证这两组向量等价。

直接法解线性方程组

直接法解线性方程组 实习题目: 仿照三对角方程组的追赶法解五对角方程组,其中系数矩阵为A,右端向量为:r。将A分解为LU。其中L为下三角,U为单位上三角。A为7*7阶的矩阵,其中对角元为4 5 6 7 8 9 10。上下次三角对角线元素为1 2 3 4 5 6 ;上下第二条对角线元素为1 2 3 4 5;右端项为:1 2 3 4 5 6 7. 要求:输出系数矩阵A,右端向量r,下三角矩阵L,单位上三角矩阵U,下三角矩阵Ly=b 的解向量y,单位上三角方程组Ux=y的解(即最终的解向量。保留七位小数。 实现方法:通过MATLAB编程实现。建立MATLAB脚本文件。 首先通仿照三对角方程组的追赶法得到五对角矩阵的实现算法。 然后又MATLAB编程实现。 实验结果(MATLAB截图):

结果分析: 通过提供的计算数据得到最终的解向量x及中间过程产生的下三角矩阵L,单位上三角矩阵U,下三角矩阵Ly=b 的解向量y。 同时为了确保算法的正确性,我还通过MATLAB的左除运算检验得使用此算法的计算结果正确。 这里由于是用MATLAB,最终结果为分数形式,考虑到精确解一般比近似解更好,因此未化成七位小数形式。 算法实现分析: 首先计算L和U的元素。由于已知L和U的特定形式(及除了对角线和上下次对角线和上下第二条对角线外,其余为0。故通过矩阵的乘法即可得到LU中元素的计算公式。(具体算法见MATLAB程序) 算法优劣点:

1.解此题时看上去要用较多的存储单元,但实际上只需存储系数矩阵A的不为0的元素。 2.A分解为LU计算完成后,后续计算x和y的“追赶过程”运算量一般来说计算量比较小。 3.此题也可用之前的LU算法求解。但此处算法与一般的LU分解的解线性方程组的算法,相比计算量小了不少。 4.对于此处特定的对称的系数矩阵A,算法还可以进一步优化。 5.由于我在此算法中A.L U的各对角值均用一个列向量表示,一个缺点在于输出A,L,U时要重新组成矩阵形式。不过优点在于减少了存储单元。 6.另一缺点是,未能将结果封装成一个文件。 后附MATLAB代码: c=[4,5,6,7,8,9,10];d=[1,2,3,4,5,6,0];b=[0,1,2,3,4,5,6];e=[1,2,3,4,5,0,0];a=[0,0,1,2,3,4,5]; r=[1 2 3 4 5 6 7]; w=zeros(7,1);x=zeros(7,1);y=zeros(7,1);m=zeros(7,1);n=zeros(7,1);h=zeros(7,1); w(1)=c(1);m(1)=d(1)/c(1);n(1)=e(1)/c(1); h(2)=b(2);w(2)=c(2)-h(2)*m(1);m(2)=(d(2)-b(2)*n(1))/w(2);n(2)=e(2)/w(2); for k=3:5 h(k)=b(k)-a(k)*m(k-2); w(k)=c(k)-a(k)*n(k-2)-h(k)*m(k-1); m(k)=(d(k)-h(k)*n(k-1))/w(k); n(k)=e(k)/w(k); end h(6)=b(6)-a(6)*m(4); w(6)=c(6)-a(6)*n(4)-h(6)*m(5); m(6)=(d(6)-h(6)*n(5))/w(6); h(7)=b(7)-a(7)*m(5); w(7)=c(7)-a(7)*n(5)-h(7)*m(6); y(1)=r(1)/w(1);y(2)=(r(2)-h(2)*y(1))/w(2); for k=3:7 y(k)=(r(k)-a(k)*y(k-2)-h(k)*y(k-1))/w(k); end x(7)=y(7); x(6)=y(6)-x(7)*m(6);

求解线性方程组——超松弛迭代法(c)

求解线性方程组——超松弛迭代法 #include #include using namespace std; float *one_array_malloc(int n); //一维数组分配float **two_array_malloc(int m,int n); //二维数组分配float matrix_category(float* x,int n); int main() { const int MAX=100;//最大迭代次数 int n,i,j,k; float** a; float* x_0; //初始向量 float* x_k; //迭代向量 float precision; //精度 float w; //松弛因子 cout<<"输入精度e:"; cin>>precision; cout<>n; a=two_array_malloc(n,n+1); cout<>a[i][j]; } } x_0=one_array_malloc(n); cout<>x_0[i]; } x_k=one_array_malloc(n);

cout<<"输入松弛因子w (1>w; float temp; //迭代过程 for(k=0;k

线性方程组解的结构

线性方程组解的结构 我们在第一节讨论了线性方程组的解的情况,现在进一步研究它的解的结构。 一、 齐次线性方程组解的结构 齐次线性方程组的矩阵形式为 AX=0 (1) 其中n m ij a A ?=)(,???? ??? ??=n x x x X 21。 齐次线性方程组(1)的解有下列性质: (1) 如果21,X X 是齐次线性方程组(1)的两个解,则21X X +也是它的解。 证:因为21,X X 是齐次线性方程组(1)的两个解,因此有: 01=AX , 02=AX 得:000)(2121=+=+=+AX AX X X A 所以21X X +也是齐次线性方程组(1)的解。 (2) 如果0X 是齐次线性方程组(1)的解,则0X C ?也是它的解。(C 是常数) 证:已知0X 是齐次线性方程组(1)的解,所以有00=AX 从而 00)()(00=?==C AX C CX A 即0X C ?也是齐次线性方程组(1)的解。 由性质(1),(2)可得: (3)如果s X X X ,,,21 都是齐次线性方程组(1)的解,则其线性组合 s s X C X C X C +++ 2211也是它的解。其中s C C C ,,,21 都是任意常数。 当一个齐次线性方程组有非零解,即它有无穷多解,这无穷多解构成了一个向量组(称为解向量组)。若我们能求出这解向量组的一个极大线性无关组,那么就能用它的线性组合表示这个齐次线性方程组的全部解。 定义1:如果s ααα,,,21 是齐次线性方程组(1)的解向量组的一个极大线性

无关组,则称s ααα,,,21 是齐次线性方程组(1)的一个基础解系。 定理1:如果齐次线性方程组(1)的系数矩阵A 的秩n r A r <=)(,则齐次线性方程组的基础解系一定存在,且每个基础解系中恰恰含有r n -个解。 证:因为n r A r <=)(,所以齐次线性方程组有无穷多解,且齐次线性方程组的一般解为: ?? ?????----=----=----=++++++++++++n rn r rr r rr r n n r r r r n n r r r r x K x K x K x x K x K x K x x K x K x K x 22112222112212211111 (1) 其中n r r x x x ,,,21 ++为自由未知量。对n-r 个自由未知量分别取???? ?? ? ????????? ????????? ??100,,010,001 代入(1)可得齐次线性方程组的n-r 个解: ??? ?? ?? ????? ? ??---=????????????? ??---=????????????? ??---=-++++++100,,010,00121222212112111 rn n n r n rr r r rr r r K K K K K K K K K ααα 下面证明r n -ααα,,,21 是齐次线性方程组的一个基础解系,首先证明 r n -ααα,,,21 线性无关。因为向量组???? ?? ? ????????? ????????? ??100,,010,001 是线性无关,则由上节所证 明的性质得r n -ααα,,,21 线性无关。 再证齐次线性方程组的任意一个解???? ?? ? ??=n d d d X 21都可由r n -ααα,,,21 线性表

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

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

一. 问题描述 用Gauss-Seidel 迭代法求解线性方程组 由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值。使用了两倍的存储空间,浪费了存储空间。若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量 ) 1(+k i x 时,用最新分量 ) 1(1 +k x , ???+) 1(2 k x ) 1(1 -+k i x 代替旧分量 ) (1 k x , ???) (2 k 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( 其迭代格式为 T n x x x x ) ()0()0(2)0(1)0(,,,???= (初始向量), ) (1 1 1 1 1 )()1()1(∑∑-=-+=++--=i j i i j k j ij k j ij i ii i i x a x a b a x )210i 210(n k ???=???=,,,;,,, 或者 ?? ???--=???=???==?+=∑∑-=-+=+++) (1)210i 210(111 1)()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 ,,,;,,, 三. 程序框图

线性方程组解的判定

第四节 线性方程组解的判定 从本节开始,讨论含有n 个未知量、m 个方程的线性方程组的解。 11112211211222 22 11 22n n n n m m mn n m a x a x a x b a x a x a x b a x a x a x b +++=??+ ++= ????+++=? (13—2) 主要问题是要判断出方程组(13-2)何时有解?何时无解?有解时解有多少?如何求出方程组的解。 线性方程组有没有解,以及有怎样的解,完全决定于方程组的系数和常数项。因此,将线性方程组写成矩阵形式或向量形式,以矩阵或向量作为讨论线性方程组的工具,将带来极大的方便。 方程组(13-2)中各未知量的系数组成的矩阵11121212221 2 n n m m mn a a a a a a A a a a ? ?? ? ? ?=?? ?? ? ? 称为方程组(13-2)的系数矩阵。由各系数与常数项组成的矩阵,称为增广矩阵,记作A ,即 11121121 222212 n n m m mn m a a a b a a a b A a a a b ?? ????=??? ??? 方程组(13-2)中的未知量组成一个n 行、1列的矩阵(或列向量),记作X;常数项组成一个m 行、1 列的矩阵(或列向量),记作b ,即12n x x X x ??????=?????? ,12 m b b b b ?? ????=?????? 由矩阵运算,方程组(13-2)实际上是如下关系111212122212 n n m m mn a a a a a a a a a ? ?? ? ? ? ?? ?? ? ? 12n x x x ???????????? =12m b b b ???????????? 即 AX=b

第三章 解线性方程组的直接方法

习题 3.1 1. 求下列方阵的秩: (1)??? ?? ??--340313021201;(2)????? ??----174034301320;(3)??????? ? ?---------12433023221453334 311 ;(4)??????? ??------34732038234202173132. 2. 求下列方阵的逆矩阵: (1) ?? ? ?? ? ?323513123; (2) ????? ?? ??-----1210232112201023. 3. 解下列矩阵方程 (1) 设 ???? ? ??--=????? ??--=1322 31,113122214B A ,求X 使B AX =; (2) 设 ??? ? ??-=? ???? ??---=132 321,433312120B A ,求X 使B XA =; (3) ?? ??? ??-=????? ??-=????? ??-=112510324, 123011113,1120111111C B A ,求X 使C AXB =. 4. 求下列行列式 (1)? ? ? ??? ??????71 1 0251020214214 ;(2)????????????-260523211213 141 2;(3)?? ? ???????---ef cf bf de cd bd ae ac ab ; (4) ????????????---d c b a 100110011001. 5. 判断下列线性方程组解的情况,如果有唯一解,则求出解. ???????=+++-=----=+-+=+++;01123,2532,242,5)1(432143214 3214321x x x x x x x x x x x x x x x x ? ? ???????=+=++=++=++=+;15,065,065,065,165)2(545434323212 1x x x x x x x x x x x x x (3) ? ?? ??=-++=-+-=-+-;3222, 2353, 132432143214321x x x x x x x x x x x x (4) ?????=---=--+=+++.034,0222,022432143214321x x x x x x x x x x x x 习题 3.2 1. 用回代法解上三角形线性方程组 (1)??? ????==+-=-+=++;63,3,6333,8484443432321x x x x x x x x x (2)?? ???? ?-=-=+--=+--=-+.63,1032,92,9244343242 1x x x x x x x x x 2. 用回代法解下三角形线性方程组

迭代法解线性方程组

迭代法解线性方程组作业 沈欢00986096 北京大学工学院,北京100871 2011年10月12日 摘要 由所给矩阵生成系数矩阵A和右端项b,分析系数矩阵A,并用Jacobi迭代法、GS迭代法、SOR(逐步松弛迭代法)解方程组Ax=b 1生成系数矩阵A、右端项b,并分析矩阵A 由文件”gr900900c rg.mm”得到了以.mm格式描述的系数矩阵A。A矩阵是900?900的大型稀 疏对称矩阵。于是,在matlaB中,使用”A=zeros(900,900)”语句生成900?900的零矩阵。再 按照.mm文件中的描述,分别对第i行、第j列的元素赋对应的值,就生成了系数矩阵A,并 将A存为.mat文件以便之后应用。 由于右端项是全为1的列向量,所以由语句”b=ones(900,1)”生成。 得到了矩阵A后,求其行列式,使用函数”det(A)”,求得结果为”Inf”,证明行列式太大,matlaB无法显示。由此证明,矩阵A可逆,线性方程组 Ax=b 有唯一解。 接着,判断A矩阵是否是对称矩阵(其实,这步是没有必要的,因为A矩阵本身是对称矩阵,是.mm格式中的矩阵按对称阵生成的)。如果A是对称矩阵,那么 A?A T=0 。于是,令B=A?A T,并对B求∞范数。结果显示: B ∞=0,所以,B是零矩阵,也就是:A是对称矩阵。 然后,求A的三个条件数: Cond(A)= A ? A?1 所求结果是,对应于1范数的条件数为:377.2334;对应于2范数的条件数为:194.5739;对应 于3范数的条件数为:377.2334; 1

从以上结果我们看出,A是可逆矩阵,但是A的条件数很大,所以,Ax=b有唯一解并且矩阵A相对不稳定。所以,我们可以用迭代方法来求解该线性方程组,但是由于A的条件数太大迭代次数一般而言会比较多。 2Jacobi迭代法 Jacobi迭代方法的程序流程图如图所示: 图1:Jacobi迭代方法程序流程图 在上述流程中,取x0=[1,1,...,1]T将精度设为accuracy=10?3,需要误差满足: error= x k+1?x k x k+1

解线性方程组

课程设计阶段性报告 班级:学号:姓名:申报等级: 题目:线性方程组求解 1.题目要求:输入是N(N<256)元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。可以用高斯消去法求解,也可以采用其它方法。 2.设计内容描述:将线性方程组做成增广矩阵,对增广矩阵进行变换然后采用高斯消元法消去元素,从而得到上三角矩阵,再对得到的上三角矩阵进行回代操作,即可以得到方程组的解。 3.编译环境及子函数介绍:我使用Dev-C++环境编译的,调用uptrbk() FindMax()和ExchangeRow(),uptrbk是上三角变换函数,FindMax()用于找出列向量中绝对值最大项的标号,ExchangeRow()用于交换两行 4. 程序源代码: #include #include #include //在列向量中寻找绝对值最大的项,并返回该项的标号 int FindMax(int p,int N,double *A) { int i=0,j=0; double max=0.0; for(i=p;imax) { j=i; max=fabs(A[i*(N+1)+p]); } } return j;

//交换矩阵中的两行 void ExchangeRow(int p,int j,double *A,int N) { int i=0; double C=0.0; for(i=0;i

实验解线性方程组的基本迭代法实验

数值分析实验报告

0 a 12 K a 1,n 1 K a 2,n 1 U O M 则有: 第一步: Jacobi 迭代法 a 1n a 2n M , 则有: A D L U a n 1,n Ax b A A x D b L U (D L U)x b Dx (L U)x b x D (L U)x D b 令 J D (L U) 则称 J 为雅克比迭代矩阵 f D b 由此可得雅克比迭代的迭代格式如下: x (0) , 初始向量 x (k 1) Jx (k) f ,k 0,1,2,L 第二步 Gauss-Seidel 迭代法 Ax b (D L U )x b (D L)x Ux b x (D L) Ux (D L) b A D L U a 11 a 12 L a 1n a 11 A a 21 a 22 L a 2n a 22 M MM MO a n1 a n2 L a nn a 11 得到 D a 22 O a nn 由 a 21 0 M M O a n 1,1 a n 1,2 L 0 a nn a n1 a n2 L a n,n a 21 L M M O a n 1,1 a n 1,2 L a n1 a n2 L a n,n 1 a 12 K a 1,n 1 a 1n 0 K a 2,n 1 a 2n O M M a n 1,n 10

令 G (D L) U ,则称G 为Gauss-Seidel 迭代矩阵 f (D L) b 由此可得 Gauss-Seidel 迭代的迭代格式如下: x (0) , 初始向量 第三步 SOR 迭代法 w0 AD L U 1 ( D 1 wL ((1 w)D wU )) (D 1 wL) ((1 w)D wU ) w w w 令M w 1 (D wL), N 1 ((1 w)D wU )则有:A MN w w Ax b AM L W N M (M N )x b Mx Nx b x M Nx M b N M, 令W f Mb 带入 N 的值可有 L W ((1 w)D wU) (D wL) 1((1 w)D wU) (D wL) f 1 b w 1(D wL) 1b 1 (D wL) w 称 L W 为 SOR 迭代矩阵,由此可得 SOR 迭代的迭代格式如下: x (0) ,初始向量 二、算法程序 Jacobi 迭代法的 M 文件: function [y,n]=Jacobi(A,b,x0,eps) %************************************************* %函数名称 Jacobi 雅克比迭代函数 %参数解释 A 系数矩阵 % b 常数项 % x0 估计解向量 x (k 1) Gx (k) f ,k 0,1,2,L (k 1) f,k 0,1,2,L

解线性方程组基思想

解线性方程组基思想

————————————————————————————————作者:————————————————————————————————日期:

四:基本方法 基本思路将在解题的过程中得到体现。 1.(求线性方程组的唯一解或特解),这类问题的求法分为两类:一类主要用于解低阶稠 密矩阵——直接法;一类是解大型稀疏矩阵——迭代法。 1.1利用矩阵除法求线性方程组的特解(或一个解) 方程:AX=b,解法:X=A\b,(注意此处’\’不是’/’) 例1-1 求方程组的解。 解: A = ; = ;b=(1,0,0,0,1)’ 由于>>rank(A)=5,rank( )=5 %求秩,此为R(A)=R()>=n的情形,有唯一解。 >>X= A\b %求解X =(2.2662, -1.7218, 1.0571,-0.5940, 0.3188)’ 或用函数rref 求解,>>sv=rref(A:b);所得sv的最后一列即为所要求的解。 1.2 利用矩阵的LU、QR和cholesky分解求方程组的解 这三种分解,在求解大型方程组时很有用。其优点是运算速度快、可以节省磁盘空间、节省内存。 I) LU分解又称Gauss消去分解,可把任意方阵分解为下三角矩阵的基本变换形式(行交换)和上三角矩阵的乘积。即A=LU,L为下三角阵,U为上三角阵。 则:A*X=b 变成L*U*X=b 所以X=U\(L\b) 这样可以大大提高运算速度。命令[L,U]=lu (A) 在matlab中可以编如下通用m 文件: 在Matlab中建立M文件如下 % exp1.m A;b; [L,U]=lu (A); X=U\(L\b) II)Cholesky分解 若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即:其中R为上三角阵。 方程A*X=b 变成所以 在Matlab中建立M文件如下 % exp2.m A;b; [R’,R]=chol(A); X=R\(R’\b) III)QR分解 对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形 式,即:A=QR 方程A*X=b 变形成QRX=b 所以X=R\(Q\b)

线性方程组解的几何意义汇总

设有三元非齐次线性方程组 线性方程组解的几何意义 ???????=++=++=++, ,,)1(22221111m m m m d z c y b x a d z c y b x a d z c y b x a 我们来讨论一下三元非齐次线性方程组解的几何意义.

2) 有唯一解这时方程组(1) 中的m 个方?? ???=+--=--=+,423, 32,123z y x y x z x 该方程组有唯一解.817,21,4 7??? ??--则方程组(1) 的解有以下三种情况: 1) 无解这时方程组(1) 中的m 个方程所表示的平面既不交于一点, 也不共线、共面. 程所表示的平面交于一点. 例如

其几何意义如图3 -11 所示. 2x-y=-3 3x+2z=-1 x-3y+2z=4 图3-11

交直线所确定.3) 有无穷多组解这时又可分为两种情形:情形一自由变量, 基础解系中有两个向量,其一般解的形式为 γ=c 1η1+ c 2η2+ γ0(c 1, c 2为任意常数).这时方程组的所有解构成一个平面, 而这个平面是由过点γ0且分别以η1、η2为方向向量的两条相A 的秩=A 的秩= 1 .此时,有两个γ=c 1η1+ c 2η2+ γ0 称为平面的参数方程.

例如, 设保留方程组为 x + y + z = 3, 则可求得其通解为 . 11110101121???? ? ??+????? ??-+????? ??-=c c x

则过点P (1,1,1) 分别以(1,-1,0)T , (1,0,-1)T 为方向,1 10111:,01111 1:21--=-=--=--=-z y x L z y x L 则这两条相交直线L 1, L 2所确定的平面的方程即向量的两直线的方程分别为 为x + y + z = 3 . 如图3-12

线性方程组的解法及其应用

线性方程组的解法及其应用 The solution of linear equation and its application 专业:测控技术与仪器 班级: 2010-1班 作者:刘颖 学号: 20100310110105

摘要 线性方程组是线性代数的一个重要组成部分,也在现实生产生活中有着广泛的运用,在电子工程、软件开发、人员管理、交通运输等领域都起着重要的作用。在一些学科领域的研究中,线性方程组也有着不可撼动的辅助性作用,在实验和调查后期利用线性方程组对大量的数据进行处理是很方便简捷的选择。本文主要围绕如何解线性方程组来进行讲解,对于不同类型的线性方程组的不同方法,并简述线性方程组的一些实际应用。 关键词: 齐次线性方程组,非齐次线性方程组,克莱姆法则,消元法,矩阵,矩阵的秩,特解,通解。

Abstract Linear equations linear algebra is one of the important component parts, and in real life has extensive production use,and it plays an important role in electronic engineering, software development, personnel management, transportation, etc. In some discipline study, it also has the reigns of linear equations of the auxiliary function.In experiment and survey using the linear equations of the late on the data processing is very convenient simple choice. This article, focusing on how to solve linear equations to explain, for different types of linear equations of different methods, and briefly introduces some of the practical application of linear equations. Keywords: Homogeneous linear equations, Non homogeneous linear equation,Clem’s law,Elimination method,Matrix,Rank of matrix,Special solution,General solution.