APP下载

基于MATLAB的线性方程组求解及其可视化

2021-12-18王荣亮仓龙仓许凤桐

电脑知识与技术 2021年31期
关键词:线性代数方程组可视化

王荣亮 仓龙仓 许凤桐

摘要:针对当前线性代数计算量大,概念抽象等问题,将Matlab用于方程组将求解和教学,画出二元齐次非线性方程组的可视化图像,可以提高课堂效率,促进学生对概念的理解,培养学生数学素养和信息技术素养。

关键词:线性代数;Matlab;方程组;可视化

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2021)30-0150-03

Solution and Visualization of Linear Equations Based on MATLAB

WANG Rong-liang, CANG Long-cang, XU Feng-tong

(Suqian Vocational &Technical College, Suqian 223800, China)

Abstract: Aiming at the problems of large amount of calculation and abstract concept in current linear algebra, Matlab is used to solve and teach equations and draw visual images of binary homogeneous nonlinear equations, which can improve classroom efficiency, promote students' understanding of concepts, and cultivate students' mathematical and information technology literacy.

Key words: linear algebra; MATLAB; equations; visualization

1 引言

线性代数是现代数学重要的一个分支,是高等院校经管类、理工类等相关专业一门重要的基础必修课,也是利用数学知识解决实际问题的重要工具。线性代数教学的难点主要体现在概念抽象和计算量大两个方面。计算机技术的快速发展,尤其是许多优秀软件(如Matlab、Maple、Geogebra)的出现和逐步完善,不但使得大量计算成为了现实,也更利于数学教学可视化,促进学生对概念的理解。

2 基本概念

线性方程组是指联立的各个方程关于未知量均为一次的。一般形式如下:

[a11x1+a12x2+…a1nxna21x1+a22x2+…a2nxn?am1x1+am2x2+…amnxn=b1=b2=bm]                       [(1)]

式中[x1,x2,…xn]代表未知量,[aij(1≤i≤m,1≤j≤n)]称为方程⑴的系数,[bi(1≤i≤m)]称为常数项。特别的,当常数项b1,b2,…,bn都等于零时,则方程组⑴称为齐次线性方程组;当常数项b1,b2,…,bn不全为零时,则方程组⑴称为非齐次线性方程组。

其中,当[m=n]时,将未知数系数构成的行列式[D=a11a12…a1na21a22…a2n????an1an2…ann],称为方程组(1)的系数行列式。

也可将方程组(1)写成矩阵形式[AX=b],其中[A=(aij)m×n]称为系数矩阵。

根据未知数的个数和方程的个数,将方程组分为:

当未知数的个数等于方程的个数,即[m=n]时,称方程组为适定方程组;

