matlab可以把矩阵求解线性方程组组转化为矩阵形式吗

1902人阅读
Matlab(6)
我们知道,求解线性方程组是线性代数课程中的核心内容,而矩阵又在求解线性方程组的过程中扮演着举足轻重的角色。下面我们就利用科学计算软件MATLAB来演示如何使用矩阵,同时,也使学生对线性代数的认识更加理性。
一、矩阵的构造
在MatLab中,构造矩阵的方法有两种。一种是直接法,就是通过键盘输入的方式直接构造矩阵。另一种是利用函数产生矩阵。
例1.利用pascal函数来产生一个矩阵
A=pascal(3)
例2.利用magic函数来产生一个矩阵
B=magic(3)
例3.还可以利用函数产生一个4*3的随机矩阵
&&c=rand(4,3)
&&& 0.9501&&& 0.8913&&& 0.8214
&&& 0.2311&&& 0.7621&&& 0.4447
&&& 0.6068&&& 0.4565&&& 0.6154
0.4860&&& 0.0185&&& 0.7919
例4.利用直接输入法可产生列矩阵、行矩阵及常数
v=[2 0 -1]
2&& 0&& -1
二、矩阵的基本运算
1、四则运算
例5.矩阵的加法
4&& 7&& 10
5&& 12&& 8
例6.矩阵的减法
注: 若二个矩阵的大小不完全相同,则会出错!
例如,X=A+u
??? Error using ==& plus
Matrix dimensions must agree。
例7.矩阵的乘法
15&&& 15&&& 15
26&&& 38&&& 26
41&&& 70&&& 39
注: 若第一个矩阵的列数和第二个矩阵行数不相同,这两个矩阵就不可以相乘。
例如,X=A*v
??? Error using ==& mtimes
Inner matrix dimensions must agree。
在MATLAB中,矩阵的除法有两个运算符号,分别为左除“/”与右除“/”,矩阵的右除运算速度要慢一点,而左除运算可以避免奇异矩阵的影响,它们的作用主要用于求解线性方程组,我们在后面会涉及到矩阵的除法。
2、矩阵的转置、逆运算及行列式运算
与线性代数中一样,矩阵的转置只需用符号“,”来表示即可。
例8.求矩阵B的转置
线性代数中求矩阵逆的运算非常复杂,而在MATLAB中,矩阵的逆运算只需要函数“inv”来实现,这大大简化了计算过程。
例9.求矩阵A的逆
3&&&& -3&&&& 1
-3&&&& 5&&& -2
1&&&& -2&&&& 1
在MATLAB中,求矩阵的行列式大小,可用函数“det”实现。
例10.求矩阵A的行列式
注:&在求矩阵的逆和行列式时,一定要求矩阵是一个方阵,否则会出错!
例如,&&X=inv(u)
??? Error using ==& inv
Matrix must be square。
再如,X=det(u)
??? Error using ==& det
Matrix must be square。
三、矩阵的常用函数运算
1.矩阵的特征值运算
在线性代数中,计算矩阵特征值及特征向量的过程相当麻烦,但在MATLAB中,矩阵特征值运算只需要函数“eig”或“eigs”即可。
例11.求矩阵A的特征值及特征向量
&&[b,c]=eig(A)
&& -0.5438&& -0.8165&&& 0.1938
&&& 0.7812&& -0.4082&&& 0.4722
&& -0.3065&&& 0.4082&&& 0.8599
&&& 0.1270&&&&&&&& 0&&&&&&&& 0
&&&&&&&& 0&&& 1.0000&&&&&&&& 0
&&&&&&&& 0&&&&&&&& 0&&& 7.8730
上例中的b、c矩阵分别为特征向量矩阵和特征值矩阵。
2.矩阵的秩运算
矩阵的秩在求解线性方程组中应用非常广泛,而在线性代数中计算矩阵的秩也非常复杂,但在MATLAB中,矩阵的秩只需要用函数“rank”即可。
例12.求矩阵A的秩
&&x=rank(A)
3.矩阵的正交化运算
在MATLAB中,矩阵的正交化运算可由函数“orth”计算得到。下面的例子用来求矩阵的一组正交基,有了正交基就可以对矩阵进行正交化了。
例13.求矩阵A的正交基
&&x=orth(A)
&& -0.1938&&& 0.8165&&&0.5438
&& -0.4722&&& 0.4082&& -0.7812
&& -0.8599&& -0.4082&&& 0.3065
4.矩阵的迹运算
矩阵的迹是指矩阵主对角线上所有元素的和,在MATLAB中,矩阵的迹可由函数“trace”计算得到。
例14.求矩阵A的迹
&&x=trace(A)
四、特殊矩阵的生成
MATLAB中提供了几个特殊矩阵,主要包括如下:
空矩阵用“[]”表示,空矩阵的大小为零,但变量名存在于工作空间中。
2.单位矩阵
在MATLAB中,单位矩阵可用函数“eye(n,m)”实现,其中n表行数,m表列数。
&&x=eye(4,3)
&&&& 1&&&& 0&&&& 0
&&&& 0&&&& 1&&&& 0
&&&& 0&&&& 0&&&& 1
&&&& 0&&&& 0&&&& 0
3.全部元素为1的矩阵
在MATLAB中,全部元素为1的矩阵可用函数“ones(n,m)”实现。
&&x=ones(4,3)
&&&& 1&&&& 1&&&& 1
&&&& 1&&&& 1&&& &1
&&&& 1&&&& 1&&&& 1
1&&&& 1&&&& 1
4.全部元素为0的矩阵
在MATLAB中,全部元素为0的矩阵可用函数“zeros(n,m)”实现。
&&x=zeros(4,3)
&&&& 0&&&& 0&&&& 0
&&&& 0&&&& 0&&&& 0
&&&& 0&&&& 0&&&& 0
0&&&& 0&&&& 0
5.魔方矩阵
魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。MATLAB提供了求魔方矩阵的函数“magic(n)”,其功能是生成一个n阶魔方阵。6.伴随矩阵
在MATLAB中,某个矩阵的伴随矩阵可用函数“compan(A)”实现。
&&u=[1 0 -7 6];
&&x=compan(u)
&&&& 0&&&& 7&&& -6
&&&& 1&&&& 0&&&& 0
0&&&& 1&&&& 0
注:&函数compan()中的变量必须是向量形式,而不能是矩阵。
7.随机矩阵
随机矩阵在数理统计的研究中非常重要,它们表示元素服从某个分布如均匀分布、正态分布的矩阵。在MATLAB中,随机矩阵可用函数“rand(n,m)”实现。
&&x=rand(4,3)
&&& 0.9501&&& 0.8913&&& 0.8214
&&& 0.2311&&& 0.7621&&& 0.4447
&&& 0.6068&&& 0.4565&&& 0.6154
0.4860&&& 0.0185&&& 0.7919
8.帕斯卡矩阵
我们知道,二次项 展开后的系数随n的增大组成一个三角形表,称为
杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵,函数pascal(n)生成一个n阶帕斯卡矩阵。
&&x=pascal(3)
&&&& 1&&&& 1&&&& 1
&&&& 1&&&& 2&&&& 3
&&&& 1&&&& 3&&&& 6
9.范得蒙矩阵
在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:914974次
积分:8562
积分:8562
排名:第1755名
原创:87篇
转载:159篇
评论:224条
阅读:14711
阅读:46507
(2)(4)(2)(3)(2)(1)(1)(5)(1)(1)(2)(6)(10)(10)(3)(1)(1)(1)(8)(1)(4)(6)(1)(12)(9)(1)(20)(4)(4)(4)(1)(3)(19)(8)(1)(1)(4)(2)(8)(9)(1)(1)(8)(11)(8)(5)(7)(6)(1)matlab如何使一个多元一次方程组从等式的形式变为矩阵的形式?如有多元一次方程组:ax+by+cz=n;dx+ey+fz=m;gx+hy+iz=l。其中x,y,z为未知量,a-i为已知量。使其变为矩阵的形式。注意:a-i与x,y,z均为符号变量!!!没有常数!
clcsyms a b c d e f g h i n m l x y zS=[g h i]*[x;y;z]-[n;m;l]s=solve(S,x,y,z)
为您推荐:
扫描下载二维码matlab如何求线性方程组的系数矩阵如何从线性方程组中提取系数矩阵.比如:2*x+3*y+4*zx+4*3+8*z要提取[2 3 41 4 8]这个矩阵,怎么实现呢?感激不尽
Coefficient命令
为您推荐:
其他类似问题
扫描下载二维码用Matlab学习线性代数;线性方程组与矩阵代数;实验目的:熟悉线性方程组的解法和矩阵的基本运算及;Matlab命令:;本练习中用到的Matlab命令有:inv,flo;本练习引入的运算有:+,-,*,’,,\;实验内容:;1.用Matlab随机生成4?4的矩阵A和B;(1)C=A*B,D=B*A,G=(A’*B’);(2)C=A’*B’,D=(A*B)’,
用Matlab学习线性代数
线性方程组与矩阵代数
实验目的:熟悉线性方程组的解法和矩阵的基本运算及性质验证。
Matlab命令:
本练习中用到的Matlab命令有:inv,floor,rand,tic,toc,rref,abs,max,round,sum,eye,triu,ones,zeros。
本练习引入的运算有:+,-,*,’,,\。其中+和-表示通常标量及矩阵的加法和减法运算;*表示标量或矩阵的乘法;对所有元素为实数的矩阵,’运算对应于转置运算。若A为一个n?n非奇异矩阵(det!=0)且B为一个n?r矩阵,则运算A\B等价于A?1B。
实验内容:
1. 用Matlab随机生成4?4的矩阵A和B。求下列指定的C,D,G,H,并确定那些矩阵是相等的。你可以利用Matlab计算两个矩阵的差来测试两个矩阵是否相等。
(1)C=A*B,D=B*A,G=(A’*B’)’,H=(B’*A’)’
(2)C=A’*B’,D=(A*B)’,G=B’*A’,H=(B*A)’
(3)C=inv(A*B),D=inv(A)*inv(B),G=inv(B*A),H=inv(B)*inv(A)
(4)C=inv((A*B)’),D=inv(A’*B’),G=inv(A’)*inv(B’),H=(inv(A)*inv(B))’
(3)(4)中无相等的
2. 令 n=200,并使用命令
A=floor(10*rand(n));
b=sum(A’)’
z=ones(n,1);
注释:(n行一列全为1的矩阵)
生成一个n?n矩阵和两个Rn中的向量,它们的元素均为整数。(因为矩阵和向量都很大,我们添加分号来控制输出。
(1) 方程组 Ax?b的真解应为z。为什么? 【A中的每一行的元素之和
正好等于对应b的每一列,故z为其一解,又det不等于0,RA=RAb=n,故z为其解】试说明,可在Matlab中利用”\”运算或计算A?1,然后用计算A?1b来求解。比较这两种计算方法的速度和精度。我们将使用Matlab命令tic和toc来测量每一个计算过程消耗的时间。只需要用下面的命令:
tic,x=A\b;toc
tic,y=inv(A)*b; toc
哪一种方法更快?
tic,x=A\b;更快!
为了比较这两种方法的精度,可以测量求得的解x和y与真解z接近的程度。利用下面的命令:
max(abs(x-z))
max(abs(y-z))
哪种方法的到的解更精确?
&& max(abs(x-z))= 4.
&& max(abs(y-z)) = 6.
(2) 用n=500和n=1000替换(1)中的n。
如(1)结果一样!
3. 令A=floor(10*rand(6))。根据构造,矩阵A将有整数元。将矩阵A的第六列更改,使得矩阵A为奇异的。令
B=A’,A(:,6)=-sum(B(1:5,:))’
(1) 设x=ones(6,1),并利用Matlab计算Ax。为什么我们知道A必为奇
异的?【因化简列,――――&列成比例】试说明。通过化为行最简形来判断A是奇异的。
(2) 令B=x*[1:6],乘积AB应为零矩阵。为什么?【因A的每一行的前
五个元素之和等于第六个元素的相反数,且在A上的每一行的元素同乘以相同的数,则仍等于0】试说明。用Matlab的*运算计算AB进行验证。
(3) 令C=floor(10*rand(6))和D=B+C,尽管C?D,但乘积AC和AD是
相等的。为什么?试说明。计算A*C和A*D,并验证它们确实相等。
【此处B为令B=x*[1:6];A为A(:,6)=-sum(B(1:5,:))’】
由于A*B=0;故AC=AD;A(B+C)=AB+AC;
4. 采用如下方式构造一个矩阵。令
B=eye(10)-triu(ones(10),1),
参见最后附表二:
为什么我们知道B必为非奇异的?
【上三角矩阵的行列式的值等于对角线上的元素相乘】
令C=inv(B)且x=C(:,10),
现在用B(10,1)=-1/256将B进行微小改变。利用Matlab计算乘积Bx。
由这个计算结果,你可以得出关于新矩阵B的什么结论?【化简此时B,得行最简式,RB=9&10,可以得出B的第10列(从1―9行)与x互为相反数,且都是2的指数幂数,且第十行为0,】
它是否为奇异的?
试说明。用Matlab计算它的行最简形。
5. 生成一个矩阵A:
A=floor(20*rand(6))
并生成一个向量b:
B=floor(20*rand(6,1))-10
(1) 因为A是随机生成的,我们可以认为它是非奇异的。那么方程组
Ax?b应有唯一解。用运算“\”求解。用Matlab计算[A b]的行最简形U。比较U的最后一列和解x,结果是什么?【相等】在精确算术运算时,它们应当是相等的。为什么?【行最简式中可写出对应元素的实际含义,对应处的未知元就等于最后的数】试说明。为比较他们两个,计算差U(:,7)-x或用format long考虑它们。
(2) 现在改变A,试它成为奇异的。令 A(:,3)=A(:,1:2)*[4 3]’【第一
列乘以4加上第二列乘以3替换到第三列上】,利用Matlab计算rref([A b])。方程组Ax?b有多少组解?【无解】试说明。
【RA&R[AB]】
(3) 令 y=floor(20*rand(6,1))-10 且 c=A*y,为什么我们知道方程组
Ax=c必为 相容?的?【x此时必有一解y,故为相容的】试说明。计算[A c]的行最简形U。方程组Ax?b有多少组解?【无穷多解】试说明。【RA=RA c&6】
(4) 由行最简形确定的自由变量应为x3。通过考察矩阵U对应的方程
组,可以求得x3?0时所对应的解。将这个解作为列向量w输入
Matlab中。为检验Aw?c,计算剩余向量c?Aw。
(5) 令U(:,7)?zeros(6,1)。矩阵U应对应于?A|0?的行最简形。用U求
自变量x3?1时齐次线性方程组的解(手工计算),并将你的结果
输入为向量Z。用A*Z检验你的结论。
(6) 令v?w?3*z。向量v应为方程组Ax?c的解。为什么?试说明。
用Matlab计算剩余向量来验证v为方程组的解。在这个解中,自由变量x3的取值是什么? 【x3=3】
如何使用向量w和z来
求所有可能的方程组的解?【v=w+n*z,其中n为任意实数】试说明。
6. 考虑下图:
(1) 确定图的邻接矩阵A,将其输入Matlab;
(2) 计算A2并确定长度为2的路的条数【72】,其起止点分别为:【A^2+A
中的数值之和,数字表示有几种路径,具体看程序】
(3) 计算A4、A6、A8并回答(2)中各种情况长度为4、【368】6、【2362】
8、【15800】的路的条数。试推测什么时候从顶点Vi到Vj没有长度为偶数 【即为0】 的路。
【i=1,j=6;
i=3,j=6或8;
i=5,j=8;i=6,j=1或3;
i=8,j=3或6;】
(4) 计算A3、A5、A7并回答(2)中各情况长度为3、【154】5、【922】
7【6098】的路的条数。你由(3)得到的推测对长度为奇数的路是否成立?【不成立】,试说明【见程序】。推测根据i+j+k的奇偶性,
包含各类专业文献、高等教育、行业资料、外语学习资料、各类资格考试、文学作品欣赏、幼儿教育、小学教育、用Matlab学习线性代数_线性方程组与矩阵代数80等内容。 
 基础实验四_线性代数篇_数学_自然科学_专业资料。交大数学实验线性代数答案 ...学会利用 MATLAB 完成矩阵的基本运算,并熟练求解矩阵方程; 4. 学会利用 MATLAB ...  Matlab在线性代数中的应用_理学_高等教育_教育专区。Matlab 在线性代数中的应用 ...性矩阵:rref(A) ⑥LU 分解(三角分解) :[L,U]=lu(A) 2、线性方程组 &...  Matlab在线性代数中的应用_数学_自然科学_专业资料。Matlab 在线性代数中的应用§...另外欠定方程组可以使用求矩阵 A 的阶梯形行最简形式命令 rref(A),求出所有...  MATLAB的线性代数计算_工学_高等教育_教育专区。MATLAB的线性代数计算第...(一) 解线性方程组 Ax= b 一 (1) 矩阵 A 是一个 upper triangular ...  2 学会用 MatLab第5 章 线性代数的基本运算 本章学习的主要目的: 1 复习线性代数中有关行列式、矩阵、矩阵初等变换、向量 的线性相关性、线性方程组的求解、相似...  基础篇本篇包含五个线性代数的基础实验, 从矩阵运算到方程组的求解; 从向量组...本实验学习用 MATLAB 软件 进行矩阵基本运算。 启动 MATLAB 后,将显示 MATLAB ...  利用MATLAB求线性方程组_工学_高等教育_教育专区。MATLAB课程论文《...线性代数是讨论矩阵理论、 与矩阵结合的 有限维向量空间及其线性变换理论的一门...  矩阵求秩的数值与符号函数 rank() 5、mat_ex04.m 、 求解齐次线性方程组的 MATLAB 方法 6、mat_ex05.m 、 非齐次线性方程组的 MATLAB 求解 7、mat_ex06....  a = 4 该方程组只有零解 (2)编写程序如下: 线性代数实验报告 format rat ...和基本编程都有了了解与学习, ,并对 matlab 在矩阵方面的应 用有了一定程度...

我要回帖

更多关于 矩阵求解线性方程组 的文章

 

随机推荐