论文部分内容阅读
[摘要]本文针对应用初等行变换将矩阵化为阶梯形矩阵方法的分析,编写出相应的Matlab程序,并在教学过程中充分运用Matlab程序,提高课堂教学质量,培养学生学习和使用数学软件的能力。
[关键词]线性代数矩阵初等变换Matlab教学引言
随着现代数学的不断发展,线性代数的理论和方法已经渗透到数学的许多分支,同时也是理论物理和理论化学所不可缺少的代数基础知识。因此,线性代数作为讨论有限维空间线性关系理论的一门经典课程,在工科数学课程体系中有着非常重要的作用。
Matlab是“Matrix Laboratory”的缩写,意思是“矩阵实验室”,它是Mathworks公司推出的用于数值计算的交互式软件系统,具有强大的数值分析、矩阵运算、信号处理、图形显示和建模仿真功能,已成了科学家和工程技术人员解决实际问题的首选计算工具软件[1]。
一、矩阵中的初等变换
线性代数中矩阵理论应用十分广泛,它不仅在数学研究,而且在计算机网络、自动控制、近代物理等学科研究中都是重要的理论和工具。因此,矩阵是线性代数的一个重要研究对象[2]。让学生理解掌握矩阵知识是学好线性代数的一个基础,而矩阵的初等变换是求解矩阵方程、线性方程组基础解系、矩阵的特征值和特征向量、进行一步解决求实对称矩阵和实二次型的对角化问题的重要工具之一。在初等变换教学过程中引入Matlab,一方面可减轻将高阶矩阵化为阶梯形矩阵的计算量,另一方面可激发学生学习兴趣,增强学生对初等变换的理解掌握。
(一)初等行变换
矩阵理论中对矩阵的行作以下三种变换构成了矩阵的初等行变换:
(1)行交换:将矩阵的第i,j两行互换位置。在MATLAB中用语句:c([i,j],:)=c([j,i],:)实现。
(2)行乘数:将矩阵的第i行乘以常数k(k≠0)。MATLAB语句为:c(i,:)=k*c(i,:)。
(3)行相加:将矩阵的第i行乘以常数k(k≠0)加到第j 行。用MATLAB语句:c(j,:)=k*c(i,:)+c(j,:)实现。
(二)应用初等行变换将矩阵化为阶梯形矩阵的方法
应用初等行变换将矩阵化为阶梯形矩阵一般采用消元的方法进行,假设所化矩阵为A(1)其步骤如下:
第1步消元:若A(1)中的 则以第1行为基准,依次把第2行至第n行的第1列的元素消为零。即第1行乘以
,加到第i(i=2,3,…n)行上去,得新矩阵A(2),其元素。
…………………………
第k步消元:若A(k)中的,则将A(k)中对角线以下的元素消为零,即将A(k)中的第k行乘以ιik=-a(k)ik/a(k)kk,加到第i(i=k+1,k+2,…n)行上去,得新矩阵A(k+1), 其元素。称参数ιik为消元因子, 为第k步矩阵A(k)的主元。
上述做法直至第n-1步完成。
在消元过程中,只有在主元下才能进行。假设已完成第k-1步消元,若主元 ,则在进行第k步消元之前,选出第k列中位于对角线以下不为零的行进行交换。使得主元,再进行第k步消元。
二、应用Matlab程实现初等行变换
(一)编写Matlab程序
启动Matlab程序,在其编辑窗口中编写应用初等行变换进行消元的程序,并保存为CMgauss.m文件。
function [B]=CMgauss(A,i,j,q)
% A为输入矩阵,B为变换(消元)后的输出矩阵
% i为A中基准行的行号
% j为A中待变换(消元)行的行号
% k为A中主元的列号,即A(i,k)为主元,A(j,k)为待消元
Format rat%用有理格式显示
x=A(i,:); y=A(j,:); % 取出A的第i,j两行赋值给x,y,
z=y-y(k)/x(k)*x; % 实现变换(消元)的运算公式
A(j,:)=z; % 把结果赋值给A的第j行,
B=A; % 将A赋值给输出矩阵B
(二)用Matlab程序将矩阵化为阶梯形矩阵
在进行初等行变换教学中,为使学生充分理解和掌握初等行变换的作用,运用所编写的Matlab程序文件CMgauss.m进行演示。
例:用初等行变换把化为阶梯形矩阵。
打开Matlab窗口,在命令窗口中输入以下命令。
>> A=[3 1 0 2;1 -1 2 -1;1 3 -4 2;5 4 2 1];%输入矩阵A
>> B=CMgauss(A,1,2,1) %以第1行为基准行,消元A(2,1)
B=
>> B=CMgauss(B,1,3,1);%继续消元A(3,1)。注意命令中的A要换为B
>> B=CMgauss(B,1,4,1)%消元A(4,1)
B=
用同样的方法,分别以第2、3行为基准行,使第2、3列主对角线以下元素变为0,矩阵A经过初等变换化为阶梯
形矩阵。
如继续对例中矩阵施行初等行变换,分别以第4、3、2行为基准行,使第4、3、2列主对角线以上元素变为0,最后
可将A化为简化行阶梯形矩阵 。
如再用初等变换中的数乘行变换可将 化为单位矩阵。
>>B(1,:)=(1/3)*B(1,:);%用(1/3) 乘矩阵的第1行
>>B(2,:)=(-3/4)*B(2,:);%用(-3/4)乘矩阵的第2行
>>B(3,:)=(2/11)*B(3,:); %用(2/11)乘矩阵的第3行
>>B(4,:)=(-1/2)*B(4,:) %用(-1/2)乘矩阵的第4行
B=
当学生理解掌握此程序的使用方法后,可让学生用此程序将高阶矩阵化为阶梯形矩阵进行练习。在学习过程中,还可对CMgauss程序进行一定的扩展,如用Matlab中的syms命令定义符号变量,则用此程序同样可对含有符号的矩阵进行消元,化为阶梯形矩阵;若矩阵A为线性方程组的增广矩阵,则可用此程序进行消元化简从而求出方程组的解;若矩阵A是可逆的,则可用此程序进行消元求矩阵A的逆矩阵。
三、结束语
通过在线性代数教学中应用Matlab程序进行演示和练习,可进一步加强学生对矩阵初等变换的理解和掌握,同时提高学生对高阶矩阵的运算能力,为后续课程知识的学习打下牢固的基础。
[参考文献]
[1]姚喜妍,王济荣主编《线性代数》北京大学出版社2009年第1版P147.
[2]姚喜妍,王济荣主编《线性代数》北京大学出版社2009年第1版P26.
[3]肖满红《Matlab软件在高职高等数学教学中的应用》天津商务职业学院学报2013第3期
[4]徐洁,李春,冯毅夫《利用Matlab辅助教学《线性代数》》吉林师范大学学报(自然科学版)2013.8第3期
(作者单位:昭通学院图书馆 云南 昭通)