矩阵方程求解方法

矩阵方程求解方法
矩阵方程求解方法

矩阵方程求解方法

本文所述的矩阵方程是指形如Ax=b的方程,其中A是一个mxn的矩阵,称为方程的系数

矩阵。x和b是mx1的矩阵。特别的,当b=0时,这种方程又称为其次方程。本文将讨论

这种矩阵的有解条件和求解方法。

矩阵方程的有解条件

为了解释矩阵方程的有解条件,我们首先要熟悉一些概念。

一个矩阵方程的增广矩阵是系数矩阵A和b并在一起构成的矩阵,记作(A,b)。

假定 , ,则矩阵方程的增广矩阵就是

矩阵的秩定义为其行向量中极大线性无关组中包含向量的个数,等价的说法是,矩阵的秩

是r,则矩阵通过行列初等变换,变换成左上角是一个r阶单位矩阵,其他都是0的矩阵。矩阵A的秩记作r(A),其中r是英文单词rank的缩写。

有了这两个基本概念,我们就可以准确描述矩阵方程的有解条件了:矩阵方程Ax=b的有

解条件是矩阵A的秩等于增广矩阵(A,b)的秩,也就是r(A)=r(A,b)。

证明很简单,既然矩阵A的秩是r,那么肯定可以找到两个可逆的矩阵P,Q,满足

--1)

其中I r表示r阶单位矩阵。

应用到原来的方程,可以得到:

--2)

我们把Q-1x当作一个未知的变量,PAQ当作系数,这就构成一个新的矩阵方程。而这个矩

阵方程的左侧系数除了前r行是有1的之外,其余行是0。为了它有解,Pb的后m-r行必

须也是0。这样(A,b)的秩必然是r。

必须注意到Q-1是可逆的,因此以Q-1x为未知变量的方程有解意味着以x为未知变量的原

方程也是有解的。

矩阵方程的解

对于矩阵方程Ax=b,如果满足r(A)=r(A,b),则矩阵方程是有解的。为了求它的解,我们首先把矩阵方程通过行列初等变换变化成前文2)式的形式,代入1)式后得到:

--3)

其中Q-1x和Pb是一个列向量,我们可以把它们分割成rx1和(n-r)x1的两个矩阵,分别记作x’1和x’2,及b’1和b’2。则很显然我们可以得到:

--4)

很显然,b’2必须为0,因为展开后b’2等于0 x’1 +0 x’2 =0

而由4式可以看出,x’1= b’1,x’2可以为任意向量。

所以方程最后的解为:

--5)

从解的形式可以看出解空间有如下特性:

1.方程Ax=b的解空间的秩是n=r(A)

2.如果A是满秩的,则方程的解唯一。

矩阵方程求解方法

矩阵方程求解方法 本文所述的矩阵方程是指形如Ax=b的方程,其中A是一个mxn的矩阵,称为方程的系数 矩阵。x和b是mx1的矩阵。特别的,当b=0时,这种方程又称为其次方程。本文将讨论 这种矩阵的有解条件和求解方法。 矩阵方程的有解条件 为了解释矩阵方程的有解条件,我们首先要熟悉一些概念。 一个矩阵方程的增广矩阵是系数矩阵A和b并在一起构成的矩阵,记作(A,b)。 假定 , ,则矩阵方程的增广矩阵就是 矩阵的秩定义为其行向量中极大线性无关组中包含向量的个数,等价的说法是,矩阵的秩 是r,则矩阵通过行列初等变换,变换成左上角是一个r阶单位矩阵,其他都是0的矩阵。矩阵A的秩记作r(A),其中r是英文单词rank的缩写。 有了这两个基本概念,我们就可以准确描述矩阵方程的有解条件了:矩阵方程Ax=b的有 解条件是矩阵A的秩等于增广矩阵(A,b)的秩,也就是r(A)=r(A,b)。 证明很简单,既然矩阵A的秩是r,那么肯定可以找到两个可逆的矩阵P,Q,满足 --1) 其中I r表示r阶单位矩阵。 应用到原来的方程,可以得到: --2) 我们把Q-1x当作一个未知的变量,PAQ当作系数,这就构成一个新的矩阵方程。而这个矩 阵方程的左侧系数除了前r行是有1的之外,其余行是0。为了它有解,Pb的后m-r行必 须也是0。这样(A,b)的秩必然是r。 必须注意到Q-1是可逆的,因此以Q-1x为未知变量的方程有解意味着以x为未知变量的原 方程也是有解的。

