实验五线性方程组-1240111118-武元甲
- 格式:doc
- 大小:52.01 KB
- 文档页数:3
线性方程组的解法线性方程组是数学中一种重要的数学模型,它描述了线性关系的集合。
解决线性方程组的问题在数学和应用数学中具有广泛的应用。
本文将介绍线性方程组的两种常见解法:矩阵消元法和矩阵求逆法。
一、矩阵消元法矩阵消元法是解决线性方程组的常见方法之一。
它通过对增广矩阵进行一系列的行变换来化简线性方程组,最终达到求解方程组的目的。
步骤如下:1. 将线性方程组写成增广矩阵的形式。
2. 选取主元,即第一行第一列的元素作为主元,将主元移到对角线上。
3. 利用主元,通过一系列的行变换,将主元下方的元素化为零。
4. 对于主元右方的元素,依次选取主元,重复第2、3步,将其化为零。
5. 重复以上步骤,直到将矩阵化为上三角矩阵。
6. 反向求解未知数,得到线性方程组的解。
这种方法的优点是简单易行,适用于任意大小的线性方程组。
然而,该方法在某些情况下可能会出现无法求解的情况,例如矩阵的某一行全为零或等于其他行。
二、矩阵求逆法矩阵求逆法是另一种常见的解决线性方程组的方法。
该方法利用矩阵的逆矩阵,通过左乘逆矩阵将线性方程组转化为标准形式,从而求解未知数。
步骤如下:1. 将线性方程组写成矩阵形式:AX = B,其中A为系数矩阵,X为未知数向量,B为常数向量。
2. 判断系数矩阵A是否可逆,若可逆,则存在逆矩阵A^-1。
3. 左乘逆矩阵A^-1,得到X = A^-1 * B。
4. 计算逆矩阵A^-1和常数向量B的乘积,得到未知数向量X,即线性方程组的解。
矩阵求逆法相较于矩阵消元法更加灵活,但对于大规模矩阵的求逆可能会涉及到较复杂的计算。
此外,在某些情况下,系数矩阵A可能不存在逆矩阵,此时该方法无法求解。
总结线性方程组是数学领域中研究的重要课题,矩阵消元法和矩阵求逆法都是常见的解决线性方程组的方法。
选择合适的解法取决于问题的具体要求和所涉及的矩阵特性。
在实际问题中,我们根据具体情况选择适当的方法,以求得线性方程组的解。
注:本文中所使用的线性方程组解法仅涵盖了部分常见方法,并不是穷尽全部解法。
线性代数实验课一、行列式与矩阵的运算1.实验目的①掌握行列式计算的Mathematica命令。
②掌握矩阵基本运算的Mathematica命令。
③掌握逆阵及矩阵的秩的求法。
2.内容与步骤(1)计算行列式的值在Mathematica中计算行列式的命令为Det[A].(求方阵A的行列式,即Det[A]=|A|)例1计算行列式-5解首先把矩阵用表的形式表示,即输入A={ {2,8,-5』},{1,9,0,・6},{0,・5,・1,2},{ 1,0,・7,6}};Det[A]Out[l>-108例2计算行列式b b2 b4d d: d A解求解命令为Det[{{1,1』』},{a,b,c,d},{a A2,b A2,c A2,d A2),(a A4,b A4,c A4,d A4})]Out[2]= a4b2c — a2b4c -------------- ac2d4 + bc2d4 (共有4! = 24 项)Factor[%]Out[3]—(—ci + b)(—ci + c、)(一b + c、)(—ci + d)(—b + d)(—c + d)(a + Z? + c + d)(2)矩阵的基本运算命令为A+BC*A Transpose[M] A.B MatrixForm[M] 矩阵A和B相加常数c和矩阵A相乘矩阵M的转置矩阵A和B相乘用标准形式表示矩阵11 1 ~ 123 例3已知A = 1 1 -1 ,B = -1 -24 ,求 3A8—2A 及 AB1 -1 1 0 5 1解输入A={{1,1,1},{1,1,・1},{1,.1,1}};B={{l,2,3},{.l,.2,4},{0,5,l}};3*A.B-2*AOut[ 1 ]={{-2,13,22}, {-2,-17,20},{4,29,・2}}M=Transpose[A]Out[2]={{l,l,l},{l,l,-l},{l,.l,l}}P=M.B0ut[3]={{0,5,8},{0,-5,6},{2,9,0}}MatrixForm[P]0 5 8Out[4]=0 -5 62 9 0⑶求逆阵命令为Inverse[A](求方阵A 的逆阵)"3 -2 0 心 0 2 2例4求万阵A = 1 -2 -3 *0 1 2解输入A= {{3,-2,0,-1},{ 0,2,2,!}, {1,-2,-3,2}, {0,1,2,1}};Det[A]Out[l]=lB=Inverse[A]Out ⑵={{1,1,-2,4},{0,1,0,-1},{.1,-13,6},{2,1,-6,-10}}MatrixForm[B]1 1 -2 -40 1 0 -1Out[3]=-1 -1 3 62 1 -6 10 -1,-2的逆阵。
数学实验报告题目第一次实验题目一、实验目的1MATLAB 的矩阵初等运算;.熟悉2 .掌握求矩阵的秩、逆、化最简阶梯形的命令;3MABLAB 求解线性方程组.会用二、问题求解和程序设计流程344?221????????MATLABA1 B、,已知命令窗口中建立.,在320B???50??3A????????112?153????矩阵并对其进行以下操作:(1) A 的行列式的值计算矩阵?)?Adet((2) 分别计算下列各式:、和、、、、B?A.T112??B?BA?2A ABABAA:解(1)编写程序如下:A=[4 -2 2;-3 0 5;1 5 3];B=[1 3 4;-2 0 -3;2 -1 1];a=det(A)运行结果:a =-158(2)编写程序如下:C=2*A-BD=A*BE=A.*BF=A/BG=A\BH=A*AK=A'运行结果:C =7 -7 0-4 0 13线性代数实验报告0 11 5D =12 10 247 -14 -7-3 0 -8E =4 -6 86 0 -152 -5 3F =0 0 2.0000-2.7143 -8.0000 -8.14292.42863.0000 2.2857G =0.4873 0.4114 1.00000.3671 -0.4304 0-0.1076 0.2468 0H =24 2 4-7 31 9-8 13 36K =4 -3 1-2 0 52 5 32 MATLABrankinv 求下列矩阵的秩:中分别利用矩阵的初等变换及函数.在、函数线性代数实验报告3501??2631?????0012????(1) Rank(A)=? 2求) 求(054A?3??B1??B?????0201??4??1112????2102??解:1 编写程如下:()format rat A=[1 -6 3 2;3 -5 4 0;-1 -11 2 4];rref(A)运行结果:ans =1 0 0 -8/50 1 0 00 0 1 6/5AA3 。
线性方程组的解法一、引言线性方程组是数学中的重要概念,广泛应用于各个领域,包括物理学、经济学、工程学等。
解决线性方程组有多种方法,本文将介绍常见的三种解法:高斯消元法、矩阵法和克拉默法。
二、高斯消元法高斯消元法是一种基于矩阵变换的解法,可以将线性方程组转化为简化行阶梯形矩阵,从而快速求解解向量。
具体步骤如下:1. 将线性方程组写成增广矩阵形式;2. 选择一个非零首元,在该列中其余元素乘以某个系数并相减,使得除首元外该列其他元素变为零;3. 重复第二步,直至将矩阵转化为简化行阶梯形矩阵;4. 从简化行阶梯形矩阵中读出解。
三、矩阵法矩阵法是一种基于矩阵运算的解法,将线性方程组转化为矩阵形式,并求解矩阵的逆矩阵,从而得到解向量。
具体步骤如下:1. 将线性方程组写成矩阵形式;2. 求解矩阵的逆矩阵;3. 用逆矩阵乘以等号右边的向量,得到解向量。
四、克拉默法克拉默法是一种利用行列式性质求解线性方程组的方法,适用于方程组个数与未知数个数相等的情况。
具体步骤如下:1. 将线性方程组写成矩阵形式;2. 计算行列式的值;3. 分别用等号右边的向量替换矩阵中对应的列,再求解行列式的值;4. 将第三步得到的值除以第二步得到的值,得到解向量。
五、比较与应用场景1. 高斯消元法在实际计算中具有高效性和稳定性,适用于任意线性方程组求解;2. 矩阵法需要先求解矩阵的逆矩阵,计算过程相对复杂,适用于方程组个数与未知数个数相等的情况;3. 克拉默法计算过程较为复杂,不适用于大规模方程组的求解,但对于小规模方程组求解比较便捷。
六、总结线性方程组的解法有多种,本文介绍了高斯消元法、矩阵法和克拉默法三种常见方法。
应根据具体情况选择合适的方法来求解线性方程组,以达到高效、准确的目的。
对于大规模方程组的计算,高斯消元法更具优势;对于方程组个数与未知数个数相等的情况,矩阵法和克拉默法更适用。
随着数学计算方法的不断发展,越来越多的解法将出现,为解决复杂的线性方程组提供更多选择。
线性方程组知识点总结一、引言线性方程组是数学中重要的概念,广泛应用于各个领域。
本文将对线性方程组的基本概念、求解方法和应用进行总结和介绍。
二、基本概念1. 线性方程组的定义:线性方程组是由若干个线性方程组成的方程集合,形式一般为a1x1 + a2x2 + ... + anxn = b。
2. 线性方程组的解:线性方程组的解是使得所有方程都成立的一组变量值,分为唯一解、无解和无穷多解三种情况。
3. 线性方程组的系数矩阵:系数矩阵是由线性方程组中各个方程的系数构成的矩阵,记作A。
4. 线性方程组的增广矩阵:增广矩阵是将线性方程组的系数矩阵和常数项列向量合并成一个矩阵,记作[A | b]。
三、求解方法1. 列主元消元法:利用行初等变换将线性方程组转化为简单形式,其中列主元消元法是一种常用的方法。
具体步骤包括选主元、消元和回代三个过程。
2. 矩阵法:利用矩阵的逆、转置等性质,可以通过求解矩阵方程来求解线性方程组。
3. 克拉默法则:克拉默法则是一种利用行列式的性质来求解线性方程组的方法,通过计算线性方程组的系数行列式和常数行列式的比值,可以得到方程组的解。
四、应用领域1. 工程学:线性方程组广泛应用于工程学中的结构分析、电路分析、力学运动等问题的求解。
2. 经济学:线性方程组在经济学中的需求分析、均衡分析、成本分析等方面有着重要应用。
3. 计算机科学:线性方程组在图像处理、数据分析、模型建立等计算机科学的领域中起着关键作用。
五、总结线性方程组是数学中的基础概念,对于理解和解决实际问题具有重要意义。
本文总结了线性方程组的基本概念、求解方法和应用领域,希望能为读者提供一定的参考和启发。
建议读者在学习线性方程组时,注重理论与实践的结合,加强对各种方法的理解和运用能力,进一步提升问题求解的能力和水平。
线性方程组的解法线性方程组是数学中的基础概念,它在各个领域中都有广泛的应用。
本文将介绍线性方程组的解法,帮助读者更好地理解和解决相关问题。
Ⅰ. 一元一次方程的解法一元一次方程是线性方程组中最简单的形式,通常以“ax + b = 0”的形式表示,其中a和b为已知数,x为未知数。
解此方程的步骤如下:1. 将方程变形,将未知数项和常数项分别移至等式两边,得到“ax = -b”;2. 若a≠0,两边同时除以a,得到“x = -b/a”;3. 若a=0,若-b=0,则方程有无数解;否则,方程无解。
Ⅱ. 二元一次方程组的解法二元一次方程组包含两个未知数和两个方程,一般以如下形式表示:{a₁x + b₁y = c₁,a₂x + b₂y = c₂}常用的解法有以下三种:1. 代入法:将其中一个方程的其中一个未知数表示为另一个未知数的函数,然后代入另一个方程,解得一个未知数的值,再代入回第一个方程求得另一个未知数的值。
这种方法特别适用于其中一个方程的一个未知数的系数为1,或者已经表示为另一个未知数的函数的情况。
2. 消元法:通过消去其中一个未知数,得到一个只含一个未知数的一元一次方程,然后按照一元一次方程的解法求解。
这种方法特别适用于其中一个方程的一个未知数的系数相等,但反号的情况。
3. 克莱姆法则:通过计算系数行列式的值,可以求得二元一次方程组的解。
具体步骤是构造齐次线性方程组的系数矩阵,并计算系数矩阵的行列式值D。
然后使用未知数的系数与常数项分别替换掉系数矩阵的对应列,并计算新矩阵的行列式值Dx和Dy。
最后,解得x = Dx / D,y = Dy / D。
克莱姆法则适用于系数矩阵的行列式值不为0的情况。
Ⅲ. 三元及以上线性方程组的解法三元及以上线性方程组的解法相对复杂,但仍然可以利用与二元一次方程组相似的方法求解。
1. 高斯消元法:高斯消元法是一种基于矩阵的线性方程组求解方法。
通过初等行变换将线性方程组化为阶梯形,然后回代求解得到每个未知数的值。
线性方程组的解法1. 背景介绍线性方程组是数学中常见的一类方程组,由一系列线性方程组成。
求解线性方程组的目标是找到满足所有方程的解。
线性方程组的解法有多种,本文将介绍其中常用的几种方法。
2. 列主元消元法列主元消元法是解线性方程组的一种常用方法。
该方法基于矩阵的行变换和列变换,通过消元得到一种简化的矩阵形式,从而求解方程组的解。
使用列主元消元法解线性方程组的步骤如下:- 将系数矩阵按列进行排序,选择绝对值最大的列作为主元列;- 交换主元所在列和第一列,同时交换方程组中的等式;- 利用第一个方程进行消元,将主元所在列下方的元素都变为0;- 重复以上步骤,直到所有主元都变成1。
列主元消元法的优点是解法简单直观,但在实际应用中可能会遇到主元为0或接近0的情况,会导致计算结果不够精确。
3. 高斯-约旦消元法高斯-约旦消元法是另一种常见的解线性方程组的方法。
该方法通过矩阵的初等行变换,将方程组化为其简化形式,从而求解解的值。
使用高斯-约旦消元法解线性方程组的步骤如下:- 将系数矩阵与等式向量合并,形成增广矩阵;- 从第一行开始,找到第一个非零元素,将其变为1,同时该列的其他元素变为0;- 重复以上步骤,直到所有非零元素都变为1且其他元素都为0。
高斯-约旦消元法的优点是消元过程更为精确,计算结果更准确。
但该方法可能会遇到矩阵行或列的交换问题,需要额外的步骤进行处理。
4. 矩阵的逆和逆矩阵法对于特定类型的线性方程组,可以使用矩阵的逆和逆矩阵法来求解。
逆矩阵是方阵的一种特殊矩阵,具有一些特殊的性质,可以用于求解线性方程组。
利用矩阵的逆和逆矩阵法求解线性方程组的步骤如下:- 对系数矩阵进行求逆操作,得到逆矩阵;- 将逆矩阵与等式向量相乘,得到解向量。
矩阵的逆和逆矩阵法在理论上是一种高效且准确的解法,但实际应用中需要先判断矩阵是否可逆,且计算逆矩阵的过程可能较为复杂。
5. 小结本文介绍了线性方程组的三种常用解法:列主元消元法、高斯-约旦消元法和矩阵的逆和逆矩阵法。
线性方程组的求解方法详解线性方程组是由一系列线性方程组成的方程组,其中每个方程的未知数都是一次项(与其他未知数之间没有乘法关系)。
解线性方程组的目标是找到满足所有方程的未知数的值。
线性方程组的求解方法有多种,包括高斯消元法、矩阵方法、Cramer法则等。
1.高斯消元法高斯消元法是求解线性方程组的经典方法之一、它通过将线性方程组转化为行简化阶梯形矩阵的形式,从而求得未知数的值。
具体步骤如下:第一步,将线性方程组写成增广矩阵的形式,其中增广矩阵的最后一列为方程组的常数项。
第二步,选择一行(通常选择第一行)为主元行,并将其系数设置为1第三步,对于其他行,通过消去主元的系数,并使得该列上下的其他系数为零。
这一步称为消元操作。
第四步,重复第三步,直到所有行都被消元为止。
第五步,通过回代法,将最简形的增广矩阵转化为解方程组所需的形式。
从最后一行开始,将未知数的值代入到其他行的系数中,直到所有未知数都求得其值。
2.矩阵方法矩阵方法是一种利用矩阵运算求解线性方程组的方法。
该方法可以通过矩阵的逆矩阵、伴随矩阵等来求解。
具体步骤如下:第一步,将线性方程组的系数矩阵和常数矩阵写成增广矩阵的形式。
第二步,求解系数矩阵的逆矩阵。
第三步,将逆矩阵和常数矩阵相乘,得到未知数的解向量。
3. Cramer法则Cramer法则是一种基于行列式的方法,可以求解n元线性方程组。
该方法的基本思想是通过计算行列式的值来求解方程组。
具体步骤如下:第一步,计算线性方程组的系数矩阵的行列式值,如果行列式值不为零则方程组有唯一解,如果行列式值为零,则方程组无解或者有无穷多解。
第二步,将系数矩阵的每一列用常数项替换,并计算其行列式值。
第三步,将每个未知数的系数矩阵的行列式值除以原始行列式的值,得到解向量。
4.LU分解法LU分解法是一种将线性方程组的系数矩阵分解为一个下三角矩阵和一个上三角矩阵的方法。
该方法利用了矩阵分解的性质,通过将线性方程组转化为一个简单的形式,从而求得未知数的值。
实验报告
一、实验目的
体会求解线性方程组的Jacobi 迭代法和Gauss-Seidel 迭代法的收敛速度。
二、实验题目
用迭代法分别对200,20==n n 解方程组b Ax =,其中
n
n A ⨯⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛------------------=431513143151513143151513143151513143151314
(1)选取不同的初值0x 和不同的右端向量b ,给定迭代误差,用Jacobi 迭代法和Gauss-Seidel 迭代法计算,观测得到的迭代向量并分析计算结果给出结论;
(2)取定初值0x 和右端向量b ,给定迭代误差,将A 的主对角元成倍放大,其余元素不变,用Jacobi 迭代法计算多次,比较收敛速度,分析计算结果并给出结论。
三、实验原理
求解线性方程组的Jacobi 迭代法和Gauss —Seidel 迭代法
四、实验内容及结果
1.Jacobi 迭代法:
4。
设取定的初值x0=ones(n,1),b=2*ones(n,1);改变A的主对角线元素成倍放大,只需要将第二步中的
五、实验结果分析
(1)前面四个程序输出的结果,都有迭代次数和x的值,说明矩阵是收敛的。
Gauss-seidel的迭代速度比Jacobi的迭代速度快。
(2)观察k值发现迭代次数是减少的,再根据已学的知识,可以推断出随着A的主对角元值的成倍放大收敛的速度加快。
项目五 矩阵运算与方程组求解实验3 线性方程组实验目的 熟悉求解线性方程组的常用命令,能利用Mathematica 命令各类求线性方程 组的解. 理解计算机求解的实用意义.基本命令1.命令NullSpace []A ,给出齐次方程组0=AX 的解空间的一个基.2.命令LinearSolve []b A ,,给出非齐次线性方程组b AX =的一个特解.3.解一般方程或方程组的命令Solve 见Mathematica 入门.实验举例求齐次线性方程组的解空间设A 为n m ⨯矩阵,X 为n 维列向量,则齐次线性方程组0=AX 必定有解. 若矩阵A 的 秩等于n ,则只有零解;若矩阵A 的秩小于n ,则有非零解,且所有解构成一向量空间. 命令 NullSpace 给出齐次线性方程组0=AX 的解空间的一个基.例3.1 (教材 例3.1) 求解线性方程组⎪⎪⎩⎪⎪⎨⎧=---=++=+--=--+.0532,0375,023,02432143243214321x x x x x x x x x x x x x x x输入Clear[A];A={{1,1,-2,-1},{3,-2,-1,2},{0,5,7,3},{2,-3,-5,-1}};NullSpace[A]则输出{{-2,1,-2,3}}说明该齐次线性方程组的解空间是一维向量空间,且向量(-2,1,-2,3)是解空间的基. 注:如果输出为空集{ },则表明解空间的基是一个空集,该方程组只有零解.例3.2 求解线性方程组⎪⎪⎩⎪⎪⎨⎧=---=++=+--=-++053203750232302432143243214321x x x x x x x x x x x x x x x 输入Clear[A];A={{1,1,2,-1},{3,-2,-3,2},{0,5,7,3},{2,-3,-5,-1}};Nullspace[A]输出为{ }因此解空间的基是一个空集,说明该线性方程组只有零解.例3.3 (教材 例3.2) 向量组)7,5,1,3(),5,4,3,1(),1,1,1,1(),3,2,1,1(4321==-==αααα是否线性相关?根据定义, 如果向量组线性相关, 则齐次线性方程组044332211='+'+'+'ααααx x x x有非零解.输入Clear[A,B];A={{1,1,2,3},{1,-1,1,1},{1,3,4,5},{3,1,5,7}};B=Transpose[A];NullSpace[B]输出为{{-2,-1,0,1}}说明向量组线性相关,且02421=+--ααα非齐次线性方程组的特解例3.4 (教材 例3.3) 求线性方程组⎪⎪⎩⎪⎪⎨⎧=----=++=+--=--+45322375222342432143243214321x x x x x x x x x x x x x x x 的特解.输入Clear[A,b];A={{1,1,-2,-1},{3,-2,-1,2},{0,5,7,3},{2,-3,-5,-1}};b={4,2,-2,4}LinearSolve[A,b]输出为{1,1,-1,0}注: 命令LinearSolve 只给出线性方程组的一个特解.例3.5 求线性方程组⎪⎪⎩⎪⎪⎨⎧=---=++=+--=--+45322375222342432143243214321x x x x x x x x x x x x x x x 的特解.输入Clear[A,b];A={{1,1,2,-1},{3,-2,-1,2},{0,5,7,3},{2,-3,-5,-1}};b={4,2,2,4}Linearsolve[A,b]输出为Linearsolve::nosol:Linear equation encountered which has no solution. 说明该方程组无解.例3.6 向量)4,3,1,2(-=β是否可以由向量)1,3,2,1(1-=α,)11,12,5,5(2-=α,()3,6,3,13-=α线性表示?根据定义, 如果向量β可以由向量组32,1,ααα线性相关, 则非齐次线性方程组βααα'='+'+'332211x x x 有解.输入Clear[A,B,b];A={{1,2,-3,1},{5,-5,12,11},{0,5,7,3},{1,-3,6,3}};B=Transpose[A];b={2,-1,3,4};Linearsolve[B,b]输出为 {31,31,0}说明β可以由32,1,ααα线性表示,且213131ααβ+=例3.7 (教材 例3.4) 求出通过平面上三点(0,7),(1,6)和(2,9)的二次多项式,2c bx ax ++并画出其图形.根据题设条件有 ,924611700⎪⎩⎪⎨⎧=+⋅+⋅=+⋅+⋅=+⋅+⋅c b a c b a c b a 输入Clear[x];A={{0,0,1},{1,1,1},{4,2,1}}y={7,6,9}p=LinearSolve[A,y]Clear[a,b,c,r,s,t];{a,b,c}.{r,s,t}f[x_]=p.{x^2,x,1};Plot[f[x],{x,0,2},GridLines ->Automatic,PlotRange ->All];则输出c b a ,,的值为{2,-3,7}并画出二次多项式7322+-x x 的图形(略).非齐次线性方程组的通解用命令Solve 求非齐次线性方程组的通解.例3.8 求出通过平面上三点(0,0),(1,1),(-1,3)以及满足9)1(,20)1(='=-'f f 的4次多项式).(x f解 设,)(234e dx cx bx ax x f ++++=则有⎪⎪⎪⎩⎪⎪⎪⎨⎧=+++=+-+-=+-+-=++++=923420234310d c b a d c b a ed c b ae d c b a e输入Clear[a,b,c,d,e];q[x_]=a*x^4+b*x^3+c*x^2+d*x+e;eqs=[q[0]= =0,q[1]= =1,q[-1]= =3,q ’[-1]= =20,q ’[1]= =9];{A,y}=LinearEquationsToMatrices[eqs,{a,b,c,d}];p=LinearSolve[A,y];f[x_]=p.{x^4,x^3,x^2,x,1};Plot[f[x],{x,-1,1},GridLines->Automatic,PlotRange->All];则输出所求多项式 ,435427431419)(234x x x x x f -++-=非齐次线性方程组的通解用命令solve 求非齐次线性方程组的通解.例3.9解方程组⎪⎪⎩⎪⎪⎨⎧=+-=+-=++-=++-53323221242143143214321x x x x x x x x x x x x x x输入solve[{x-y+2z+w==1,2x-y+z+2w==3,x-z+w==2,3x-y+3w==5},{x,y,z,w}] 输出为{{x →2-w+z,y →1+3z}}即3412x x x +-=,3231x x +=.于是,非齐次线性方程组的特解为(2,1,0,0).对应的齐次线性方程组的基础解系为(1,3,1,0)与(-1,0,0,1).例3.10解方程组⎪⎪⎩⎪⎪⎨⎧-=++-=++-=+-=-+-33713344324324214324321x x x x x x x x x x x x x 解法1 用命令solve输入solve[{x-2y+3z-4w==4, y-z+w==-3,x+3y+w==1,-7y+3z+3w==-3},{x,y,z,w}] 输出为{{x →-8,y →3, z →6, w →0}}即有唯一解81-=x ,32=x ,63=x ,04=x .解法2 这个线性方程组中方程的个数等于未知数的个数,而且有唯一解 ,此解可以表示为b A x 1-=.其中A 是线性方程组的系数矩阵,而b 是右边常数向量. 于是, 可以用逆阵计算唯一解.输入Clear[A,b,x];A={{1,-2,3,-4},{0,1,-1,1},{1,3,0,1},{0,-7,3,1}};b={4,-3,1,-3};x=Inverse[A].b输出为{-8,3,6,0}解法3 还可以用克拉默法计算这个线性方程组的唯一解.为计算各行列式,输入未知数的系数向量,即系数矩阵的列向量.输入Clear[a,b,c,d,e];a={1,0,1,0};b={-2,1,3,-7};c={3,-1,0,3};d={-4,1,1,1};e={4,-3,1,-3};Det[{e,b,c,d}]/ Det[{a,b,c,d}]Det[{a,e,c,d}]/ Det[{a,b,c,d}]Det[{a,b,e,d}]/ Det[{a,b,c,d}]Det[{a,b,c,e}]/ Det[{a,b,c,d}]输出为-836例3.10 (教材 例3.5) 当a 为何值时,方程组⎪⎩⎪⎨⎧=++=++=++111321321321ax x x x ax x x x ax 无解、有唯一解、有无穷多解?当方程组有解时,求通解.先计算系数行列式,并求a ,使行列式等于0.输入Clear[a];Det[{{a,1,1},{1,a,1},{1,1,a}}];Solve[%==0,a]则输出{{a →-2},{a →1},{a →1}}当a 2-≠,a 1≠时,方程组有唯一解.输入Solve[{a*x +y +z ==1,x +a*y +z ==1,x +y +a*z ==1},{x,y,z}]则输出{{x →,21a + y →,21a + z →a +21}}当a =-2时,输入Solve[{-2x+y+z==1,x -2y+z==1,x+y -2z==1},{x,y,z}]则输出{ }说明方程组无解.当a =1时,输入Solve[{x+y+z==1,x+y+z==1,x+y+z==1},{x,y,z}]则输出{{x →1-y -z}}}说明有无穷多个解.非齐次线性方程组的特解为(1,0,0),对应的齐次线性方程组的基础解 系为为(-1,1,0)与(-1,0,1).例3.11 (教材 例3.6) 求非齐次线性方程组 ⎪⎩⎪⎨⎧-=+-+=-+-=+-+2534422312432143214321x x x x x x x x x x x x 的通解.解法1 输入A={{2,1,-1,1},{3,-2,1,-3},{1,4,-3,5}};b={1,4,-2};particular=LinearSolve[A,b]nullspacebasis=NullSpace[A]generalsolution=t*nullspacebasis[[1]]+k*nullspacebasis[[2]]+Flatten[particular]generalsolution//MatrixForm解法2 输入B={{2,1,-1,1,1},{3,-2,1,-3,4},{1,4,-3,5,-2}}RowReduce[B]//MatrixForm根据增广矩阵的行最简形, 易知方程组有无穷多解. 其通解为⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-+⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-+⎪⎪⎪⎪⎪⎭⎫ ⎝⎛+⎪⎪⎪⎪⎪⎭⎫⎝⎛007/57/6107/97/1017/57/14321t k x x x x (k ,t 为任意常数)实验习题1.解方程组⎪⎩⎪⎨⎧=++=++=+-.024,02,032321321321x x x x x x x x x2.解方程组⎪⎩⎪⎨⎧=++-=++-=++-.0111784,02463,03542432143214321x x x x x x x x x x x x3. 解方程组⎪⎩⎪⎨⎧-=-+-=+-=-+-.22,3,44324314324321x x x x x x x x x x4.解方程组⎪⎩⎪⎨⎧=++-=+++=-++.254,32,22432143214321x x x x x x x x x x x x 5.用三种方法求方程组⎪⎪⎩⎪⎪⎨⎧=-+=-+=-+=-+127875329934,8852321321321321x x x x x x x x x x x x 的唯一解. 6.当b a ,为何值时,方程组⎪⎪⎩⎪⎪⎨⎧-=+++=--+-=++=+++1232)3(122043214324324321ax x x x b x x a x x x x x x x x 有唯一解、无解、有无穷多解?对后 者求通解.。
线性代数实验报告班级学号得分2013年12月24日数学实验报告题目一、 实验目的1.熟悉MATLAB 的矩阵初等运算;2.掌握求矩阵的秩、逆、化最简阶梯形的命令; 3.会用MABLAB 求解线性方程组二、 实验问题1. 已知⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=351503224A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=112302431B ,在MATLAB 命令窗口中建立A 、B 矩阵并对其进行以下操作:(1) 计算矩阵A 的行列式的值det()?A =(2) 分别计算下列各式:B A -2 、 B A *和B A *.、 1-AB 、 B A 1-、 2A 、 T A2. 在MATLAB 中分别利用矩阵的初等变换及函数rank 、函数inv 求下列矩阵的秩和逆:(1) ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=4211104532361A 求 Rank(A)=? (2)3501120010201202B ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦求?1=-B 3. 在MATLAB 中判断下列向量组是否线性相关,并找出向量组中的一个最大线性无关组:()11,1,3,2α'=,()21,1,1,3α'=--,()35,2,8,9α'=-,()41,3,1,7α'=-4、在MATLAB 中判断下列方程组解的情况,若有多个解,写出通解:(1)⎪⎪⎩⎪⎪⎨⎧=+--=-++=+--=-+-061230273020244321432143214321x x x x x x x x x x x x x x x x (2) ⎪⎪⎩⎪⎪⎨⎧-=+-=-+-=+-=++69413283542432321321321321x x x x x x x x x x x x 5、化方阵222254245A -⎛⎫⎪=- ⎪ ⎪--⎝⎭为对角阵.6、求一个正交变换,将二次型222123121323553266f x x x x x x x x x =++-+-化为标准型。
实验五线性方程组
一 实验目的
通过本课程的实习,学会编写全主元消去法的计算程序。掌握解线性方程组的最基本算法及其运用,
进一步了解该解法的功能、优缺点,领会系数矩阵对解的影响。
二 实验内容
本实验将线性方程组的高斯-赛德尔迭代法和高斯列主元消去法实现为类CLinear_Equations,调用
该类实现线性方程组的求解。该类结构如下
class CLinear_Equations
{
public:
CLinear_Equations(void);
CLinear_Equations(float **ppA,float *pB,int D); //向类中公有变量和指针传递数据
~CLinear_Equations(void);
float * Adjust(float * pX);//一步迭代
float * Gauss_Seidel(float * pX0,float e);
float Distance_Vector(float * pX0, float * pX1);//计算两个向量之差的范数
int Search_Pricipal_Element(int Col);//寻找第Col列的主元
void Exchange(int Row1, int Row2);//交换第Row1行与第Row2行的元素
void Slash(int Row);//削去第Row列对角线以下的元素
float * Elimination(void);// 回代过程,返回值为最终解向量
float * Gaussian_Elimination(void);
float **pp_A,*p_B; //分别存放系数矩阵、常数项向量
int m_D; //方程组的维数
};
为了方便,使用二维动态数组。可调用下面的函数为二维指针分配动态存储空间和销毁空间。为了方
便程序的移植和重复利用,可将这两个函数写在一个文件MatrixAllocate.h中。
template
bool New(T **&ppData,int H,int W)
{//该函数为二维指针ppData分配动态存储空间
T *ppData1 = new T[W*H];
ppData=new T*[H];
for(int i=0;i
ppData[i]=ppData1+i*W;
}
return true;
}
template
bool Delete(T **&ppData)
{//该函数销毁二维指针ppData
T *ppData1=ppData[0];
delete ppData1;
delete ppData;
ppData=NULL;
return true;
}
2.1
高斯-赛德尔迭代法
(1)()()()()11221331441111(1)(1)()()()22112332442222(1)(1)(1)()()33113223443333(1)(1)4411441()1()1()1(kkkkknnkkkkknnkkkkknnkkxaxaxaxaxbaxaxaxaxaxbaxaxaxaxaxbaxaxaa
(1)(1)()42243344(1)(1)(1)(1)(1)1122331,11)1()kkknnkkkkknnnnnnnnnnxaxaxbxaxaxaxaxba
当(1)()kkXX时,该迭代过程停止。
首先,需要一个计算两个向量间距离的函数,用以判断迭代过程是否终止。
float CLinear_Equations::Distance_Vector(float * pX0, float * pX1)
{
}
然后,可将单步迭代编写为一个函数,以方便后面的编程
float * CLinear_Equations::Adjust(float * pX)
{//参数存放()kX,返回值为(1)kX
}
最后,调用单步迭代函数Adjust,实现高斯-赛德尔迭代函数
float * CLinear_Equations::Gauss_Seidel(float * pX0,float e)
{//返回值为最终解向量
}
2.2
高斯列主元消去法
高斯列主元削去法可分解为下面几步
(1) 选主元,即对于第Col列,选出该列主元所在的行Row(而不是获取主元的值);
(2) 行交换,即将第Row行与第Col行的所有元素互换;
(3) 列消元,即将第Col列的第Col+1行以下的元素消为0,并将第Col行、第Col列元素化为1;
(4) 从nx开始,逐步回代,求出解向量。
可以先将这些操作编写为函数
int CLinear_Equations::Search_Pricipal_Element(int Col)
{//该函数选取数组pp_A第Col列的主元,返回主元所在的行标
}
void CLinear_Equations::Exchange(int Row1, int Row2)
{//该函数交换数组pp_A第Row1行和第Row2行的元素
}
void CLinear_Equations::Slash(int Col)
{//该函数消除数组pp_A第Col列中第Row行以下的元素
}
float * CLinear_Equations::Elimination(void)
{//该函数为回代过程,返回值为最终解向量
}
float * CLinear_Equations::Gaussian_Elimination(void)
{//该函数调用上面的函数,实现高斯-赛德尔迭代法,返回值为最终解向量。
}
三 实验组织运行要求
实验前,由任课教师落实实验任务,每个学生事先编写好算法设计源程序代码。集中上机、调试并
通过计算机图形可视化演示操作实例来测试、验证所学的数值分析理论。
四 实验条件
为每个学生提供一台具有WINDOWS 98/XP/NT/2000操作系统的计算机;同时提供VC++/VB/JAVA/TC等
集成语言开发环境来编程设计计算方法的上机实验。
五 实验步骤
非线性方程组(matlab)
A = triu(rand(6,4));
x = [2 1 3 2 0 0]';
b = A'*x;
y1 = (A')\b
opts.UT = true; opts.TRANSA = true;
y2 = linsolve(A,b,opts);
六 实验运行结果