当前位置:文档之家› 线性方程组的解空间

线性方程组的解空间

线性方程组的解空间
线性方程组的解空间

第六章 向量空间 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 的行向量;只需证这两组向量等价。

由题述关系PA B =得:???

?

? ??==m im i im i i p p A p p ααβ 111),,(),,(

=),,2,1(;11m i p p m im i =++αα

即B 的每个行向量都可以由A 的行向量线性表示;因为P 可逆,有B P A 1-=,同上得A 每个行向量都可以由B 的行向量线性表示,这样这两组向量等价。

定理6.7.2矩阵)(F M A n m ?∈的行空间的维数等于列空间的维数,等于这个矩阵的秩。

证法:设r A r =)(,分别证行、列空间的维数为r 。由维数的定义及行空间的概念,只需证行(列)空间的生成元的极大无关组含r 个向量;为此不直接讨论A ,由引理讨论讨论与A 有相同行空间的一个矩阵,可结合有关矩阵的结论:

存在m 阶可逆矩阵P 和n 阶可逆矩阵Q ,使得???

?

??=οοοr I PAQ 。

证明:设r A r =)(,则存在m 阶可逆矩阵P 和n 阶可逆矩阵Q ,使得???? ??=οοοr I PAQ (1),两边右乘1

-Q 得1-???

? ??=Q I PA r οοο,上式右端中后r

m -行全为0,而前r 行即为1-Q 的前r 行;由于1

-Q 可逆,所以它的行向量线性无关,因而它的前r 行也线性无关,由此得上式右端乘积矩阵的行空间的维数为r ,由引理A 的行空间的维数为r 。

由(1)类似得?

??

? ??=-οο

οr I P AQ 1,可得A 的列空间的维数也为r 。 定义:矩阵A 的行(列)向量组的极大无关组所含(行(列)空间的维数)

向量的个数,叫做矩阵A 的秩。

2、线性方程组的解的结构 1)再证线性方程组有解的判定定理:“数域F 上线性方程组有解的充要条件是它的系数矩阵与增广矩阵的秩相同。”

证明:设线性方程组???

??=++=++m n mn m n n b

x a x a b x a x a 1

111111 (1)令n αα,,1 表示(1)

的系数矩阵A 的列向量,???

?

?

??=m b b 1β,则(1)可写为:

βαα=++n n x x 11 (2)

必要性)若(1)有解,即存在n x x ,,1 使(2)成立,即β可由n αα,,1 线性表示,从而n αα,,1 与βαα,,,1n 等价,进而L (n αα,,1 )= L (βαα,,,1n )

,即A 与A 的列空间相同,由定理)()(A r A r =。 充分性)若)()(A r A r =,由定理2),,,(dim ),,(dim 11βααααn n L L =即A 与

A 的列空间维数相同,又因n αα,,1 的极大无关组一定是βαα,,,1n 的线性无

关组,所以),,,(),,(11βααααn n L L =,即),,(1n L ααβ ∈,因而β可由

n αα,,1 线性表示,所以(1)有解。

2)齐次线性方程组的解空间 设?????=++=++0

01

11111n mn m n n x a x a x a x a

(3)是数域F 上一个齐次线性方程组,令A 为其系数矩阵,则(3)可写为???

?? ??=????? ??001 n x x A (4)或ο=AX ;(3)的每一个解

都可以看作n F 的一个向量,叫做(3)的一个解向量。令S 表示(3)的全体解向量构成的集合;首先:因S ∈ο,所以Φ≠S ;

其次:F b a S ∈?∈?,,,ηξ,有οηξηξ=+=+bA aA b a A )(,即S b a ∈+ηξ。因此S 作成n F 的一个子空间,这个子空间叫做齐次线性方程组(3)的解空间。 注:当ο=AX 仅有零解时,{}ο=S ;

当ο=AX 有非零解时,上述讨论反映了齐次线性方程组的解的两个重要性质:1)两解之和为解;2)一解之倍数仍为解。从而有无穷多解,那么这些解是否可用有限个解表出,上知(3)的解集S 是n F 的一个子空间,从而说明这是可以的,只需求出S 的一个基即可。下面就来解决这个问题,即求(3)的解空间的一个基。