矩阵方程的解 对于矩阵方程Ax=b,如果满足r(A)=r(A,b),则矩阵方程是有解的。为了求它的解,我们首先把矩阵方程通过行列初等变换变化成前文2)式的形式,代入1)式后得到: --3) 其中Q-1x和Pb是一个列向量,我们可以把它们分割成rx1和(n-r)x1的两个矩阵,分别记作x’1和x’2,及b’1和b’2。则很显然我们可以得到: --4) 很显然,b’2必须为0,因为展开后b’2等于0 x’1 +0 x’2 =0 而由4式可以看出,x’1= b’1,x’2可以为任意向量。 所以方程最后的解为: --5) 从解的形式可以看出解空间有如下特性: 1.方程Ax=b的解空间的秩是n=r(A) 2.如果A是满秩的,则方程的解唯一。

matlab中的矩阵的基本运算命令范文

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

矩阵运算与方程组求解

附录Ⅰ 大学数学实验指导书 项目五 矩阵运算与方程组求解 实验1 行列式与矩阵 实验目的 掌握矩阵的输入方法. 掌握利用Mathematica (4.0以上版本) 对矩阵进行转置、加、减、 数乘、相乘、乘方等运算, 并能求矩阵的逆矩阵和计算方阵的行列式. 基本命令 在Mathematica 中, 向量和矩阵是以表的形式给出的. 1. 表在形式上是用花括号括起来的若干表达式, 表达式之间用逗号隔开. 如输入 {2,4,8,16} {x,x+1,y,Sqrt[2]} 则输入了两个向量. 2. 表的生成函数 (1) 最简单的数值表生成函数Range, 其命令格式如下: Range[正整数n]—生成表{1,2,3,4,…,n }; Range[m, n]—生成表{m ,…,n }; Range[m, n, dx]—生成表{m ,…,n }, 步长为d x . 2. 通用表的生成函数Table. 例如,输入命令 Table[n^3,{n,1,20,2}] 则输出 {1,27,125,343,729,1331,2197,3375,4913,6859} 输入 Table[x*y,{x,3},{y,3}] 则输出 {{1,2,3},{2,4,6},{3,6,9}} 3. 表作为向量和矩阵 一层表在线性代数中表示向量, 二层表表示矩阵. 例如,矩阵 ??? ? ??5432 可以用数表{{2,3},{4,5}}表示. 输入 A={{2,3},{4,5}} 则输出 {{2,3},{4,5}}

