- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
線性代数的基本运算
第5章 线性代数的基本运算
本章学习的主要目的:
1 复习线性代数中有关行列式、矩阵、矩阵初等变换、向量的线性相关性、线性方程组的求解、相似矩阵及二次型的相关知识.
2学会用MatLab软件进行行列式的计算、矩阵的基本运算、矩阵初等变换、向量的线性相关性的判别、线性方程组的求解、二次型化标准形的运算.
5.1 行列式
5.1.1 n阶行列式定义
由个元素组成的记号
D=
称为n阶行列式.其值是所有取自不同行不同列的n个元素的乘积的代数和,各项的符号由n级排列决定,即
D=,
其中表示对所有n级排列求和, 是排列的逆序数.
5.1.2 行列式的性质
(1) 行列式与它的转置行列式相等.
(2) 互换行列式的两行(列),行列式变号.
(3) 若行列式有两行(列)完全相同,则此行列式为零.
(4) 行列式的某一行(列)中所有的元素都乘以同一数k,等于用数k乘此行列式.
(5) 若行列式有两行(列)元素成比例,则此行列式为零.
(6) 若行列式的某一列(行)的元素是两数的和,则此行列式等于对应两个行列式之和.即
(7) 若行列式的某一行(列)的各元素乘以同一数加到另一行(列)对应的元素上去,行列式不变.
(8) 行列式等于它的任一行(列)的各元素与其对应的代数余子式乘积之和,即
,
或
(9) 设A,B是n阶方阵,则 ,,,
(10)若A是n阶可逆矩阵,则,
(11) 设是n阶方阵A的特征值,则,
(12) 设是n阶方阵A的伴随矩阵,则
(13) 几种特殊行列式的计算:
,
,
5.1.3 MatLab计算行列式的命令
det(var) %计算方阵var的行列式
例1 计算行列式的值
在MatLab命令窗口输入:
A=[1,-3,2,2;-3,4,0,9;2,-2,6,2;3,-3,8,3]
det(A)
执行结果:
A = 1 -3 2 2
-3 4 0 9
2 -2 6 2
3 -3 8 3
ans = -50
例2 计算行列式的值,其中a,b,c,d是参数.
在MatLab命令窗口输入:
syms a b c d
A=[a,1,0,0;-1,b,1,0;0,-1,c,1;0,0,-1,d]
det(A)
执行结果:
A =[ a, 1, 0, 0]
[ -1, b, 1, 0]
[ 0, -1, c, 1]
[ 0, 0, -1, d]
ans =a*b*c*d+a*b+a*d+c*d+1
例3 求方程的根.
先求行列式的值
在MatLab命令窗口输入:
syms x
A=[1,1,1,1;1,-2,2,x;1,4,4,x*x;1,-8,8,x^3]
y=det(A)
执行结果:
A =
[ 1, 1, 1, 1]
[ 1, -2, 2, x]
[ 1, 4, 4, x^2]
[ 1, -8, 8, x^3]
y =-12*x^3+48*x+12*x^2-48
(2) 求3次方程的根.
首先通过函数的图形确定根的大致范围,
在MatLab命令窗口输入:
grid on
ezplot(y)
图 1
观察图1,可知3个根大致在-2,0,4附近,下面求精确值,
在MatLab命令窗口输入:
yf=char(y);
g1=fzero(yf,-2)
g2=fzero(yf,0)
g3=fzero(yf,4)
执行结果:
g1 = -2
g2 = 1.0000
g3 = 2.0000
可知方程的3个根分别为-2,1,2.
5.1.4用MatLab实现克拉默法则
(1)克拉默法则
非齐次线性方程组方程组
当其系数行列式时,此方程组有唯一解,
且可表示为
其中是把系数行列式中第j列的元素用方程组右端的常数项代替后所得到的n阶行列式,即
对于齐次线性方程组
当其系数行列式
时,此方程组有唯一零解;当D=0时,方程组有非零解.
编写函数klm.m实现用克拉默法则求解非齐次线性方程组.
function x=klm(a,b) %参数a代表方程组的系数矩阵,列矩阵b代表方程组的常数列,
%返回方程组的解
[m,n]=size(a);
if (m~=n)
disp(克拉默法则不适用此方程组的求解!)
else
d=det(a);
if (d==0)
disp(该方程组没有唯一解!)
else
disp(该方程组有唯一解!)
for i=1:m
e=a;
e(:,i)=b;
f=det(e);
x(i)
文档评论(0)