重新回顾解线性方程组的过程:设(3)的系数矩阵A 的秩为)(n r <,则A 可

经过一系列(行)初等变换化为?

??

? ??----r n r m r r m r n r r

C I ,,,οο,与此相应的齐次线性方程组为:(5)????

?

??????===+++=+++++++00000

01111111 n rn r rr r n n r r y c y c y y c y c y ,这里n y y ,,1 是n x x ,,1 的重新编号。(5)

有r n -个自由未知量n r y y ,,1 +,依次让它们取)1,,0,0(,),0,,1,0(),0,,0,1( ,

可得(5)的r n -个解向量:??????

?

???

?

??--=??????????? ??--=??????????? ??--=++++++100,,010,001122121111 rn n n rr r r rr r r c c c c c c ηηη。下面

证其是(5)的解空间的一个基。

首先:n r ηη,,1 +线性无关。事实上设οηη=++++n n r r k k 11,由下面r n -个

分量易得01===+n r k k 。

其次:设),,,(21n k k k 是(5)的任一解,代入(5)得:

n

rn r rr r n n r r n n r r k c k c k k c k c k k c k c k ---=---=---=++++++

112112211111

又有恒等式:n

n r r k k k k ==++ 1

1

此n 个等式即为n n r r n k k k k ηη++=???

?

? ??++ 111,即(5)的每个解向量都可以由

n r ηη,,1 +线性表示,故{n r ηη,,1 +}为(5)的解空间的一个基。注意到(5)与(4)在未知量重新编号后同解,所以重新编排n r ηη,,1 +的次序可得(4)的解空间的一个基,从而解决了齐次线性方程组的解的构造问题。并且上述讨论也给出了求解空间的具体方法:即通过解方程组的允许变换得到等价组,在等价组中自由未知量是清楚的,给其一组线性无关值,便得等价组的一组解向量,其构成等价组的解空间的一个基,再调整解向量的次序便得。上述讨论得:

定理6.7.3数域F 上一个n 元齐次线性方程组的一切解作成n F 的一个子空间,称之为这个线性方程组的解空间。若所给方程组的系数矩阵的秩为r ,则解空间的维数为r n -。

定义:一个齐次线性方程组的解空间的一个基,叫做这个方程组的一个基础解系。

注:上述讨论给出了齐次线性方程组的基础解系的存在性及求法;其中自由未知量取值时,只需保证线性无关即可。(例略)

3)非齐次线性方程组的解的结构

设))((,11F M A b b x x A n m m n ?∈????? ??=????? ?? (6)是数域F 上一个n 元线性方程组。问题当(6)有无穷解时,解的结构如何?为此先引入:把(6)的常数项都换成0,

便得一个齐次线性方程组???

?

? ??=????? ??001 n x x A (7),齐次线性方程组(7)叫做方程组

(6)的导出齐次线性方程组。

注:任一线性方程组都有唯一的导出齐次线性方程组。

为讨论上述问题,先讨论(6)与其导出齐次线性方程组(7)的解之间的关系。

1)(6)的两个解的差是(7)似的解;

事实上,设βα,是(6)的两个解,有???

?

? ??==m b b A A 1βα,所以

οβαβα=-=-A A A )(。

2)(6)的一个解与(7)的一个解的和是(6)的一个解。(同上)

(6)的解的构造:

定理6.7.4若(6)有解,则(6)的任一解都可以表示为(6)的一个固定解与(7)的一个解的和。

证明:设γ是(6)的一个固定解,δ是(6)的任一解,要证δ可以写为γ与(7)的一个解的和,只需证δ与γ的差是(7)的一个解即可,由上1)显然。注:定理说明要求(6)的一般解,只需求出(6)的一个解,再求出(6)的一个基础解系,则可将(7)的所有解表出。(注意(7)的解不作成解空间)。(例略)

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的下三角阵

线性代数第3章_线性方程组习题解答