命令MatrixForm[A]把矩阵A 显示成通常的矩阵形式. 例如,输入命令: MatrixForm[A] 则输出 ??? ? ??5432 注:一般情况下,MatrixForm[A]所代表的矩阵A 不能参与运算. 下面是一个生成抽象矩阵的例子. 输入 Table[a[i,j],{i,4},{j,3}] MatrixForm[%] 则输出 ???? ?? ? ??]3,4[]2,4[]1,4[]3,3[]2,3[]1,3[]3,2[]2,2[]1,2[]3,1[]2,1[]1,1[a a a a a a a a a a a a 注:这个矩阵也可以用命令Array 生成,如输入 Array[a,{4,3}]//MatrixForm 则输出与上一命令相同. 4. 命令IdentityMatrix[n]生成n 阶单位矩阵. 例如,输入 IdentityMatrix[5] 则输出一个5阶单位矩阵(输出略). 5. 命令DiagonalMatrix[…]生成n 阶对角矩阵. 例如,输入 DiagonalMatrix[{b[1],b[2],b[3]}] 则输出 {{b[1],0,0},{0,b[2],0},{0,0,b[3]}} 它是一个以b[1], b[2], b[3]为主对角线元素的3阶对角矩阵. 6. 矩阵的线性运算:A+B 表示矩阵A 与B 的加法;k*A 表示数k 与矩阵A 的乘法; A.B 或 Dot[A,B]表示矩阵A 与矩阵B 的乘法. 7. 求矩阵A 的转置的命令:Transpose[A]. 8. 求方阵A 的n 次幂的命令:MatrixPower[A,n]. 9. 求方阵A 的逆的命令:Inverse[A]. 10.求向量a 与b 的内积的命令:Dot[a,b]. 实验举例 矩阵的运算

Hilbert矩阵病态线性代数方程组的求解

实验一病态线性代数方程组的求解 1.估计Hilbert矩阵2-条件数与阶数的关系 运行tiaojianshu.m 输入m=10 可以得到如下表的结果 2.选择不同维数,分别用Guass消去(LU分解),Jacobi迭代,GS 迭代,SOR迭代求解,比较结果。 说明:Hx=b,H矩阵可以由matlab直接给出,为了设定参考解,我们先设x为分量全1的向量,求出b,然后将H和b作为已知量,求x,与设定的参考解对比。 对于Jacobi迭代,GS迭代,SOR迭代,取迭代初值x0为0向量,迭代精度eps=1.0e-6,迭代次数<100000, SOR迭代中w=1.2和0.8分别计算。 a. n=5 b. n=8

c. n=10 d. n=15

取不同的n值,得到如下结果: 对于Guass法,可以看出来,随着n的增大,求解结果误差变大,这是因为随着n增大,系数矩阵的条件数变大,微小的扰动就容易造成很大的误差。最后得不到精确解。 对于Jacobi迭代,计算结果为Inf,说明是发散的。 对于GS迭代和SOR迭代,结果是收敛的,但是可以看出迭代次数比较多,并且对于不同维数GS和SOR收敛速度不一样,有时候GS快,有时SOR快。对SOR取不同的w迭代速度也不一样,存在一个最优的松弛因子w。并且可以知道,迭代次数多少跟初值x0也有关系。 3.讨论病态问题求解的算法。 通过上面的实验分析,可以看出,求解病态矩阵的时候要小心,否则可能得不到所要求的精确度。可以采用高精度运算,用双倍多倍字长,使得由于误差放大而损失若干有效数字位之后,还能保留一些有效位。 另外可以通过对原方程作某些预处理,降低系数矩阵的条件数,因为cond(aA)=cond(A),所以不能通过将每一个方程乘上相同的常数来达到这个目标,可考虑将矩阵的每一行和每一列分别乘上不同的常数,亦即找到可逆的对角阵D1和D2将方程组化为 D1AD2y=D1b,x=D2y 这称为矩阵的平衡问题,但是这样计算量比原问题本身要多。 或者通过变分原理将求解线性方程组的问题转化为等价的求解无约束函数最优化问题的极小值等等,可以参考 [1]郑洲顺,黄光辉,杨晓辉求解病态线性方程组的混合算法

矩阵在MATLAB中的运算与应用

矩阵在MATLAB中的运算与应用 摘要:介绍了Matlab在矩阵运算方而的功能。演示了用Matlab构造矩阵,获取矩阵的相关信息,进行矩阵运算的方法,对矩阵运算进行了分析,对矩阵作图进行了研究。 关键词:矩阵;Matlab 1 引言 Matlab的含义是矩阵实验室( Matrix Laboratory) ,是由美国Mathwork公司于1984年推出的一套高性能的数值计算和可视化软件[1]。现在,它己发展为国际上最优秀的科技应用软件。如果能将它用到相关学科课的学习上无疑是非常有意义的。Matlab赋予学习者一个可实验的环境,一个强大的数值计算和分析及可视化(图形)工具。矩阵论是高等院校理、工科研究生的一门重要基础课程。有人认为“科学计算,归根结底就是矩阵的计算”[2]。因此,对于将来从事科学技术工作的研究生来说,矩阵理论和方法是必不可少的数学工具。矩阵的理论和方法在数学和其他学科中都具有重要的意义,但许多学生无法克服矩阵庞大的计算量带来的恐惧,从而丧失了学习的兴趣和动力。本文展示了如何方便地用Matlab构造矩阵,获取矩阵的相关信息以及完成矩阵的运算,展示了矩阵的结构和运算,以此来说明在机器计算环境中,庞大复杂的计算不再是令人头疼的事情。 2矩阵及其运算 矩阵是进行数据处理和运算的基本元素。在MATLAB中: a、通常意义上的数量(标量)可看成是“1*1”的矩阵; b、n维矢量可看成是“n*1”的矩阵; c、多项式可由它的系数矩阵完全确定。 2.1 矩阵的创建 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在“[ ]”内; b、矩阵的同行元素之间用空格(或“,”)隔开; c、矩阵的行与行之间用“;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 2.1.1 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是

矩阵方程的解法

矩阵方程的解法 本文首先介绍了行对称矩阵的定义及性质,利用矩阵的广义逆,奇异值分解,给出了矩阵方程AX=B有行对称解的充分必要条件及有解时通解的表达式;并给出了矩阵方程解集合中与给定矩 阵的最佳逼近解的表达式。最后利用奇异值分解给出了矩阵方程 有行对称解的充分必要条件及有解时通解的表达式。矩阵方程问 题是指在满足一定条件的矩阵集合中求矩阵方程的解的问题。不 同的约束条件,不同的矩阵方程,就导致了不同的约束矩阵方程 问题。约束矩阵方程问题在结构设计,参数识别,主成分分析, 勘测,遥感,生物学,电学,固体力学,结构动力学,分子光谱学,自动控制理论,振动理论,循环理论等领域都有重要应用。 约束矩阵方程问题的内容非常广泛、约束矩阵方程问题又分为线性约束矩阵方程问题和非线性约束矩阵方程问题、有关线性约束矩阵方程问题的研究成果相当丰富、其中最简单的矩阵方程AX = B是研究最透彻的一类问题、求解线性矩阵方程一般会遇到两种情况:一是当矩阵方程有解时,如何求它的解及最佳逼近;二是 当矩阵方程无解时,如何求它的最小二乘解。对于本文所研究的AX= B、这两类简单矩阵方程,国内外学者已经作了大量研究。都在相应的文献中对其进行了大量的研究,解决了求此方程的一些 约束解和最小二乘解的问题。自从针对工程应用领域提出了行对

称矩阵概念之后,这方面研究已经取得了一些成果,如对行对称矩阵的一些性质,行对称矩阵的QR分解。本文先对行对称矩阵进行介绍,再将行对称矩阵与约束矩阵方程结合起来,先研究了矩阵方程AX=B有行对称实矩阵解的充要条件,有解时,用奇异值分解及广义逆求出解及最佳逼近。再对矩阵方程有行对称实矩阵解的充要条件进行了研究,利用奇异值分解得出了有解时的充要条件及解的表达式。设表示全体n*m阶实矩阵集合,rank(A)表示矩阵A的秩,表示次对角线上元素全为1,其余元素全为0的方阵,即=,显然有成立。表示n阶正交矩阵全体。本文要讨论以下问题:问题1 给定矩阵A,B,求实行对称方阵X,使得AX=B。问题2 给定,求,使得。其中为问题1的解集。问题3 给定矩阵,求实行对称方阵X,使得=B。 定义设A = (),若A满足,则称A为n *m行对称矩阵、所有n *m行对称矩阵的全体记为。考查满足的矩阵A,不难发现A 是关于行具有某种对称性的矩阵,即当阶数n为奇数时,以将行为对称线,矩阵A的行关于该线对称;当阶数n为偶数时,在行与行间做一条直线,则A的行关于该直线对称。或简单的说,将A 进行上下翻转后矩阵不变,我们就称这种矩阵为行对称矩阵。为了更好的了解行对称矩阵,我们介绍一下行对称矩阵的性质:(1)当n=2k时,=、(2)当n=2k+1时,=定义设A=,r(A)=r,的大于零的特征值为。则称为A的奇异值。定义设矩阵A ,若矩阵X满足如下四个Penrose方程:

矩阵在matlab中的基本命令

一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵; (2) zeros()函数:产生全为0的矩阵;

(3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。 2.矩阵拆分

MATLAB矩阵及其运算函数表

MATLAB 矩阵及其运算函数表 函数名函数功能 abs( ) 绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double( ) char( ) 可以把ASCII码数值矩阵转换为字符串矩阵 fix( ) 向零方向取整 floor( ) 不大于自变量的最大整数 ceil( ) 不小于自变量的最小整数 round( ) 四舍五入到最邻近的整数 rem(x,y) 求余函数 mod(x,y) % exp( ) 指数函数 [ ] 空操作符 format 格式符设置或改变数据输出格式 (其中格式符决定数据的输出格式) e1:e2:e3 冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n) 产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j) 表示取A矩阵的第j列全部元素 A(i,:) 表示A矩阵第i行的全部元素 A(i,j) 表示取A矩阵第i行、第j列的元素 A(i:i+m,:) 表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m) 表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m) 表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵(幺矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A)) 建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n) 生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V) 生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n) 生成希尔伯特矩阵 invhilb(n) 求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y) 生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

