实验2-行列式及方程组的求解.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档