数学毕业论文《行列式计算的若干种方法及算法实现》Word格式文档下载.docx
《数学毕业论文《行列式计算的若干种方法及算法实现》Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数学毕业论文《行列式计算的若干种方法及算法实现》Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
柯西于1812年在法兰西学院发表了一篇行列式的相关论文,这篇文章于1815年在“综合工科学校杂志”(Journaldel’ecolePolytechnipue)正式发表,柯西在这篇长达84页的论文中,将贝祖,范德蒙德及莱布尼茨等人使用过的算式正式命名,并称其为“行列式”。
(在柯西之前,高斯的著作中曾经出现过“行列式”这一名词,但其文章中所谓的行列式实际是指二次型的“判别式”,他称二元二次型
的“判别式”
为该二次型的“行列式”。
)柯西把行列式作为一类函数来研究,他称这类函数为“交错对称函数”,意即对于任意的变量置换,这种函数只取两个值,其绝对值相等而符号相反。
这导致了几乎是现代的行列式的定义。
柯西还陈述了行列式的运算法则,特别是证明了著名的行列式乘法原理,并从这个定理出发,推导出了一系列的漂亮而重要的结论。
柯西首次把行列式的元素排成方阵,并采用了双足标记法。
在柯西的著作中一个
阶行列式记为
。
现今通用的行列式记号则是凯莱于1841年在其“论位置几何学的一条定理”(Onatheoremingeometryofposition)一文中首先创用。
柯西等人的代数行列式理论稍后被雅克比(CarlGustarJacobJacobi,1804-1851)推广到行列式情形。
雅克比的长篇论文《行数行列式》(1841)引进了后以他名字命名的行列式——“雅克比行列式”,并将其卓有成效地应用到函数组的相关性、多重积分的变量变换和偏微分方程的研究中。
二、行列式的定义
行列式是由一些数据排列成的方阵经过规定的计算方法而得到的一个数。
当然,如果行列式中含有未知数,那么行列式就是一个多项式,它本质上代表一个数值。
我们所说的行列式包括二阶行列式、三阶行列式直至N阶行列式,下面简述行列式的定义,以方便后面的论述:
(一)定义1:
阶行列式
,
等于所有取自不同行不同列的
个元素的乘积
的代数和,这里
为自然数1,2,…,n的一个排列,每一项
都按下列规则带有符号:
当
为偶排列时,
带有正号,当
为奇排列时,
带有负号。
这一定义可以写成
这里
表示对所有
级排列求和。
(二)定义2
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么他们就称为一个逆序,一个排列中逆序的总数就称为这个排列的逆序数。
例如:
2431中,21,43,41,31是逆序,2431的逆序数就是4,而45321的逆序数就是5.
排列
的逆序数记为
(三)定义3
逆序数为偶数的排列称为偶排列;
逆序数是奇数的排列称为奇排列。
三、行列式的性质
通过上面的一些了解,我们知道直接用定义只能计算一些阶数较低的行列式,对于一些阶数较高的行列式,如果还是运用定义来计算结果,那么工作量必会非常大,而且计算结果的准确性也具有了一定的不确定性,那么这就需要我们通过尝试来总结一些规律,明确行列式的性质,运用这些规律性质来简化计算。
通过总结。
我们得出行列式只要包括以下几个性质:
性质1:
行列式D与它的转置行列式相等。
性质2:
把行列式D中某一行(列)的所有元素同乘以常数K,相当于用数K乘这个行列式,即
依据上面的性质2的倍法变换我们推导出了下面的两个推论:
推论1:
一个行列式中某一行(列)所有元素的公因式可以提到行列式的符号外
面。
性质3:
交换行列式D中的某两行(列),行列式改变符号。
即设
则必有:
D1=-D。
根据行列式性质三的换法变换,我们又能推导出两个相关的结论,如下:
推论2:
如果行列式中有两行(列)的元素对应成比例,则这个行列式等于零。
性质4:
如果行列式中某一行(列)中的所有元素都可表成两项之和,则该行列式可拆成两个行列式之和。
性质5:
把行列式中的某一行(列)的所有元素同乘以上一个数K再加到另一行(列)的对应元素上,所得到的行列式与原来的行列式相等。
即
四、行列式的若干种计算方法
计算行列式的方法是多种多样的,我们只能是针对每个题的特征,来选取合适的计算方法求解。
基本的行列式解法包括:
定义法、化三角形法、应用一行(列)展开公式、递推公式法、加边法等等。
(一)定义法
例1:
计算行列式的值
对于这样的行列式,显然我们可以用定义来得出结果。
解:
由行列式的定义可知:
=1×
4×
4+2×
2×
2+1×
3×
6-1×
2-2×
4-1×
6=-2.
(二)化三角形法
运用行列式的性质是计算行列式的一个重要途径,大部分的行列式的计算都与它的性质密不可分,现将给出的行列式化成上三角(下三角)的形式,再依据行列式的定义来计算得出结论。
其计算步骤可归纳如下:
(1)有公因子的先提出公因子;
(2)进行初等变换化成上三角(下三角)的行列式;
(3)由行列式的定义进行计算。
例2:
计算下面行列式的值
解:
:
在上述解法中,先用了运算
,其目的是把
换成1,从而利用运算
,即可把
变为0.如果不先做
,则由于原式中
,需用运算
把
变为0,这样计算时就比较麻烦。
第二步把
和
写在一起,这是两次运算,并把第一次运算结果的书写省略了。
(三)应用一行(列)展开公式
应用一行(列)展开应遵循以下原则:
1.N阶行列式
的某一行(列)的元素与另外一行(列)对应的元素的代数余子式的乘积之和等于零。
2.N阶行列式
的某一行(列)的元素与其代数余子式的乘积之和等于
例3:
计算
由按照某一行(列)展开公式得
=
这与利用行列式的性质计算做对比,显然,按照某一行(列)展开更加简便快捷,所以我们在应对不同的题时,应根据其题型特征,来选取最恰当的计算方法。
(四)范德蒙行列式
我们会遇到形如这样的式子
其中记号“
”表示全体同类因子的乘积。
例4:
分析:
通过观察,发现此行列式类似于范德蒙行列式,为了得到一个范德蒙行列式,现添加
.
得到
明显的,
为
的余子式,即
的系数的相反数。
由范德蒙行列式知:
所以
的系数为
故原行列式等于
(五)递推公式法
在我们所熟知的领域中,递推公式有着广泛的运用,在行列式中,我们运用递推法,按照行列式的某一行(列)展开,会产生阶数比原行列式低但却与原行列式有着相同类型的新的行列式,逐层降阶后,最终计算出原行列式的值。
递推法常用的两个公式包括:
1.若
时,则
;
2.若
(其中A1A2为待定系数)。
在2中出现了两个未知数,t1t2可以通过
的两根来确定。
例5:
把第一行展开得
,即
(六)加边法
有时为了计算行列式,特意把等
阶的行列式增加一行一列变为
阶行列式,再通过性质化简算出结果,这种方法称为加边法或升阶法。
当然,加边后必须是保值的,而且要使所得的高一阶行列式较易计算。
例6:
其中
加边得
加边法最大的特点就是要找出每行或每列相同的因子,那么升阶之后,就可利用的性质把绝大部分元素化为零,然后再化为三角形行列式,这样就达到了简化计算的效果。
五、运用MATLAB来解决行列式的问题
我们知道,线性代数是基于矩阵的运算,而MATLAB语言就是一门矩阵运算语言,因此,MATLAB提供了求解线性代数问题的强大功能,可以很方便的求解线性代数中的复杂问题。
当行列式的行和列相同时,就可以运用MATLAB进行矩阵的行列式操作。
我们在计算行列式的过程中,对于一些阶数较高,计算化解比较复杂的行列式,很难准确判断解决该行列式应运用哪种计算方法较为简便,这时我们可以运用强大地MATLAB计算功能,来帮助我们确定该行列式的类型判断是否准确。
由于MATLAB已经提供了det函数来求矩阵的行列式的值,但是针对一些比较有特点的行列式,我们选择针对该类型行列式的计算语句来计算,会表现的更加迅速,快捷。
这样我们就可以通过计算的快慢来帮助我们验证对于该行列式我们所选取的计算方法是否准确。
通过实验,我们得出以下四种方法的计算程序,第一种是用matlab的矩阵计算语句计算,即用det函数来计算;
第二种是化行列式为上三角行列式进行计算;
第三种是用按行展开降阶的方法计算;
第四种是从定义出发计算。
以下即为该运算过程的详细程序。
程序
functionhnaglieshi
clc;
A=input('
输入矩阵:
'
)
[m,n]=size(A);
fp=fopen('
E:
\data.txt'
'
wt+'
);
%在E盘创建并打开txt文本
fprintf(fp,'
%g'
A);
fclose(fp);
ifm~=n
disp('
error!
行列不相等'
else
jieshu=m%输出矩阵的阶数
disp('
*********计算行列式*********'
%选择菜单
1、用matlab的矩阵计算语句计算'
2、上三角行列式进行计算'
3、递归方式计算'
4、定义计算'
5、退出'
globaly
while6
num=input('
选择求解行列式的方法:
switchnum
case1
y=yujujisuan(A,n)
case2
y=triangle(A,n)
case3
y=f(A)
case4
y=dingyi(A)
case5
break;
otherwise
输入错误,请重新输入!
end
data.txt'
at+'
%结果输出到一个文本文件中存盘
fprintf(fp,'
%d'
y);
fclose(fp);
end
%==========================================用matlab的矩阵计算语句计算
functiony=yujujisuan(A,n)
y=det(A);
%==========================================化行列式为上三角行列式进行计算
functiony=triangle(A,n)
an=0;
fori=1:
n
b=0;
forj=i:
ifb<
abs(A(j,i))
b=abs(A(j,i));
r=j;
ifr>
i
c=A(i,:
A(i,:
)=A(r,:
A(r,:
)=c;
an=an+1;
fork=i+1:
A(k,:
)=A(k,:
)-(A(k,i)/A(i,i))*A(i,:
end
line=diag(A)'
;
y=(-1).^an*prod(line);
%=====================================按行展开降阶的方法(用递归方式)计算
functiony=f(A)
[n,n]=size(A);
y=0;
ifn==1
y=A;
forj=1:
y=y+A(1,j)*(-1)^(j+1)*f(A(2:
n,setdiff(1:
n,j)));
%===========================================定义计算
functiony=dingyi(A)
n=size(A);
B=perms(1:
n);
%排列
[s,m]=size(B);
%排列种类s
D1=0;
fort=1:
s
a1=1;
fori=1:
j=B(t,i);
a=A(i,j);
a1=a1*a;
k=0;
n-1
forj=i+1:
ifB(t,i)>
B(t,j);
k=k+1;
else
k=k;
D=a1*(-1).^k;
D1=D1+D;
y=D1;
六、结束语
行列式的计算方法多种多样,本文介绍了最常用的6种,但有时会因为行列式结构的变化而需要其他类型的解法,因此,在找到解决问题的办法之前,要正确判断行列式的类型,看看适合哪种方法进行计算。
以上计算行列式的基本方法奠定了高等数学的理论基础,同时也为数学在现实生活中广泛使用提供了理论依据,也使其自身具有了实质上的研究价值。
参考文献
[1]宣飞红.线性代数[M].厦门大学出版社2003.7.
[2]熊延煌.高等代数简明章程[M].湖北教育出版社(第一版).1987.
[3]许甫华,张贤科.高等代数解题方法[M].清华大学出版社.2001.9.
[4]张禾瑞,郝炳新.高等代数[M].高等教育出版社.1999.
[5]李启文,谢季坚.线性代数理论与方法[M].湖南大学出版社.2001.3.
[6]王萼芳.高等代数教程习题集[M].清华大学出版社.1997.5.
[7]阎满富.高等代数习题汇编与解答[M].天津人民出版社.1994.
致谢
在本文完成之际,特别感谢我的导师崔老师,几个月来,他一直在学习上对我悉心指导,严格要求,热情鼓励,为我创造了很多锻炼提高的机会,崔老师为我的论文的顺利完成指出了很好地方向,崔老师渊博的知识和对事业的执着追求,诲人不倦的教师风范的对问题的敏锐观察力,都使我毕生受益。
在此,我谨向我的导师以及在毕业论文设计的过程中给予我很大帮助的老师、同学们致以最诚挚的谢意!