线性方程组的矩阵求法.

线性方程组的矩阵求法 摘要: 关键词: 第一章引言 矩阵及线性方程组理论是高等代数的重要内容, 用矩阵 方法解线性方程组又是人们学习高等代数必须掌握的基本 技能,本文将给出用矩阵解线性方程组的几种方法,通过对线性方程组的系数矩阵(或增广矩阵)进行初等变换得到其解,并列举出几种用矩阵解线性方程组的简便方法。 第二章用矩阵消元法解线性方程组 第一节预备知识 定义1:一个矩阵中不等于零的子式的最大阶数叫作这个矩阵的秩。定理1:初等变换把一个线性方程组变为一个与它同解的线性方程组。 定义2:定义若阶梯形矩阵满足下面两个条件: (1)B的任一非零行向量的第一个非零分量(称为的 一个主元)为1; (2)B中每一主元是其所在列的唯一非零元。 则称矩阵为行最简形矩阵。 第二节 1.对一个线性方程组施行一个初等变换,相当于对它的增广矩

阵施行一个对应的行初等变换,而化简线性方程组相当于用行初等变换化简它的增广矩阵,因此,我们将要通过花间矩阵来讨论化简线性方程组的问题。这样做不但讨论起来比较方便,而且能给我们一种方法,就一个线性方程组的增广矩阵来解这个线性方程组,而不必每次都把未知量写出来。 下面以一般的线性方程组为例,给出其解法: (1) 11112211 21122222 1122 , , . n 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 +++= +++= +++ = 根据方程组可知其系数矩阵为: (2) 11121 21222 12 n n m m mn a a a a a a a a a ?? ? ? ? ? ??? 其增广矩阵为: (3) 111211 212222 12 n n m m mn m a a a b a a a b a a a b ?? ? ? ? ? ??? 根据(2)及矩阵的初等变换我们可以得到和它同解的线性方程组,并很容易得到其解。 定理2:设A是一个m行n列矩阵

矩阵及方程组求解