习题3 3-1.求下列齐次线性方程组的通解: (1)?? ? ??=--=--=+-087305302z y x z y x z y x . 解 对系数矩阵施行行初等变换,得 ???? ? ??-----?→?????? ??-----=144072021 1873153211A )(000720211阶梯形矩阵B =???? ? ??-?→? ??? ?? ??-?→?0002720211)(000271021101行最简形矩阵C =????? ? ???→? , 与原方程组同解的齐次线性方程组为 ??? ??? ?=+=+02702 11 z y z x , 即 ??? ??? ?-=-=z y z x 272 11(其中z 是自由未知量), 令1=z ,得到方程组的一个基础解系 T )1,2 7,211(-- =ξ, 所以,方程组的通解为

,)1,2 7,211(T k k -- =ξk 为任意常数. (2)??? ??=+++=+++=++++0 86530543207224321 432154321x x x x x x x x x x x x x . 解 对系数矩阵施行行初等变换,得 ???? ? ??--?→?????? ??=21202014101072211086530543272211A )(7000014101072211阶梯形矩阵B =????? ??-?→? ???? ? ??-?→?70000141010211201 )(100000101001201行最简形矩阵C =???? ? ???→?, 与原方程组同解的齐次线性方程组为 ??? ??==+=++00 025 42431x x x x x x , 即 ??? ??=-=--=025 4 2431x x x x x x (其中43,x x 是自由未知量), 令34(,)T x x =(1,0)T ,(0,1)T ,得到方程组的一个基础解系 T )0,0,1,0,2(1-=ξ,T )0,1,0,1,1(2--=ξ, 所以,方程组的通解为

线性方程组的解法

线性方程组的解法 1 引言 在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解。在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组。而如插值公式,拟合公式等的建立,微分方程差分格式的构造等,均可归结为求解线性方程组的问题.在工程技术的科学计算中,线性方程组的求解也是最基本的工作之一.因此,线性方程组的解法一直是科学和工程计算中研究最为普遍的问题,它在数值分析中占有极其重要的地位。20世纪50年代至70年代,由于电子计算机的发展,人们开始考虑和研究在计算机上用迭代法求线性方程组Ax =b的近似解,用某种极限过程去逐渐逼近精确解,并发展了许多非常有效的迭代方法,迭代法具有需要计算机存储单元少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点。例如Jacobi方法、Gauss—Seidel 方法、SOR方法、SSOR 方法,这几种迭代方法是最常用的一阶线性定常迭代法。 2 主要算法 20世纪50年代至70年代,人们开始考虑和研究用迭代法求解线性方程组。 Ax = b (1) 的近似解,发展了许多有效的方法,其中有Jacobi方法、Gauss—Seidel方法,SOR方法、SSOR方法,这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A的一个分裂:A =M-N ;M 为可逆矩阵,线性方程组(1)化为: (M-N)X =b; →M X = NX + b; →X= M -1NX+ M-1b 得到迭代方法的一般公式: X(k+1)=HX(k)+d (2) 其中:H =MN-1,d=M-1b,对任意初始向量X(0) 一阶定常迭代法收敛的充分必要条件是: 迭代矩H的谱半径小于1,即ρ(H) < 1;又因为对于任何矩阵范数恒有ρ(H)≤‖H‖,故又可得到收敛的一个充分条件为:‖H‖< 1。 2.1 Jacobi迭代法 若D为A的对角素构成的对角矩阵,且对角线元素全不为零。系数矩阵A的一个分解:A =

数值分析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)

直接法解线性方程组

直接法解线性方程组 实习题目: 仿照三对角方程组的追赶法解五对角方程组,其中系数矩阵为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);

线性方程组典型习题及解答

