- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2 行列式与方程组的求解
求行列式的命令;
求矩阵秩的命令;
求矩阵的最简行矩阵的命令;
满秩线性方程组的各种方法;
符号变量的应用;
验证与行列式相关的公式和定理。
例2.1 已知非齐次线性方程组:
,
要求用下列方法求解该方程组。
(1)求逆矩阵法;
(2)矩阵左除法;
(3)初等行变换;
(4)克莱姆法则。
解:(1)把非齐次线性方程组写为矩阵形式:
,则,直接在MATLAB的命令窗口输入:
A=[6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10];
b=[80;59;90;22;85];
x=inv(A)*b
%或:x=A^-1*b
计算结果为:
x =
9.0000
3.0000
2.0000
1.0000
2.0000
(2)矩阵的乘法不遵守乘法交换律,
Matlab软件定义了矩阵左除和矩阵右除运算,
针对方程组的矩阵形式,可用左除法
等式两端同时左除A,得到:“”,即
针对矩阵方程,,可用右除法,等式两端同时右除A,,
即
在MATLAB命令窗口中输入:
A=[6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10];
b=[80;59;90;22;85];
x=A\b
% 符号“\”即为左除运算,注意它的方向。
结果为:
x =
9.0000
3.0000
2.0000
1.0000
2.0000
(3)用初等行变换,
把方程组的增广矩阵变换为最简行阶梯形式,
从而得到方程组的解。在MATLAB命令窗口中输入:
A=[6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10];
b=[80;59;90;22;85];
U=rref([A,b])
运算结果为:
U =
1 0 0 0 0 9
0 1 0 0 0 3
0 0 1 0 0 2
0 0 0 1 0 1
0 0 0 0 1 2
(4)根据克莱姆法则,有:,
其中是方程组的系数行列式,
是用常数列向量b代替系数行列式的
第i列所得到的行列式。
用Matlab的M文件编辑器,编写la01.m文件如下:
% 用克莱姆法则求解方程组
clear % 清除变量
n=input(方程个数n=) % 请用户输入方程个数
A=input(系数矩阵A=) % 请用户输入方程组的系数矩阵
b=input(常数列向量b=) % 请用户输入常数列向量
if (size(A)~=[n,n]) | (size(b)~=[n,1])
% 判断矩阵A和向量b输入格式是否正确
disp(输入不正确,要求A是n阶方阵,b是n维列向量)
% disp:显示字符串
elseif det(A)==0 % 判断系数行列式是否为零
disp(系数行列式为零,不能用克莱姆法则解此方程。)
else
for i=1:n % 计算x1,x2,...xn
B=A; % 构造与A相等的矩阵B
B(:,i)=b; % 用列向量b替代矩阵B中的第i列
x(i)=det(B)/det(A); % 根据克莱姆法则计算x1,x2,...xn
end
x=x % 以列向量形式显示方程组的解
end
在MATLAB命令窗口中输入:
la01
得到以下人机对话结果:
方程个数n=5
n =
5
系数矩阵A=
[6,2,3,4,5;2,-3,7,1
文档评论(0)