当未知数的个数小于方程的个数,即[m

当未知数的个数大于方程的个数,即[m>n]时,称方程组为超定方程组。

3 线性方程组的求解

求解线性方程组的方法主要有克莱姆法则、逆矩阵求解法、矩阵除法、初等行变换等,其中各种方法的适用性如下表所示:

3.1适定方程的求解

例1:求线性方程组[2x1-2x2+x3+16x4x1+x2-4x3-2x4-x1+x2-5x3+4x43x1-x2+3x3+x4=2=0=2=1]的解。

解法一:克拉姆法则,程序为:

clear all

clc

A=[2 -2 1 16;1 1 -4 -2;-1 1 -5 4;3 -1 3 1];

D=det(A)

A1=[2 -2 1 16;0 1 -4 -2;2 1 -5 4;1 -1 3 1];

D1=det(A1);

A2=[2 2 1 16;1 0 -4 -2;-1 2 -5 4;3 1 3 1];

D2=det(A2);

A3=[2 -2 2 16;1 1 0 -2;-1 1 2 4;3 -1 1 1];

D3=det(A3);

A4=[2 -2 1 2;1 1 -4 0;-1 1 -5 2;3 -1 3 1];

D4=det(A4);

x1=D1/D;x2=D2/D;x3=D3/D;x4=D4/D;

X=[x1 x2 x3 x4]

运行的结果为:

D =-54.0000

X =1.0000    9.0000    2.0000    1.0000

可以看出D≠0,所以方程组有唯一解X=(1 9 2 1)T;

解法二:逆矩阵求解法,程序为:

clear all

clc

A=[2 -2 1 16;1 1 -4 -2;-1 1 -5 4;3 -1 3 1];

b=[2 0 2 1]';

X=inv(A)*b;

X=X'

运行的结果为:

X =1.0000    9.0000    2.0000    1.0000

方程组有唯一解X=(1 9 2 1)T;

解法三:矩阵除法,程序为

clear all

clc

A=[2 -2 1 16;1 1 -4 -2;-1 1 -5 4;3 -1 3 1];

b=[2 0 2 1]';

X=A\b;

X=X'

运行的结果为

X =1.0000    9.0000    2.0000    1.0000

方程组有唯一解X=(1 9 2 1)T;

解法四:初等行变换,程序为

clear all

clc

A=[2 -2 1 16;1 1 -4 -2;-1 1 -5 4;3 -1 3 1];

b=[2 0 2 1]';

r1=rank(A)

r2=rank([A,b])

U=rref([A,b])

运行的结果为

r1 =4

r2 =4

U =

1     0     0     0     1

0     1     0     0     9

0     0     1     0     2

0     0     0     1     1

结果中,U即为方程组增广矩阵通过初等行变换得到的行最简矩阵,矩阵U的最后一列即为方程组的解X=(1 9 2 1)T;同时,也可以发现系数矩阵和增广矩阵的秩都为4,所以方程组存在唯一解。

3.2欠定方程的求解

例2:求线性方程组

[13x1+3x2+3x3+x4+61x5+33x612x1+6x2+3x3-x4+69x5+29x6-x1+3x2-x3-2x4+4x5-6x62x1-x2+x3+x4+6x5+7x6=13=12=-1=2]的解。

未知数的个数为6,而方程组中方程的个数为4,所以方程组为欠定方程组,可以采取初等行变换进行求解。程序为

clear all

clc

A=[13 3 3 1 61 33 13;12 6 3 -1 69 29 12;-1 3 -1 -2 4 -6 -1;2 -1 1 1 6 7 2];

E=rref(A)

运行的结果为:

E =

1     0     0     0     1     2     1

0     1     0     0     9     0     0

0     0     1     0     4     2     0

0     0     0     1     9     1     0

所以方程組的通解为[X=k1-1-9-4-910+k2-20-2-101+100000],其中[k1,k2]为任意常数。

3.3超定方程的求解

例3.求线性方程组[x1-3x2x1+x23x1-x2=-1=3=6]的解。

方程中未知的个数是2,而方程组中方程的个数是3,所以方程组为超定方程,只能通过对增广矩阵进行初等行变换,观察是否存在解。程序为

clear all

clc

A=[1 -3 -1;1 1 3;3 -1 6]

E=rref(A)

运行的结果为

E =

1     0     0

0     1     0

0     0     1

观察结果最简行矩阵E,可以发现最后一行为矛盾方程,故该方程组无解。

4 线性方程组的可视化

线性代数教学的一个重难点就是概念不直觀,而可视化可以为一些概念提供直观的感受,有助于对概念的理解。以下列三个方程组以及例3中的方程组为例,按照初等变换求解方程组的方法运行得到的结果如下:

[方程组1[x1+x23x1-x2=3=5] 方程组2[x1+x23x1+3x2=3=9] 方程组3[x1+x2x1+x2=3=5] U1 =

1     0     2

0     1     1

U2 =

1     1     3

0     0     0

U3 =

1     1     0

0     0     1

]

画出四个方程组的二维图形,如图1所示。

从运行的结果看,方程组1的解为[x1=2x2=1];方程组2有无数组解;方程组3无解。对应的,图1中可以直观地看出,方程组1是两条直线的交点,而且只有一个交点,故方程组有唯一解;方程组2的两条直线完全重合,故方程组2有无数组解;方程组3的两条直线平行,没有交点,故方程组3无解;例3中的三条直线不共线,故不存在公共解,也即例3中的方程组是无解的。

5结束语

线性代数是多个学科重要的基础课,在科学、工程、金融和管理等多个领域都得到广泛的应用。在线性代数课程中,引入Matlab求解和可视化,可以使得计算变得快捷,也能促进学生对概念的理解。

参考文献:

[1] 王芳.Matlab软件在线性代数课程线上线下混合式教学模式中的应用[J]. 黑龙江科学,2021,12(3):70-71.

[2] 宫晓俊.浅谈线性代数课堂中Matlab的引入[J]. 理科爱好者(教育教学),2020(5):8-9.

[3] 王萼芳,石生明.高等代数(第五版)[M]. 北京:高等教育出版社,2021.

[4] 李继根.线性代数及其Matlab实现[M]. 上海:华东师范大学出版社,2017.

[5]  陈怀琛,龚杰民.线性代数实践及Matlab入门[M]. 北京:电子工业出版社,2009.

[6] 蔚涛,周薛雪.Matlab与线性代数教学的有机结合[J]. 教育教学论坛,2020(2):267-268.

【通联编辑:王力】

收稿日期:2021-03-19

作者简介:王荣亮(1991—),男,江苏省宿迁市宿豫县人,讲师,硕士,主要研究方向为数学教学与研究;仓龙仓(1988—),女,山东省临沂市人,助理研究员,本科,主要研究方向为学生管理;许凤桐(1990—),男,甘肃省庆阳市环县人,助教,硕士,主要研究方向为数学教学与研究。

猜你喜欢

线性代数方程组可视化
基于CiteSpace的足三里穴研究可视化分析
深入学习“二元一次方程组”
基于Power BI的油田注水运行动态分析与可视化展示
《二元一次方程组》巩固练习
基于CGAL和OpenGL的海底地形三维可视化
一类次临界Bose-Einstein凝聚型方程组的渐近收敛行为和相位分离
“融评”:党媒评论的可视化创新
翻转课堂在独立院校线性代数教学中的应用研究
在线性代数课程教学中引入MATLAB的简单介绍
利用线性方程组直观理解线性代数的基本概念