线性方程组 1. 用消元法解方程组?????? ?=- +-+=-- + - =-+-+ =- -+-5 2522220 21 22325 4 321 53 2 154321 5 4321x x x x x x x x x x x x x x x x x x x . 解: 方程组的增广矩阵 : ????? ???????---------→????????????---------→????????????---------420200110100112430211321312630202530112430211321512522110112121111211321? ??? ????? ???--------→60000 0110100112430211321,可知,系数矩阵的秩为3,增广矩阵的秩为4,系数矩阵的秩不等于增广矩阵的秩,从而方程组无解. 2. 讨论λ为何值时,方程组??? ??=++ = + +=++2 3 2 1 3 2 1 321 1 λλλλλx x x x x x x x x 有唯一解、无解和有无穷多解。 解:将方程组的增广矩阵进行初等行变换,变为行阶梯矩阵。 ()() ()()B A =??? ? ???? ? ?+------→→???? ????? ?→?? ??? ?????=22 2 2211210 1101 111 1 11111 1 1 1 111λλλλλλλ λλλ λλλλλλλ λλ λΛ于是,当2,1-≠λ时,系数矩阵的秩等于增广矩阵的秩,都等于3,等于未知量的个数,此 时方程组有唯一解;2 )1(,21,213 321++-=+=++- =λλλλλx x x 当2-=λ时,系数矩阵的秩为2,增广矩阵的秩为3,此时方程组无解; 当1=λ时,系数矩阵的秩等于增广矩阵的秩,都等于1,小于未知量的个数,此时方程组有无穷多解,即3211x x x --=,其中32,x x 为自由未知量。

解线性方程组的直接解法

解线性方程组的直接解法 一、实验目的及要求 关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。 二、相关理论知识 求解线性方程组的直接方法有以下几种: 1、利用左除运算符直接求解 线性方程组为b x\ =即可。 A Ax=,则输入b 2、列主元的高斯消元法 程序流程图: 输入系数矩阵A,向量b,输出线性方程组的解x。 根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行; 对于1 p :1- =n 选择第p列中最大元,并且交换行; 消元计算; 回代求解。(此部分可以参看课本第150页相关算法) 3、利用矩阵的分解求解线性方程组 (1)LU分解 调用matlab中的函数lu即可,调用格式如下: [L,U]=lu(A) 注意:L往往不是一个下三角,但是可以经过行的变换化为单位下三角。 (2)平方根法

调用matlab 中的函数chol 即可,调用格式如下: R=chol (A ) 输出的是一个上三角矩阵R ,使得R R A T =。 三、研究、解答以下问题 问题1、先将矩阵A 进行楚列斯基分解,然后解方程组b Ax =(即利用平方根法求解线性方程组,直接调用函数): ??????? ??--------=19631699723723312312A ,?????? ? ??-=71636b 解答: 程序: A=[12 -3 2 1;-3 23 -7 -3;2 -7 99 -6;1 -3 -6 19]; R=chol(A) b=[6 3 -16 7]'; y=inv(R')*b %y=R'\b x=inv(R)*y %x=R\y 结果: R =3.4641 -0.8660 0.5774 0.2887 0 4.7170 -1.3780 -0.5830 0 0 9.8371 -0.7085 0 0 0 4.2514 y =1.7321 0.9540 -1.5945 1.3940 x =0.5463 0.2023 -0.1385 0.3279 问题 2、先将矩阵A 进行LU 分解,然后解方程组b Ax =(直接调用函数): ?????????? ??----=8162517623158765211331056897031354376231A ,????????? ? ??-=715513252b

