蒋定兵
摘要:早在1989年,著名科学家钱学森教授在“中国数学会教学与科研座谈会”上就提出:“电子计算机的出现对数学科学的发展产生了深刻的影响,理工科大学的数学课程是不是需要改造一番。”的确,Matlab和Mathematica软件的出现,给数学领域的教学、科研和学习带来了巨大的变化和便利。
关键词:matlab;mathematica;数学教学;应用
中图分类号:G633.6 文献标识码:A 文章编号:1992-7711(2014)06-0127
Matlab的含义是“矩阵实验室”,是MATrix LABoratory 的缩写,是美国Mathworks公司推出的一个高性能的科技计算软件,它集数值计算、符号运算、图形图像处理、编程等多种功能于一体,应用非常广泛。MATLAB系统的强大功能由其核心内容(语言系统、开发环境、图形系统、数学函数库、应用程序接口等)和辅助工具箱(符号计算、图象处理、优化、统计和控制等工具箱)两大部分构成。
Mathematica 是由Wolfram 公司设计开发的一个数学软件,作为一种交互式数学工具软件,它的功能主要有两个方面:计算功能和作图功能。它有以下特点:①以符号运算为主,进行符号运算时非常方便。它能够做微积分中许多运算,如求极限、求导数、求不定积分、求定积分、求解微分方程、幂级数展开和幂级数的运算等;还能够做向量和矩阵的一系列运算。②绘图功能十分强大和便利,能够做平面图形( 直角坐标作图和极坐标作图,还有参数方程作图) ,也能做三维的曲面、曲线图形;③Mathematica 是通过函数、方程绘制图形的,与数学绘图的习惯一致,用户不需编制复杂的程序,直接调用内部函数和外部函数,就可以完成图形的绘制及特性的分析;④在Mathematica 环境下,绘制的空间图形是活动的,通过改变观察角度,可达到最佳的视觉效果;⑤包含文本编辑和文件处。
使用matlab与mathematica来求解学习中所涉及的数学问题, 可以培养学生学习数学的兴趣, 也可以达到提高应用计算机来解决数学问题的能力,这是当前数学教学改革的重要方面。本文的目的就是通过探讨matlab与mathematica软件在微积分、线性代数、函数作图等方面的应用,并进行对比分析, 突出数学工具的不同特点,激发学生对二者的学习兴趣,培养学生运用数学工具解决数学问题的思维。
一、Matlab和Mathematica软件在计算上的应用
1. MATLAB和Mathmatica在积分计算中的应用
Matlab计算不定积分的使用格式:int(f,var),计算定积分的使用格式:int( f,var,a,b)。其中,f为被积函数,var为积分变量,a为积分下限,b为积分上限。
Mathematica 中提供求积分的函数是Integrate。计算不定积分的调用格式是Integrate[f[x],x],它计算的是!f(x)dx,但结果中不含积分常数C;计算定积分的调用格式是Integrate[f[x],{x,a,b}],其中a,b分别是积分的下限和上限。
2. MATLAB和Mathmatica在矩阵计算中的应用
Matlab的所有运算都是基于矩阵的,利用Matlab 强大的矩阵处理功能,可以非常方便地解决线性代数中手工计算非常繁琐的一些问题,例如求行列式的值、矩阵的逆、矩阵的秩、线性方程组的求解等。
3. MATLAB 和Mathmatica 在求解线性方程组中的应用
例1. (1) 求下列线性方程组的通解。
x1+2x2+4x3+6x4-3x5+2x6=42x1+4x2-4x3+5x4+x5-5x6=33x1+6x2+2x3+5x5-9x6=-12x1+3x2+4x4+x6=8-4x2-5x3+2x4+x5+4x6=-55x1+5x2-3x3+6x4+6x5-4x6=25x1+5x2-3x3+6x4+6x5-4x6=2
(2) 求上述線性方程组的增广矩阵A 的列向量组的一个极大线性无关组,并把其余向量用极大线性无关组线性表示。
Matlab程序设计:
>>A=[1 2 4 6 -3 2 4; 2 4 -4 5 1 -5 3;3 6 2 0 5 -9 -1;2 3 0 4 0 1 8;0 -4 -5 2 1 4 -5;5 5 -3 6 6 -4 2];
>>J=rref(A);
运行结果:
J =
1.000000 0 06.806811.0972
0 1.0000 0 0 0-2.2520-0.4192
0 01.00000 0-0.2041-1.1384
0 00 1.00000-1.4644-3.2342
0 0001.0000 -3.1000-5.9000
0 0000 0 0
结果说明:
(1)线性方程组的通解为:
k(6.08068 2.2520 0.2041 1.4644 3.1000 1)+(11.0972 -0.4192 -1.1384 -3.2342 -5.900)
(2) 所求极大线性无关组为:a1,a2,a3,a4,a5。而其余向量用极大线性无关组可表示为:
a6=6.08068a1-2.2520a2-0.2041a3-1.4644a4-3.1a5
a7=11.0972a1 -0.4192a2 -1.1384a3 -3.2342 a4-5.9a5
Mathematica程序设计:
In:=A={{1,2,4,6,-3,2},{2,4,-4,5,1,-5},{3,6,2,0,5,-9}, {2,3,0,4,0, 6},{0,-4,-5, 2,1, 4},{5,5,-3,6,6,-4}};
b={4,3,-1,8,-5,2};
A={{1,2,4,6,-3,2,4},{2,4,-4,5,1,-5,3},{3,6,2,0,5,-9,-1},{2,3,0,4,0,6,8},{0,-4,-5,2,1,4,-5},{5,5,-3,6,6,-4,2}};
RowReduce[A] // MatrixForm
Out // MatrixForm =100000■010000-■001000-■000100-■000010-■000001 0
In:=Solve[A.{x1,x2,x3,x4,x5,x6}==b,{x1,x2,x3,x4,x5,x6}]
Out={{x1→■,x2→-■,x3→-■,x4→-■,x5→-■,x6→0}}
In:=LinearSolve[A,b]
Out={■,-■,-■,-■,-■,0}
对比分析:从程序设计看,Matlab比Mathematica简捷,且运行速度更快。
二、Matlab 和Mathematica 软件在绘图方面的应用
有些函数的图像,使用一般的图形图像处理软件如Photoshop 等很难画出来,而使用Matlab和Mathematica 软件 却能很方便地对我们输入的函数绘出相应的图形。我们可以在Matlab Matlab和Mathematica 软件中选择直角坐标、极坐标等不同的坐标系;可以绘出平面曲线、空间曲线、柱状图等;也可对图形作进一步的加工,如标注、添色等。
1. Matlab和Mathematica软件在二维绘图方面的应用
例2. 画出y1=sinx和y2=cosx在区间[ 0,2π]的图像,正弦曲线用红色的实线画出,余弦曲线用蓝色的虚线画出。
Matlab程序设计:
>>x=0:0.1:2pi;
>>y1=sin(x);
>>y2=cos(x);
>>plot(x,y1,‘r,x,y2,‘b) %plot 是平面直角坐标绘图命令,r 表示图形的颜色为红色,b表示蓝色。
>>title(‘正弦和余弦曲线)%给出图标题
>>xlabel(‘time)%给出x 轴标注
>>ylabel(‘value of function) %给出y轴标注
运行结果(略)
Mathematica最基本的二维函数作图由系统函数实现这个函数的使用形式有两种:
Plot[表达式变量、下限、上限, 可选项]
Plot[表达式,表达式……,变量,下限,上限可选项]
第一个使用形式用于作一个函数表达式的图形, 第二个形式用于在一个图里作多个函数表达式的图形。
Mathematica程序设计:
In:=y1[x_]=Sin[x];
y2[x_]=Cos[x];
t1=Plot[y1[x],{x,0, 2*Pi},PlotStyle -> {RGBColor[1,0,0]},
AxesLabel -> {“time”,“value of function”}];
t2=Plot[y2[x],{x,0,2*Pi},PlotStyle -> {RGBColor[0,0,1]},
AxesLabel->{“time”,“value of function”}];
Show[t1,t2];
运行结果(略):
2. Matlab 和Mathematica 软件在三维绘图方面的应用
Matlab 提供了多个三维绘图命令, 我们以三维曲线命令plot3 为例来看三维作图的用法。
例3. 绘制螺旋线:x=2cost,y=3sint,z=t的图像。
Matlab程序设计:
>>t=0:pi/50:10*pi;
>>plot3(2*cos(t),3*sin(t),t)
运行结果(略):
Mathematica程序:
ParametricPlot3D[{2*Cos[t],3*Sin[t],t},{t,0,10π}];
运行结果(如图):
对比分析:二者基本相当,但MATLAB程序设计容易理解、方便输入,而Mathmatica则在输入方面较为复杂,更容易出错,二者都表現出画图的强大功能。
三、结束语
综上所述,Mathmatica和MATLAB 是功能强大、运用广泛的数学工具,通过二者在微积分、线性代数、函数作图等方面应用的展示(当然,二者在其他方面入数字信号处理、工程计算等有很应用),了解二者功能的不同特点,掌握二者在数学教学、学习、科研中的基本应用,减少数学学习的难度,改变数学的抽象观点,直观展现数学的风采,同时培养学生运用数学工具解决数学问题的思维及创新思维能力,激发学生学习数学和对数学工具的兴趣。