第1章矩阵及其基本运算 MATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。因此,本书从最基本的运算单元出发,介绍MATLAB的命令及其用法。 1.1 矩阵的表示 1.1.1 数值矩阵的生成 1.实数值矩阵输入 MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。 不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([ ])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] Time = 11 12 1 2 3 4 5 6 7 8 9 10 >> X_Data = [2.32 3.43;4.37 5.98] X_Data = 2.43 3.43 4.37 5.98 >> vect_a = [1 2 3 4 5] vect_a = 1 2 3 4 5 >> Matrix_B = [1 2 3; >> 2 3 4;3 4 5] Matrix_B = 1 2 3 2 3 4 3 4 5 >> Null_M = [ ] %生成一个空矩阵 2.复数矩阵输入 复数矩阵有两种生成方式: 第一种方式 例1-1 >> a=2.7;b=13/25; >> C=[1,2*a+i*b,b*sqrt(a); sin(pi/4),a+5*b,3.5+1] C= 1.0000 5.4000 + 0.5200i 0.8544 0.7071 5.3000 4.5000

matlab下的矩阵运算

第二讲矩阵运算 §1基本矩阵运算元 我们在第一讲章已说明过 MATLAB 的运算是以数组(array>及矩阵 (matrix> 方式在做运算,而这二者在MATLAB的基本运算性质不同,数组强调元素对元素的运算,而矩阵则采用线性代数的运算方式。我们就来说明矩阵运算的特点。 以下将数组及矩阵的运算符号及其意义列出 >> A=[2 5 1。 7 3 8。 4 5 21。 16 13 0]。 >> A' % A的转置矩阵 A = 2 7 4 16 5 3 5 13 1 8 21 0 >> A=[4 -1 3]。 B=[-2 5 2]。 >> dot_prod = sum(A.*B> % 二个数组做内积 dot_prod = -7 >> c=dot(A,B> % 以dot函数也可做内积运算 c = -7 >> A=[4。 -1。 3]。 >> dot_prod = sum(A'.*B>。 % 如果A是行数组则先做转置,再做内积

>> F=[2 5 -1]。 G=[0 1 -3]。 >> out_prod=F'*G。 % 二矩阵做外积 >> A=[2,5,1。 0,3,-1]。 >> B=[1,0,2。 -1,4,-2。 5,2,1]。 >> C=A*B % 矩阵相乘,注意二个矩阵的大小须相容 C = 2 22 -5 -8 10 -7 >> A=[2 1。 4 3]。 >> A^2 % 矩阵次方 ans = 8 5 20 13 下面我们演示一个具体的例子。 假设我们把本地区的天气分为3种状态:晴,阴,雨。若今天天阴,则明天天晴的概率为1/2,阴的概率为1/4,下雨的概率为1/4。如果今天天阴,或者今天下雨,则明天天气是其它情况的概率会是其它的值,将这些概率值列入下面的表中。 天气状态转移概率表 2行第3列(最后一列>的值为1/2,,这给出了今天下雨明天转阴的概率。 将上表内的概率数据用矩阵A表示 矩阵A中概率称为转移概率,矩阵A称为转移矩阵。 已知今天天气晴、阴、雨的概率,可以用转移矩阵A提供的数据来计算明天天气晴、阴 、雨的概率。记、、分别为今天天气是晴、阴、雨的概率,、、分别为明

矩阵方程的数值解法开题报告

毕业论文开题报告 信息与计算科学 矩阵方程的数值解法 一、选题的背景、意义 1.选题的背景 在科学、工程计算中,求解矩阵方程的任务占相当大的份额。这是因为,矩阵方程不仅能以完整的形式作为许许多多实际问题的模型之一,而且还能作为不少其他数值方法处理过程中转化而成的组成部分。例如,在电路网络、弹性力学、潮流计算、热传导、振动等领域,其基本模型就是矩阵方程,而求微分方程边值问题的差分法和有限元法等数值计算本身,也导致求解某些矩阵方程。在系统控制等工程研究领域经常遇到矩阵方程的求解问题。自动控制系统最重要的一个特征是稳定性问题,它表示系统能妥善地保持预定工作状态,耐受各种不利因素的影响,因此矩阵方程在系统的稳定性理论,极点配置等方面具有重要的意义。在常微分方程的定性研究以及数值求解常微分方程的隐式Rung-kwtta方法和块方法中,也需要求解矩阵方程。此外,在广义特征值问题的摄动研究中及隐式常微分方程的数值解中,经常遇到矩阵方程的求解问题。 1.1.2选题的意义 随着科学技术的迅速发展,矩阵方程越来越多地出现在科学与工程计算领域,关于这类问题的研究也日益受到人们的高度重视.对矩阵方程的研究具有很重要的理论意义和很高的应用价值.所以,学会如何更好的解矩阵方程就显得非常重要。本文主要介绍了解矩阵方程的高斯消元法、Jacobi迭代法、Gauss-Seidcl迭代法和SOR迭代方法。在这些方法的基础上,利用matlab软件,快速求出矩阵方程的解。通常熟练使用这些工具或编写程序,而这通常是一项入门缓慢、熟练精通时间较长的工作。MATLAB在提供强大的计算功能,也为我们用数值方法求解矩阵方程提供了很大的方便。 1.1.3求解线性方程组 由于线性方程组是矩阵方程的一个特例,所以本文试图将解线性方程组的一些经典方法推广用来解矩阵方程。 记线性方程组为

Matlab 矩阵运算

Matlab 矩阵运算 说明:这一段时间用Matlab做了LDPC码的性能仿真,过程中涉及了大量的矩阵运算,本文记录了Matlab中矩阵的相关知识,特别的说明了稀疏矩阵和有限域中的矩阵。Matlab的运算是在矩阵意义下进行的,这里所提到的是狭义上的矩阵,即通常意义上的矩阵。 目录 第一部分:矩阵基本知识 一、矩阵的创建 1.直接输入法 2.利用Matlab函数创建矩阵 3.利用文件创建矩阵 二、矩阵的拆分 1.矩阵元素 2.矩阵拆分 3.特殊矩阵 三、矩阵的运算 1.算术运算 2.关系运算 3.逻辑运算 四、矩阵分析 1.对角阵 2.三角阵 3.矩阵的转置与旋转 4.矩阵的翻转 5.矩阵的逆与伪逆 6.方阵的行列式 7.矩阵的秩与迹 8.向量和矩阵的范数 9.矩阵的特征值与特征向量 五、字符串 六、其他 第二部分矩阵的应用 一、稀疏矩阵

1.稀疏矩阵的创建 2.稀疏矩阵的运算 3.其他 二、有限域中的矩阵 内容 第一部分:矩阵基本知识(只作基本介绍,详细说明请参考Matlab帮助文档) 矩阵是进行数据处理和运算的基本元素。在MATLAB中 a、通常意义上的数量(标量)可看成是”1*1″的矩阵; b、n维矢量可看成是”n*1″的矩阵; c、多项式可由它的系数矩阵完全确定。 一、矩阵的创建 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]“内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 下面介绍四种矩阵的创建方法: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b 是生成向量的第一个和最后一个元素,n是元素总数。可以看出来linspace(a, b,n)与a:(b-a)/(n-1):b等价。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones (m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要

线性方程组的矩阵求解算法

线性方程组的矩阵求解算法 摘要 线性方程组的矩阵求解算法,只需在约当消元法的基础上,再对方程组的 增广矩阵的行最简形进行行(列)删除和增加行,交换行等运算即可得到方程组的解,并且这种方法既可求解有唯一解的方程组.因而算法简单,易于实现. 关键词 线性方程组;解向量;解法;约当消元法 1 矩阵求解算法 设有线性方程组m n A X b ?=,其增广矩阵())(1,m n A A b ?+=,算法的步骤如下: 第一步:利用约当消元法,把增广矩阵A 化为行最简形,设行最简形为()1m n B ?+.若()t i (),r A r =则方程组无解;否则设(),r A R =并执行以下步骤; 第二步:删除B 中的所有零行和每一行第一个非零元素(这个非零元素一定是1)所在的列,得到矩阵()1,r n r D ?-+并记录每行的第一个非零元所在的列标,放在一维数组()1, ,t r 中,如第i 行的第一个非零元在第j 列,则()t i j =; 第三步:构造矩阵() 1m n r D H F ?-+?? = ? ??,其中 ()() 1100001 0000 1 0n r n r F -?-+-?? ?- ? = ? ? -? ? 第四步:对矩阵H 中的行作交换运算:把H 中的第i 行(,1,1,i r r =-即从第r 行开始直到第一行)依次与其下一行交换,使之成为第()t i 行,交换运算结果后的矩阵记为G ,则G 中的前n r -个n 维列向量即为方程组的一个基础解系,最后一列向量即为方程组的一个特解; 第五步:写出方程组的通解. 2 算法证明 先证一个特殊情形,增广矩阵A 的行最简形矩阵B 的左上角为一r 阶的单位矩阵,即第i 行的第一个非零元的列标为i ,即()()1t i i i r =≤≤,所以设B 为

矩阵方程的解法

两类矩阵方程的行对称矩阵解 及AX=B的最佳逼近 摘要本文首先介绍了行对称矩阵的定义及性质,利用矩阵的广义 逆,奇异值分解,给出了矩阵方程AX=B有行对称解的充分必要条件及有解时通解的表达式;并给出了矩阵方程解集合中与给定矩阵的最佳 逼近解的表达式。最后利用奇异值分解给出了矩阵方程T 有行 AXA B 对称解的充分必要条件及有解时通解的表达式。 矩阵方程问题是指在满足一定条件的矩阵集合中求矩阵方程的 解的问题。不同的约束条件,不同的矩阵方程,就导致了不同的约束矩阵方程问题。约束矩阵方程问题在结构设计,参数识别,主成分分析,勘测,遥感,生物学,电学,固体力学,结构动力学,分子光谱学,自动控制理论,振动理论,循环理论等领域都有重要应用。 约束矩阵方程问题的内容非常广泛. 约束矩阵方程问题又分为 线性约束矩阵方程问题和非线性约束矩阵方程问题. 有关线性约束 矩阵方程问题的研究成果相当丰富. 其中最简单的矩阵方程AX = B 是研究最透彻的一类问题. 求解线性矩阵方程一般会遇到两种情况:一是当矩阵方程有解时,如何求它的解及最佳逼近;二是当矩阵方程无解时,如何求它的最小

二乘解。对于本文所研究的AX=B 、T AXA B =这两类简单矩阵方程,国 内外学者已经作了大量研究。都在相应的文献中对其进行了大量的研究,解决了求此方程的一些约束解和最小二乘解的问题。 自从针对工程应用领域提出了行对称矩阵概念之后,这方面研究已经取得了一些成果,如对行对称矩阵的一些性质,行对称矩阵的QR 分解。 本文先对行对称矩阵进行介绍,再将行对称矩阵与约束矩阵方程结合起来,先研究了矩阵方程AX=B 有行对称实矩阵解的充要条件,有解时,用奇异值分解及广义逆求出解及最佳逼近。再对矩阵方程 T AXA B =有行对称实矩阵解的充要条件进行了研究,利用奇异值分解 得出了有解时的充要条件及解的表达式。 设*m n R 表示全体n*m 阶实矩阵集合,rank(A)表示矩阵A 的秩,n J 表示 次对角线上元素全为1,其余元素全为0的方阵,即n J =*0 101n n ?? ? ? ?? ? ,显然有1 ,T n n n n J J J J -==成立。*n n OR 表示n 阶正交矩阵全体。 本文要讨论以下问题: 问题1 给定矩阵A,B ∈*m n ,求实行对称方阵X ,使得AX=B 。

用C语言求解N阶线性矩阵方程Ax=b的简单解法

用C语言求解N阶线性矩阵方程Ax=b的简单解法 一、描述问题: 题目:求解线性方程组Ax=b,写成函数。其中,A为n×n的N阶矩阵,x为需要求解的n 元未知数组成的未知矩阵,b为n个常数组成的常数矩阵。即 运行程序时的具体实例为: 转化为矩阵形式(为检验程序的可靠性,特意选取初对角线元素为0的矩阵方程组)即为: 二、分析问题并找出解决问题的步骤: 由高等代数知识可知,解高阶线性方程组有逆矩阵求解法、增广矩阵求解法等,而在计算机C语言中,有高斯列主消元法、LU分解法、雅克比迭代法等解法。 为了与所学的高等代数知识相一致,选择使用“高斯简单迭代消元法”,与高等代数中的“增广矩阵求解法”相一致。以下简述高斯消元法的原理: 算法基本原理:

首先,为了能够求解N阶线性方程组(N由用户输入),所以需要定义一个大于N维的数组a[dim+1][dim+1](dim为设定的最大维数,防止计算量溢出),当用户输入的阶数N超过设定值时提示重启程序重新输入。 进而,要判断方程组是否有解,无解提示重启程序重新输入,有解的话要判断是有无数不定解还是只有唯一一组解,在计算中,只有当原方程组有且只有一组解时算法才有意义,而运用高等代数的知识,只有当系数矩阵对应的行列式|A|≠0 时,原方程组才有唯一解,所以输入系数矩阵后要计算该系数矩阵的行列式 |A|(定义了getresult(n)函数计算),当行列式 |A|=0 时同样应提示重启程序重新输入,|A|≠0 时原方程组必然有且仅有唯一一组解。 判断出方程组有且仅有唯一一组解后,开始将系数矩阵和常数矩阵(合并即为增广矩阵)进行初等行变换(以a11 为基元开始,将第j列上j行以下的所有元素化为0),使系数矩阵转化为上三角矩阵。这里要考虑到一种特殊情况,即交换到第j-1列后,第j行第j列元素a jj=0 ,那此时不能再以a jj 为基元。 当变换到第j列时,从j行j列的元素a jj 以下的各元素中选取第一个不为0的元素,通过第三类初等行变换即交换两行将其交换到a jj 的位置上,然后再进行消元过程。交换系数矩阵中的两行,相当于两个方程的位置交换了。 再由高斯消元法,将第j列元素除a jj外第j行以下的其他元素通过第二种初等行变换化为0,这样,就能使系数矩阵通过这样的行变换化为一个上三角矩阵,即 , 当系数矩阵A进行初等行变换时,常数矩阵也要进行对应的初等行变换,即此 时 那么有

矩阵方程的求解问题

矩阵方程的求解问题 白秀琴 (平顶山工业职业技术学院,基础部,河南 平顶山 467001) 摘要:主要考察了矩阵方程的求解问题,给出了一般矩阵方程当系数矩阵满足不同 条件时的两种求解方法。 关键词:矩阵;矩阵的逆;矩阵方程 矩阵是线性代数中的最重要的部分,它贯穿于线性代数的始终,可以说线性代数就是矩阵的代数,矩阵是处理高等数学很多问题的有力工具。矩阵方程是矩阵运算的一部分,这里我们主要讨论如何求解矩阵方程的问题。掌握简单的矩阵方程的求法,对于求解复杂的矩阵方程有很大帮助。 简单的矩阵方程有三种形式:.,,C AXB C XA C AX ===如果这里的A 、B 都是可逆矩阵,则求解时需要找出矩阵的逆,注意左乘和右乘的区别。它们的解分别为: .,,1 1 1 1 ----===B A X CA X C A X 例如,求解方程C AC =先考察A 是否可逆,如果A 可逆时,方程两边同时左乘1-A ,得,11C A AX A --=即,1C A X -=这里要注意只能左乘不能右乘,因为矩阵的乘法不满足交换律。同样,对于方程,C XA =只能右乘1-A ,得,1 1 --=CA XAA 即.1 -=CA X 而对 于方程,C A X B =只能是左乘1-A 而右乘1-B ,得,1 1 1 1----=CB A ACBB A 即 .1 1 --=CB A X 看下面解矩阵方程例题: 例1:???? ? ?? ???=???????? ??3154 32 34 3 122 321 X 解:先求出1-A ,则,11 1 25323231 34 3122 3211 ??????????--- -=???? ? ??? ??-则 ???? ? ?????--=????????? ???????????----=??????? ???-???????? ??=3321 23315432 11 12 532 3231 3154 32 134 3122 321 X 例2:??????-=???? ? ??? ??21210134 3 122 321X

MATLAB矩阵运算函数

MATLAB矩阵运算函数表 函数名函数功能 abs()绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double() char()可以把ASCII码数值矩阵转换为字符串矩阵 fix()向零方向取整 floor()不大于自变量的最大整数 ceil()不小于自变量的最小整数 round()四舍五入到最邻近的整数 rem(x,y)求余函数 mod(x,y)% exp()指数函数 []空操作符 format格式符设置或改变数据输出格式(其中格式符决定数据的输出格式) e1:e2:e3冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n)产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j)表示取A矩阵的第j列全部元素 A(i,:)表示A矩阵第i行的全部元素 A(i,j)表示取A矩阵第i行、第j列的元素 A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros产生全0矩阵(零矩阵) ones产生全1矩阵(幺矩阵) eye产生单位矩阵 rand产生0~1间均匀分布的随机矩阵 randn产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A))建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n)在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n)生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V)生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n)生成希尔伯特矩阵 invhilb(n)求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y)生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