求解线性方程组——超松弛迭代法(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

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

线性方程组的解法及其应用 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.

解线性方程组直接解法

第2章 解线性方程组的直接解法 §0 引言 11112211211222221122n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=??+++=??? ?+++=?L L L L 1112121 22212112,(,,,),()n n T T n n n n nn a a a a a a A x x x x b b b a a a ??????===??? ??? ? ?L L L L L L L Ax b = 若A 非奇异,即det()0A ≠,方程组Ax b =有唯一解。由 Cramer 法则,其解 det(),1,2,,det() i i A x i n A = =L 其中i A 为用b 代替A 中第i 列所得的矩阵。当n 大时, 1n +个行列式计算量相当大,实际计算不现实。 121212(,)12det()(1)n n n i i i i i i n i i i A a a a τ=-∑L L L §1 Gauss 消去法 (I )Gauss 消去法的例子 (1)1231123 212336 ()123315()18315() x x x E x x x E x x x E ++=??-+=??-+-=-? 2131()12(),()(18)()E E E E -?--? (2) 12312342356 ()15957()211793()x x x E x x E x x E ++=?? --=-??+=?

方程组13()()E E -与方程组145(),(),()E E E 同解 541 ()21( )()15 E E --得 (3)1231234366()15957()3() x x x E x x E x E ++=?? --=-??=? 由(3)得3 213,2,1x x x === 123(,,)(1,2,3)T T x x x = (3)的系数矩阵为11 10159001????--?????? ,上三角 矩阵。 (II )Gauss 消去法,矩阵三角分解 Ax b = 1112 11,12122 22,112 ,1 n n n n n n nn n n a a a a a a a a A b a a a a +++????????=?????????? L M L M L L M M L M 令(1) ,1,2,,;1,2,,,1ij ij a a i n j n n ===+L L (1)(1)A b A b ??=?? ???? 第1次消去 (1) 110a ≠, 令 (1)1 1(1)11 , 2,3,,i i a l i n a ==L 作运算:11()()i i i l E E E -+→ i E 表示第i 个方程(第i 行) 2,3,,i n =L (2)(1)(1) 111110 2,3,,i i i a a l a i n =-==L

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 ,,,;,,, 三. 程序框图

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

习题 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. 用回代法解下三角形线性方程组

齐次和非齐次线性方程组的解法(整理定稿)

线性方程组解的结构(解法) 一、齐次线性方程组的解法 【定义】 r (A )= r 时,若()r A n ≤,则存在齐次线性方程组的同解方程组; $ 若()r A n >,则齐次线性方程组无解。 1、求AX = 0(A 为m n ?矩阵)通解的三步骤 (1)?? →A C 行 (行最简形); 写出同解方程组CX =0. (2) 求出CX =0的基础解系,,,n r -12ξξξ; (3) 写出通解n r n r k k k --=++ +1122X ξξξ其中k 1,k 2,…, k n-r 为任意常数.

迭代法解线性方程组

迭代法解线性方程组作业 沈欢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

线性方程组的平方根解法

浅析线性方程组的平方根解法 在求解线性方程组时, 直接解法有顺序高斯消元法、列主元高斯消元法、全主元高斯消元法、高斯约当消元法、消元形式的追赶法、LU分解法、矩阵形式的追赶法,当我们遇到对称正定线性方程组时,我们就要用到平方根法(对称LLT 分解法)来求解,为了熟悉和熟练运用平方根法求解线性方程组,下面对运用平方根法求解线性方程组进行解析。一、运用平方根法求解线性方程组涉及到的定理及定义 我们在运用平方根法求解线性方程组时,要判定线性方程组Ax=b 的系数矩阵A 是否是对称正定矩阵,那么我们就要了解正定矩阵的性质和如下定理及定义: 1、由线性代数知,正定矩阵具有如下性质: 1)正定矩阵A 是非奇异的 2)正定矩阵A的任一主子矩阵也必为正定矩阵 3)正定矩阵A的主对角元素均为正数 4)正定矩阵A 的特征值均大于零 5)正定矩阵A的行列式必为正数 定义一线性方程组Ax=b的系数矩阵A是对称正定矩阵,那么Ax=b是对称正定线性方程组。 定义二如果方阵A满足A=AT那么A是对称阵。 2.1.4 平方根法和改进的平方根法 如果A是n阶对称矩阵,由定理2还可得如下分解定理: 定理2若A为n阶对称矩阵,且A的各阶顺序主子式都不为零,则A可惟一分解为:A= LDLT,其中L为单位下三角阵,D为对角阵。 证明因为A的各阶顺序主子式都不为零,所以A可惟一分解为:A= LU 因为,所以可将U 分解为:

