收藏 分销(赏)

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

上传人:a199****6536 文档编号:2554348 上传时间:2024-05-31 格式:DOC 页数:10 大小:169.04KB
下载 相关 举报
实验2-行列式与方程组的求解.doc_第1页
第1页 / 共10页
实验2-行列式与方程组的求解.doc_第2页
第2页 / 共10页
实验2-行列式与方程组的求解.doc_第3页
第3页 / 共10页
实验2-行列式与方程组的求解.doc_第4页
第4页 / 共10页
实验2-行列式与方程组的求解.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、实验2-行列式与方程组的求解 作者: 日期:10 个人收集整理 勿做商业用途2 行列式与方程组的求解1. 求行列式的命令;2. 求矩阵秩的命令;3. 求矩阵的最简行矩阵的命令;4. 满秩线性方程组的各种方法;5. 符号变量的应用;6. 验证与行列式相关的公式和定理。例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,

2、10; b=80;59;90;22;85; x=inv(A)*b 或:x=A1*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=Ab 符号“”即为左除运算,注意它的方

3、向.结果为:x = 9.0000 3。0000 2。0000 1.00002。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代替系数行列式

4、的第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

5、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得到以下人机对话结果:方程个数n5n = 5系数矩阵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,10A = 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常数

6、列向量b=80;59;90;22;85b = 80 59 90 22 85x = 9 3 2 1 2例2。2求矩阵的逆,要求用以下方法:(1)矩阵左除和右除运算;(2)初等行变换;(3)利用伴随矩阵求逆的公式。解:在MATLAB的M文件编辑器中,编写程序la02.m: 逆矩阵各种求法:clearA=7,2,-6,4,6;1,3,-6,3,11;3,-11,9,5,2;3,0,-2,9,-3;7,30,-18,11,4; 1。命令法:An1=inv(A) 2.幂运算法:An2=A-1% 3。右除法:An3=eye(5)/A eye(5)为5阶单位矩阵% 4。左除法:An4=Aeye(5)% 5.

7、初等行变换法:B=rref(A,eye(5); 对矩阵A , I 进行初等行变换 B为矩阵A的最简行阶梯矩阵if(rank(B(:,1:5)=5) % 判断最简行阶梯矩阵B的前5列是否为单位阵An5=B(:,6:10) % 取出矩阵的后5列,并显示elsedisp(A不可逆);end% 6.伴随矩阵求逆法:for i=1:5 构造伴随矩阵的55个元素 for j=1:5 T=A; % 把矩阵A赋给矩阵T T(i,:)=; 删去矩阵T的第i行 T(:,j)=; % 删去矩阵T的第j列 此时,|T| 为矩阵A元素aij的余子式 AA(j,i)=(-1)(i+j)*det(T); % 算出aij的代

8、数余子式 并放入矩阵AA的第j行、第i列% 当循环结束,矩阵AA即为A的伴随矩阵 endendif det(A)=0An6=AA/det(A)elsedisp(A不可逆);end运算程序la02,前四个方法计算结果相同: 1.0e+004 -1.5895 1。3448 1。0646 1。6206 0。6308 1.6298 1.3789 1。0916 -1。6617 0。6468 2。5392 -2.1483 1。7007 -2。5889 1.0077 0。3631 0.3072 0。2432 -0.3702 0.1441 0。9860 -0.8342 0.6604 1。0053 0。3913

9、后两个方法计算结果相同: -15895 13448 -10646 16206 6308 16298 -13789 10916 16617 6468 25392 21483 17007 -25889 10077 3631 3072 2432 -3702 1441 9860 -8342 6604 -10053 3913从计算结果可以发现,前四个方法得到的是实数矩阵,而后两个方法得到的是整数矩阵。如果在Matlab环境下,键入:format long然后再重新运行该程序,会发现前四个方法的运算结果存在误差,这是计算机做数值运算时,存在舍入误差的原因。为了进一步观察计算机做数值运算所产生的误差,现在用

10、上述六种方法来计算矩阵的逆,A=1,2,3;10,10,10;11,12,13前四种方法得到以下类似结果:Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.135044e-018。ans = 1.0e+015 4。5036 4。5036 4。5036 9.0072 9.0072 9。0072 -4.5036 4.5036 4.5036显然此结果是不正确的,因为A不可逆。例2.3 解方程:。解:Matlab软件定义了“符号变量”的概念.在MATLAB的M文件编辑器中

11、,应用“符号变量”编写程序la03.m:% 求解符号行列式方程clear all % 清除各种变量syms x % 定义x为符号变量A=3,2,1,1;3,2,2x2,1;5,1,3,2;7x2,1,3,2 给矩阵A赋值D=det(A) % 计算含符号变量矩阵A的行列式Df=factor(D) 对行列式D进行因式分解 从因式分解的结果,可以看出方程的解X=solve(D) % 求方程“D0”的解在MATLAB的命令窗口输入:la03运行结果为:A = 3, 2, 1, 1 3, 2, 2-x2, 1 5, 1, 3, 2 7x2, 1, 3, 2D =-6+9x23x4f =-3(x1)*(x

12、+1)(x22)X = 1 1 2(1/2) -2(1/2)例2。4 请用Matlab软件验证行列式按行(列)展开公式:解:在MATLAB的M文件编辑器中,编写程序la04.m:% 验证行列式按行(列)展开公式clearA=round(10*randn(5); % 构造5阶随机数方阵D=det(A); 计算矩阵A的行列式 矩阵A按第一行元素展开:s=a11*A11+a12*A12+a15*A15s=0;for i=1:5 T=A; T(1,:)=; 删去阵矩第1行 T(:,i)=; % 删去矩阵第i列 % 此时,|T 为矩阵A元素a1i的余子式 s=s+A(1,i)*(-1)(1+i)*det

13、(T);ende=Ds % 验算D与s是否相等在MATLAB的命令窗口中输入:la04计算结果为:e = 0在MATLAB的M文件编辑器中,编写程序la05。m:% 计算5阶方阵A的第一行元素与第三行元素对应的代数余子式乘积之和: s=a11*A31+a12A32+a15*A35clearA=round(10randn(5)); 构造5阶随机数方阵s=0;for i=1:5 T=A; T(3,:)=; % 删去矩阵第3行 T(:,i)=; % 删去矩阵第i列 此时,|T 为矩阵A元素a3i的余子式 s=s+A(1,i)(-1)(3+i)det(T);ends 验算s是否为0在MATLAB命令窗

14、口中输入:la05计算结果为:s = 0例2。5 计算行列式的值。解 在MATLAB编辑器中建立M文件:syms a b c d A=1 1 1 1;a b c d;a2 b2 c2 d2;a4 b4 c4 d4;d1=det(A)d2=simple(d1) 用 simple函数化简表达式d1pretty(d2) 用pretty函数使表达式d2符合人们的书写习惯。则结果显示为:d1 =b*c2*d4-b*d2*c4-b2cd4+b2*d*c4+b4*c*d2b4*dc2-a*c2*d4+a*d2*c4+a*b2d4-a*b2c4ab4d2+ab4c2+a2c*d4-a2*dc4-a2b*d4+a2*b*c4+a2b4*da2b4ca4cd2+a4dc2+a4bd2a4*b*c2a4*b2*d+a4b2cd2 =(d+c)*(b-d)(b-c)(d+a)(a-c)(a-b)*(a+c+d+b) (-d + c) (b - d) (b - c) (d + a) (a - c) (a b) (a + c + d + b)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服