APP下载

《高等代数》实验课的探索与实践

2011-01-18

关键词:高等代数行列式线性方程组

姚 艳

(黑河学院 数学与应用数学系,黑龙江 黑河 164300)

《高等代数》是数学学科的一门传统课程。在当今世界的数学内部学科趋于统一性和数学在其他学科的广泛应用性的今天,《高等代数》以其追求内容结构的清晰刻画和作为数学应用的基础,是大学数学专业的主干基础课程。它是数学在其他学科应用的必需基础课程,又是数学修养的核心课程。随着现代计算机科学的逐步普及,人们对计算机的依赖程度越来越高。近年来发展起来的MATLAB软件包,它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法等。使抽象的代数问题在某种意义上变成看得见的富于直观现象,更加启迪人们如何“用数学”[1]。

1 《高等代数》开设实验课的可行性及必要性

首先,在《高等代数》课程中开设实验课,可以培养学生参与科学研究的良好作风。实验课上,学生在教师的指导下,通过操作计算机,验证、演示高等代数的基本概念和基本理论,从而获取新知识,不同于传统的数学学习方式,它强调以学生动手为主的数学学习方式。在实验中,由于计算机的引入和MATLAB软件包的应用,为数学的思想与方法注入了更多、更广泛的内容,使学生摆脱了繁重的乏味的数学演算和数值计算,促进了数学同其他学科之间的结合,从而使学生有时间去做更多的创造性工作。其次,利用计算机的快速计算功能,可以使学生在实验课上探索一些比较复杂的问题,加深对高等代数基本概念的理解,增强学生学习高等代数的兴趣和信心。例如,在求行列式值时,因为阶数比较高,计算量很大,教师讲得比较累,学生听着也没兴趣。但使用计算机后,可以把这类问题让学生自己做,结果就会很容易得出。到了期末,每个学生都有不同程度的提高,不仅学习了高等代数的知识,而且也加强了计算机的应用能力。

2 《高等代数》实验课内容的设计

实验的目的是提高学生学习高等代数的积极性,提高学生对高等代数的应用意识并培养学生用所学的数学知识和计算机技术去认识问题和解决实际问题的能力。这就要求实验的建立应该是提法简单,立意新颖,既要区别于高等代数习题,又要区别于计算机语言的练习,要有利于“验证”和“探索”。所谓验证,是通过计算机验证已有的定理或已学过的数学知识,探索是指利用计算机完成人工所不可能完成的巨大计算量的同时,发现以往单纯靠逻辑推理难以发现的现象。下面举两个具体实例。

实验一:求行列式的值

(1)实验目的:了解MATLAB中矩阵的表示和MATLAB中行列式的概念及基本性质,学习、掌握MATLAB软件有关的命令。

(2)原理与方法:在MATLAB中借助函数det可以求出行列式的值,其格式为det(D),其中D为n阶行列式。

(3)实验内容:

例1,计算行列式

相应的matlab代码及运算结果如下:

>> clear

>> syms a b c d %定义符号变量

>> A=[a,b,c,d;a a+b a+b+c a+b+c+d;a 2*a+b 3*a+2*b+c 4*a+3*b+2*c+d;a 3*a+b 6*a+3*b+c 10*a+6*b+3*c+d] %输出符号矩阵

A=

[a, b, c, d]

[a,a+b,a+b+c,a+b+c+d]

[a,2*a+b,3*a+2*b+c,4*a+3*b+2*c+d]

[a,3*a+b,6*a+3*b+c,10*a+6*b+3*c+d]

>>D= det(A) %计算A的行列式

D=

a^4

实验二:线性方程组的求解

(1)实验目的:了解线性方程组的基本概念,掌握线性方程组求解的方法,会用MATLAB软件相关的命令求线性方程组的解。

(2)原理与方法:求线性方程组所用的MATLAB命令,计算方阵A的行列式det(A),增广矩阵:[A,b],b是向量,适用于任意阶的矩阵,矩阵的秩:rank(A),非齐次线性方程组的特解:x0=A或pinv(A)*b

齐次线性方程组的基础解系:null(A),化矩阵为行阶梯形:rref(A)[2]

(3)实验内容

(1)有唯一解,(2)无解,(3)有无穷多解?

相应的MATLAB代码及运算结果如下:

>> clear

>> syms y;

>> A=[y 1 1;1 y 1;1 1 y] %定义符号矩阵

A =

[y, 1, 1]

[1, y, 1]

[1, 1, y]

>> b=[1;y;y^2]

b =

[1]

[y]

[y^2]

>> det(A)

ans =

y^3-3*y+2

>> solve(det(A)) %解出行列式值为零时y的取值

ans =

[-2]

[1]

[1]

>>%下面求y取不同值时,方程组解的情况:

>>%(1)当y不等于-2且y不等于1时,方程组有唯一解,求解为:

>> x=A %左除法

x =

[-(y+1)/(y+2)]

[1/(y+2)]

[(1+y^2+2*y)/(y+2)]

>>%(2)当y=-2时:

>> syms y;

>> y=-2;

>> A=[y 1 1;1 y 1;1 1 y]

A =

-2 1 1

1 -2 1

1 1 -2

>> b=[1;y;y^2]

b =

1

-2

4

>> rank(A)

ans =

2

>> rank([A,b])

ans =

3

>> %系数矩阵的秩小于增广矩阵的秩,故方程组无解。

>> %当y=1时:

>> y=1;

>> A=[y 1 1;1 y 1;1 1 y]

A =

1 1 1

1 1 1

1 1 1

>> b=[1;y;y^2]

b =

1

1

1

>> rank(A)

ans =

1

>> rank([A,b])

ans =

1

>> %系数矩阵的秩等于增广矩阵的秩,故方程组有无穷多解。

>> rref([A,b]) %化行最简形。

ans =

1 1 1 1

0 0 0 0

0 0 0 0

>> %取x2,x3作自由变量,则方程组的通解为:x1=1-x2-x3.

>>或者通过求特解及导出组的基础解系得出通解:

>> y=1;

>> A=[y 1 1;1 y 1;1 1 y]

A =

1 1 1

1 1 1

1 1 1

>> b=[1;y;y^2]

b =

1

1

1

>> x0=pinv(A)*b %求特解

x0 =

0.3333

0.3333

0.3333

>> x1=null(A)

x1 =

0.8165 0

-0.4082 -0.7071

-0.4082 0.7071

>> % 方程组的通解为:

>>%(x1,x2,x3,x4)=(0.3333,0.3333,0.3333)+c1(0.8165,-0.4082,-0.4082)+c2(0,-0.7071,0.7071),

>> %c1,c2为任意常数。

3 《高等代数》实验课在实践中逐步完善

《高等代数》开设实验课内容应包括基础部分和综合部分。在基础实验部分,要围绕高等代数的基本内容,让学生充分利用计算机及软件的数值功能、符号功能和图形展示基本概念与结论,去体验如何发现、总结和应用数学规律。综合实验是让学生运用已掌握的高等代数的知识,能独立地、创造性地去解决一些实际问题。将实际问题运用数学的方法,建立模型,也就是数学建模。数学建模强调问题的实用性而不强调普遍意义,而高等代数中的实验课可以从理论问题出发,也可以由实际问题出发,让学生以解决问题为线索总结规律。实验课的开设可以作为数学建模的基础,使学生可以更快地掌握数学建模的基本方法和技能[3]。

总之,在《高等代数》课程中开设实验课,重要的是从问题出发,让学生自己做,自己观察结果。激发学生的创造性思维,从而发明和设计新的实验,更希望他们用MATLAB软件去计算和解决专业课学习中出现的复杂计算问题。

[1]陈志杰.高等代数与解析几何[M].北京:高等教育出版社,斯普林格出版社,2001.

[2]宋世德,郭满才.数学实验[M].北京:高等教育出版社,2002.

[3]数学实验课程的教学与数学素质的培养[J].数学的实践与认识,2002,(1):34~37.

猜你喜欢

高等代数行列式线性方程组
一类整系数齐次线性方程组的整数解存在性问题
求解非线性方程组的Newton迭代与Newton-Kazcmarz迭代的吸引域
范德蒙德行列式在行列式计算中的应用
行列式解法的探讨
同构概念的教学思考与实践
探索《高等代数》教学范式改革
加项行列式的计算技巧
反证法在高等代数解题中的应用举例
高等代数教学的几点思考
保护私有信息的一般线性方程组计算协议