i DU i 其中D 为对角矩阵,Ui 为单位上三角阵?于是:A = LDU 仁L(DUI) 因为A 为对称矩阵,所以,A = AT = UITDTL 七U 仃(DLT),由A 的LU 分解的惟一 性即得:L = UIT,即 Ui = LT ,故 A = LDLT 工程技术中的许多实际问题所归结出的线性方程组,其系数矩阵常有对称正定 性,对于具有此类特殊性质的系数矩阵,利用矩阵的三角分解法求解是一种较好 的有效方法,这就是对称正定矩阵方程组的平方根法及改进的平方根法, 这种方 法目前在计算机上已被广泛应用。 定理3对称矩阵A 为正定的充分必要条件是A 的各阶顺序主子式大于零。 2对称正定矩阵的三角分解 定理(Cholesky 分解)设A 为n 阶对称正定矩阵,则存在惟一的主对角线元素 都是正数的下三角阵L ,使得:A = LLT 。 分解式A = LLT 称为正定矩阵的Cholesky 分解,利用Cholesky 分解来求解系数 矩阵为对称正定矩阵的方程组AX ^ b 的方法称为平方根法。 设A 为4阶对称正定矩阵,则由定理 4 知,A = LLT ,即: a ii a i2 a i3 a i4 l ii 0 0 0 l ii l 2i l 3i l 4i a 21 a 22 a 23 a 24 l 2i l 22 0 0 0 l 22 l 32 l 42 a 3i a 32 a 33 a 34 l 3i l 32 l 33 0 0 l 33 l 43 a 4i a 42 a 43 a 44 l 4i l 42 l 43 144 l 44 将右端矩阵相乘, 并令两端矩阵的元素相等, 于是不难算得矩阵 L 的元素的计算 公式为: 平方根法的计算框图见图 用平方根法求解系数矩阵对称正定的线性方程组时,计算过程是数值稳定 U ii U 22 U l2 U in U ii 1 U nn U 2n U 22 U nn

3线性方程组典型习题解析

3 线性方程组 3、1 知识要点解析(关于线性方程组的常用表达形式) 3.1.1 基本概念 1、方程组1111221n 1211222 2n 2m11m22mn m x x b x x b x x b a a a a a a a a a +++=??+++=? *???++ +=? 称为含n 个未知量m 个方程的线性方程组, i)倘若12m b ,b ,....,b 不全为零,则该线性方程组称为非齐次线性方程组; ii)若12m b =b = =b 0=,则该线性方程组就就是齐次线性方程组, 这时,我们也把该方程组称为1111221n 1211222 2n 2m11m22mn m x x x x x x a a a a a a a a a ++ +=??+++=? ???++ +=?c c c 的导出组, (其中12m c ,c ,...c 不全为零) 2、记1111 1221 n m x b x b ,x ,b x b n m mn a a A a a ???? ?? ? ? ? ? ?== ? ? ? ? ? ??? ???? = 则线性方程组(*)又可以表示为矩阵形式 x b A =** 3、又若记 1j 2j j mj ,j 1,2, n a a a α?? ? ? == ? ? ??? 则上述方程游客一写成向量形式 1122n n x x x b. ααα++ +=***。 同时,为了方便,我们记(,b)A A =,称为线性方程组(*)的增广矩阵。 3.1.2 线性方程组解的判断

1、齐次线性方程组x 0A =,(n=线性方程组中未知量的个数 对于齐次线性方程组,它就是一定有解的(至少零就就是它的解), i)那么,当r n A =秩()=时,有唯一零解; ii)当r n A =秩()<时,又非零解,且线性无关解向量的个数为n-r 、 2、非齐次线性方程组x b A = ()<() ()=()=n, ()=()()=()() A A A A A A A A A A A ?? ???????? ? ?秩秩无解;秩秩有唯一解, 秩秩秩秩有无穷多解,且基础解系个数为 -秩秩秩不可能 3.1.3 线性方程组的解空间 1、齐次线性方程组的解空间 (作为线性方程组的一个特殊情形,在根据其次线性方程与非齐次线性方程组解 的关系,我们这里首先讨论齐次线性方程组的解空间) 定理:对于数域K 上的n 元齐次线性方程组的解空间W 的维数为 A dim(W)=n-秩()=n-r , 其中A 就是方程组的系数矩阵。那么,当齐次线性方程组[(*)--ii)] 有 非零解时,它的每个基础解系所含解向量的数目都等于A n-秩()。 2、 非齐次线性方程组的解空间 我们已知线性方程组的解与非齐次线性方程组的解的关系,那么我们可 首先求出非齐次线性方程组的一个解γ0(称其为方程组特解);然后在求对应的导出组的解空间(设该解空间的基础解系为ηηη12n-r ,,...),则(*)解空间的维数为n-r,且非齐次线性方程组的每一个解都可以表示为: 2.................()k k k γηηη+?0112n-r n-r ++...+ 我们称其为该非齐次线性方程组(*)的通解、

相关主题
文本预览
相关文档 最新文档