矩阵方程的简化求解方法

矩阵方程的简化求解方法 来源:文都教育 与通常意义上的方程类似,矩阵方程是指以矩阵为未知量的矩阵等式. 求解矩阵方程本质上就是矩阵的运算特别是矩阵乘法和求逆矩阵的运算,因此求解矩阵方程,求出未知矩阵的表达式应充分地利用矩阵的运算及其性质先化简,将其化为矩阵方程的以下几种基本形式: (1),(2),(3).AX B XA B AXB C === 若A 和B 均可逆,那么可求得待求矩阵分别为1111,,.X A B X BA X A CB ----===当A 和B 均不可逆时,常将矩阵方程用待定元素法转化为解线性方程组. 在实际的计算中,往往不可能恰好给出以上三种形式,需要经过一番整理和化简,再应用相关知识使其露出“庐山真面目”. 本文将就典型的情况,加以说明,为这类题目的简化求解提供帮助. 1. 对已知2 A aA bE O ++=,需求1()A kE -+或()A kE +(其中k 为常数)的矩阵方程常用凑因子矩阵的方法来求解. 可将原方程化为()A kE B E +=或者()B A kE E +=的形式,从而B 就是待求的A kE +的逆矩阵. 下面举例加以说明. 例1 设矩阵方程满足24A A E O +-=,其中E 为单位矩阵,则1()A E --= . 解 先对2 A 与A 两项分别凑出因子A E -,过程如下: 24A A E O +-=222()()4A E E A E E E O ?-++-+-= ()()()2A E A E A E E ?-++-= ()()2A E A E E E ?-++=. 所以,1()A E --=(2)2A E +. 2. 求解AX B =或XA B =,其中A 为不可逆矩阵 常用解方程组的方法来求解这类问题,通常设出所求矩阵的行数、列数及其待定元素,

相关文档
最新文档