论文部分内容阅读
【摘 要】线性代数是大学理工科专业和经管类专业学生必修的一门基础课,其重要内容主要包括:行列式、矩阵、向量、线性方程组、特征值与特征向量、二次型。其中特征值和特征向量理论已经广泛应用于科学技术的各个领域,不仅可以直接解决数学中诸如非线性规划、常微分方程以及其他各类数学计算问题,而且在结构力学、工程设计、计算物理和量子力学中都发挥着重要的作用。在工程计算中,求解方阵特征值是最普遍的问题之一,如动力系统和结构系统中的振动问题、电力系统的静态稳定性分析、工程设计中的某临界值的确定等,都可以归结为求解方阵特征值的问题。本文通过借助数学软件Matlab介绍如何计算特征值和特征向量。
【关键词】线性代数;Matlab;数学课堂;特征值;特征向量
【中图分类号】G642 【文献标识码】A 【文章编号】1671-8437(2020)28-0008-02
Matlab的產生与数学计算有着密切的关系。70年代中期,美国的穆勒教授及其同事在美国国家基金会的资助下,开发了线性代数的Fortran子程序库[1]。不久,他在给学生讲线性代数课时,为了让学生能使用子程序库又不至于在编程上花费过多的时间,便为学生编写了使用子程序的接口程序。他将这个接口程序取名为Mat1ab,意为“矩阵实验室”。
1 概述
矩阵计算是科学和工程计算的核心,特征值与特征向量计算是矩阵计算的基本问题之一。在教学特征值与特征向量这一章时,要先构建特征方程,通过计算化简行列式求出特征值[2]。一个n阶方阵有n个特征值,包括单特征值、重特征值和复特征值,其中复特征值是成对出现的[3]。求出特征值后,通过解特征值所对应的齐次线性方程组,求出每个特征值所对应的齐次线性方程组的基础解系,而特征向量就是基础解系的非零线性组合[4-6]。利用Matlab计算特征值和特征向量的实例如下。
2 利用Matlab求三阶方阵A的特征值及特征向量
解:命令窗口运行如下。
>> A=[8 1 6;3 5 7;4 9 2] %生成一个3阶方阵
A =
8 1 6
3 5 7
4 9 2
>> eig(A)%求3阶方阵A的特征值
输出结果为:
ans =
15.0000
4.8990
-4.8990 %3阶方阵A的特征值分别为:15.0000,4.899, -4.8990
命令窗口运行如下。
>> [X,D]=eig(A) %产生一个对角矩阵D,对角线为矩阵A的特征值;产生一个矩阵X,每一列为矩阵A对应的特征向量
输出结果为:
X =
-0.5774 -0.8131 -0.3416
-0.5774 0.4714 -0.4714
-0.5774 0.3416 0.8131
D =
15.0000 0 0
0 4.8990 0
0 0 -4.8990
通过运行Matlab程序,可知矩阵A有三个不同的特征值,分别为15.0000,4.8990,-4.8990。对应特征值15.0000的全部特征向量是矩阵X的第一列构成的列向量乘以非零常数K1;对应特征值4.8990的全部特征向量是矩阵X的第二列构成的列向量乘以非零常数K2;对应特征值-4.8990的全部特征向量是矩阵X的第三列构成的列向量乘以非零常数K3。
3 利用Matlab求三阶方阵B的特征值及特征向量
解:命令窗口运行如下。
>> B=[-1,1,0;-4,3,0;1,0,2] %生成一个3阶方阵
输出结果为:
B =
-1 1 0
-4 3 0
1 0 2
命令窗口运行如下。
>> eig(B)
输出结果为:
ans =
2
1
1
命令窗口运行如下。
>> [X,D]=eig(B) 输出结果为:
X =
0 0.4082 0.4082
0 0.8165 0.8165
1.0000 -0.4082 -0.4082
D =
2 0 0
0 1 0
0 0 1
通过运行Matlab程序可知,矩阵A有一个单特征值2,一个二重特征值1,1。对应于特征值2的全部特征向量是矩阵X的第一列构成的列向量乘以非零任意常数K1;对应于特征值1的全部特征向量是不全为零的任意常数K2与K3分别乘以矩阵X的第二、三列构成的列向量的和
向量。
4 利用Matlab求三阶方阵C的特征值和特征向量
解:命令窗口运行如下。
>> C= [0,-1,0;1,0,0;0,0,1]
输出结果为:
C =
0 -1 0
1 0 0
0 0 1
命令窗口运行如下:
>> eig(C)
输出结果为:
ans =
0 + 1.0000i
0 - 1.0000i
1.0000
命令窗口运行如下。
>> [X,D]=eig(C)
输出结果为:
X =
0.7071 0.7071 0
0 - 0.7071i 0 + 0.7071i 0
0 0 1.0000
D =
0 + 1.0000i 0 0
0 0 - 1.0000i 0
0 0 1.0000
通過运行Matlab程序可知,矩阵C有一对共轭复特征值i,-i,和一个单特征值1。对应于特征值i的全部特征向量是矩阵X的第一列构成的列向量乘以非零任意常数K1;对应于特征值-i的全部特征向量是矩阵X的第二列构成的列向量乘以非零常数K2;对应于特征值1的全部特征向量是矩阵X的第三列构成的列向量乘以非零常
数K3。
5 总结
本文介绍了利用Matlab求三阶实方阵特征值和特征向量的具体命令和方法。利用Matlab不仅可以求解教材常见的二、三阶方阵,还可以求解三阶以上的实方阵的特征值和特征向量,操作方式和例题完全类似。步骤较为简单,为学生提供了一种新的计算方法。
【参考文献】
[1]张明.《线性代数》中“特征值与特征向量”的教学创新探析[J].创新创业理论研究与实践,2019(21).
[2]同济大学数学系.工程数学[M].北京:高等教育出版社,2014.
[3]同济大学数学系.高等数学[M].北京:高等教育出版社,2014.
[4]孙培青.中国教育史[M].上海:华东师范大学出版社,2008.
[5]居余马等编著.线性代数[M].清华大学出版社,2002.
[6]戴维.C.雷.线性代数及其应用[M].机械工业出版社,2017.
【作者简介】
宫晓俊(1993~),女,汉族,山西朔州人,硕士,助教。研究方向:动力系统。
【关键词】线性代数;Matlab;数学课堂;特征值;特征向量
【中图分类号】G642 【文献标识码】A 【文章编号】1671-8437(2020)28-0008-02
Matlab的產生与数学计算有着密切的关系。70年代中期,美国的穆勒教授及其同事在美国国家基金会的资助下,开发了线性代数的Fortran子程序库[1]。不久,他在给学生讲线性代数课时,为了让学生能使用子程序库又不至于在编程上花费过多的时间,便为学生编写了使用子程序的接口程序。他将这个接口程序取名为Mat1ab,意为“矩阵实验室”。
1 概述
矩阵计算是科学和工程计算的核心,特征值与特征向量计算是矩阵计算的基本问题之一。在教学特征值与特征向量这一章时,要先构建特征方程,通过计算化简行列式求出特征值[2]。一个n阶方阵有n个特征值,包括单特征值、重特征值和复特征值,其中复特征值是成对出现的[3]。求出特征值后,通过解特征值所对应的齐次线性方程组,求出每个特征值所对应的齐次线性方程组的基础解系,而特征向量就是基础解系的非零线性组合[4-6]。利用Matlab计算特征值和特征向量的实例如下。
2 利用Matlab求三阶方阵A的特征值及特征向量
解:命令窗口运行如下。
>> A=[8 1 6;3 5 7;4 9 2] %生成一个3阶方阵
A =
8 1 6
3 5 7
4 9 2
>> eig(A)%求3阶方阵A的特征值
输出结果为:
ans =
15.0000
4.8990
-4.8990 %3阶方阵A的特征值分别为:15.0000,4.899, -4.8990
命令窗口运行如下。
>> [X,D]=eig(A) %产生一个对角矩阵D,对角线为矩阵A的特征值;产生一个矩阵X,每一列为矩阵A对应的特征向量
输出结果为:
X =
-0.5774 -0.8131 -0.3416
-0.5774 0.4714 -0.4714
-0.5774 0.3416 0.8131
D =
15.0000 0 0
0 4.8990 0
0 0 -4.8990
通过运行Matlab程序,可知矩阵A有三个不同的特征值,分别为15.0000,4.8990,-4.8990。对应特征值15.0000的全部特征向量是矩阵X的第一列构成的列向量乘以非零常数K1;对应特征值4.8990的全部特征向量是矩阵X的第二列构成的列向量乘以非零常数K2;对应特征值-4.8990的全部特征向量是矩阵X的第三列构成的列向量乘以非零常数K3。
3 利用Matlab求三阶方阵B的特征值及特征向量
解:命令窗口运行如下。
>> B=[-1,1,0;-4,3,0;1,0,2] %生成一个3阶方阵
输出结果为:
B =
-1 1 0
-4 3 0
1 0 2
命令窗口运行如下。
>> eig(B)
输出结果为:
ans =
2
1
1
命令窗口运行如下。
>> [X,D]=eig(B) 输出结果为:
X =
0 0.4082 0.4082
0 0.8165 0.8165
1.0000 -0.4082 -0.4082
D =
2 0 0
0 1 0
0 0 1
通过运行Matlab程序可知,矩阵A有一个单特征值2,一个二重特征值1,1。对应于特征值2的全部特征向量是矩阵X的第一列构成的列向量乘以非零任意常数K1;对应于特征值1的全部特征向量是不全为零的任意常数K2与K3分别乘以矩阵X的第二、三列构成的列向量的和
向量。
4 利用Matlab求三阶方阵C的特征值和特征向量
解:命令窗口运行如下。
>> C= [0,-1,0;1,0,0;0,0,1]
输出结果为:
C =
0 -1 0
1 0 0
0 0 1
命令窗口运行如下:
>> eig(C)
输出结果为:
ans =
0 + 1.0000i
0 - 1.0000i
1.0000
命令窗口运行如下。
>> [X,D]=eig(C)
输出结果为:
X =
0.7071 0.7071 0
0 - 0.7071i 0 + 0.7071i 0
0 0 1.0000
D =
0 + 1.0000i 0 0
0 0 - 1.0000i 0
0 0 1.0000
通過运行Matlab程序可知,矩阵C有一对共轭复特征值i,-i,和一个单特征值1。对应于特征值i的全部特征向量是矩阵X的第一列构成的列向量乘以非零任意常数K1;对应于特征值-i的全部特征向量是矩阵X的第二列构成的列向量乘以非零常数K2;对应于特征值1的全部特征向量是矩阵X的第三列构成的列向量乘以非零常
数K3。
5 总结
本文介绍了利用Matlab求三阶实方阵特征值和特征向量的具体命令和方法。利用Matlab不仅可以求解教材常见的二、三阶方阵,还可以求解三阶以上的实方阵的特征值和特征向量,操作方式和例题完全类似。步骤较为简单,为学生提供了一种新的计算方法。
【参考文献】
[1]张明.《线性代数》中“特征值与特征向量”的教学创新探析[J].创新创业理论研究与实践,2019(21).
[2]同济大学数学系.工程数学[M].北京:高等教育出版社,2014.
[3]同济大学数学系.高等数学[M].北京:高等教育出版社,2014.
[4]孙培青.中国教育史[M].上海:华东师范大学出版社,2008.
[5]居余马等编著.线性代数[M].清华大学出版社,2002.
[6]戴维.C.雷.线性代数及其应用[M].机械工业出版社,2017.
【作者简介】
宫晓俊(1993~),女,汉族,山西朔州人,硕士,助教。研究方向:动力系统。