蔣定兵
摘要:早在1989年,著名科學(xué)家錢學(xué)森教授在“中國數(shù)學(xué)會教學(xué)與科研座談會”上就提出:“電子計算機(jī)的出現(xiàn)對數(shù)學(xué)科學(xué)的發(fā)展產(chǎn)生了深刻的影響,理工科大學(xué)的數(shù)學(xué)課程是不是需要改造一番?!钡拇_,Matlab和Mathematica軟件的出現(xiàn),給數(shù)學(xué)領(lǐng)域的教學(xué)、科研和學(xué)習(xí)帶來了巨大的變化和便利。
關(guān)鍵詞:matlab;mathematica;數(shù)學(xué)教學(xué);應(yīng)用
中圖分類號:G633.6 文獻(xiàn)標(biāo)識碼:A 文章編號:1992-7711(2014)06-0127
Matlab的含義是“矩陣實(shí)驗室”,是MATrix LABoratory 的縮寫,是美國Mathworks公司推出的一個高性能的科技計算軟件,它集數(shù)值計算、符號運(yùn)算、圖形圖像處理、編程等多種功能于一體,應(yīng)用非常廣泛。MATLAB系統(tǒng)的強(qiáng)大功能由其核心內(nèi)容(語言系統(tǒng)、開發(fā)環(huán)境、圖形系統(tǒng)、數(shù)學(xué)函數(shù)庫、應(yīng)用程序接口等)和輔助工具箱(符號計算、圖象處理、優(yōu)化、統(tǒng)計和控制等工具箱)兩大部分構(gòu)成。
Mathematica 是由Wolfram 公司設(shè)計開發(fā)的一個數(shù)學(xué)軟件,作為一種交互式數(shù)學(xué)工具軟件,它的功能主要有兩個方面:計算功能和作圖功能。它有以下特點(diǎn):①以符號運(yùn)算為主,進(jìn)行符號運(yùn)算時非常方便。它能夠做微積分中許多運(yùn)算,如求極限、求導(dǎo)數(shù)、求不定積分、求定積分、求解微分方程、冪級數(shù)展開和冪級數(shù)的運(yùn)算等;還能夠做向量和矩陣的一系列運(yùn)算。②繪圖功能十分強(qiáng)大和便利,能夠做平面圖形( 直角坐標(biāo)作圖和極坐標(biāo)作圖,還有參數(shù)方程作圖) ,也能做三維的曲面、曲線圖形;③Mathematica 是通過函數(shù)、方程繪制圖形的,與數(shù)學(xué)繪圖的習(xí)慣一致,用戶不需編制復(fù)雜的程序,直接調(diào)用內(nèi)部函數(shù)和外部函數(shù),就可以完成圖形的繪制及特性的分析;④在Mathematica 環(huán)境下,繪制的空間圖形是活動的,通過改變觀察角度,可達(dá)到最佳的視覺效果;⑤包含文本編輯和文件處。
使用matlab與mathematica來求解學(xué)習(xí)中所涉及的數(shù)學(xué)問題, 可以培養(yǎng)學(xué)生學(xué)習(xí)數(shù)學(xué)的興趣, 也可以達(dá)到提高應(yīng)用計算機(jī)來解決數(shù)學(xué)問題的能力,這是當(dāng)前數(shù)學(xué)教學(xué)改革的重要方面。本文的目的就是通過探討matlab與mathematica軟件在微積分、線性代數(shù)、函數(shù)作圖等方面的應(yīng)用,并進(jìn)行對比分析, 突出數(shù)學(xué)工具的不同特點(diǎn),激發(fā)學(xué)生對二者的學(xué)習(xí)興趣,培養(yǎng)學(xué)生運(yùn)用數(shù)學(xué)工具解決數(shù)學(xué)問題的思維。
一、Matlab和Mathematica軟件在計算上的應(yīng)用
1. MATLAB和Mathmatica在積分計算中的應(yīng)用
Matlab計算不定積分的使用格式:int(f,var),計算定積分的使用格式:int( f,var,a,b)。其中,f為被積函數(shù),var為積分變量,a為積分下限,b為積分上限。
Mathematica 中提供求積分的函數(shù)是Integrate。計算不定積分的調(diào)用格式是Integrate[f[x],x],它計算的是!f(x)dx,但結(jié)果中不含積分常數(shù)C;計算定積分的調(diào)用格式是Integrate[f[x],{x,a,b}],其中a,b分別是積分的下限和上限。
2. MATLAB和Mathmatica在矩陣計算中的應(yīng)用
Matlab的所有運(yùn)算都是基于矩陣的,利用Matlab 強(qiáng)大的矩陣處理功能,可以非常方便地解決線性代數(shù)中手工計算非常繁瑣的一些問題,例如求行列式的值、矩陣的逆、矩陣的秩、線性方程組的求解等。
3. MATLAB 和Mathmatica 在求解線性方程組中的應(yīng)用
例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 的列向量組的一個極大線性無關(guān)組,并把其余向量用極大線性無關(guān)組線性表示。
Matlab程序設(shè)計:
>>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);
運(yùn)行結(jié)果:
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
結(jié)果說明:
(1)線性方程組的通解為:
k(6.08068 2.2520 0.2041 1.4644 3.1000 1)+(11.0972 -0.4192 -1.1384 -3.2342 -5.900)
(2) 所求極大線性無關(guān)組為:a1,a2,a3,a4,a5。而其余向量用極大線性無關(guān)組可表示為:
a6=6.08068a1-2.2520a2-0.2041a3-1.4644a4-3.1a5
a7=11.0972a1 -0.4192a2 -1.1384a3 -3.2342 a4-5.9a5
Mathematica程序設(shè)計:
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}
對比分析:從程序設(shè)計看,Matlab比Mathematica簡捷,且運(yùn)行速度更快。
二、Matlab 和Mathematica 軟件在繪圖方面的應(yīng)用
有些函數(shù)的圖像,使用一般的圖形圖像處理軟件如Photoshop 等很難畫出來,而使用Matlab和Mathematica 軟件 卻能很方便地對我們輸入的函數(shù)繪出相應(yīng)的圖形。我們可以在Matlab Matlab和Mathematica 軟件中選擇直角坐標(biāo)、極坐標(biāo)等不同的坐標(biāo)系;可以繪出平面曲線、空間曲線、柱狀圖等;也可對圖形作進(jìn)一步的加工,如標(biāo)注、添色等。
1. Matlab和Mathematica軟件在二維繪圖方面的應(yīng)用
例2. 畫出y1=sinx和y2=cosx在區(qū)間[ 0,2π]的圖像,正弦曲線用紅色的實(shí)線畫出,余弦曲線用藍(lán)色的虛線畫出。
Matlab程序設(shè)計:
>>x=0:0.1:2pi;
>>y1=sin(x);
>>y2=cos(x);
>>plot(x,y1,‘r,x,y2,‘b) %plot 是平面直角坐標(biāo)繪圖命令,r 表示圖形的顏色為紅色,b表示藍(lán)色。
>>title(‘正弦和余弦曲線)%給出圖標(biāo)題
>>xlabel(‘time)%給出x 軸標(biāo)注
>>ylabel(‘value of function) %給出y軸標(biāo)注
運(yùn)行結(jié)果(略)
Mathematica最基本的二維函數(shù)作圖由系統(tǒng)函數(shù)實(shí)現(xiàn)這個函數(shù)的使用形式有兩種:
Plot[表達(dá)式變量、下限、上限, 可選項]
Plot[表達(dá)式,表達(dá)式……,變量,下限,上限可選項]
第一個使用形式用于作一個函數(shù)表達(dá)式的圖形, 第二個形式用于在一個圖里作多個函數(shù)表達(dá)式的圖形。
Mathematica程序設(shè)計:
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];
運(yùn)行結(jié)果(略):
2. Matlab 和Mathematica 軟件在三維繪圖方面的應(yīng)用
Matlab 提供了多個三維繪圖命令, 我們以三維曲線命令plot3 為例來看三維作圖的用法。
例3. 繪制螺旋線:x=2cost,y=3sint,z=t的圖像。
Matlab程序設(shè)計:
>>t=0:pi/50:10*pi;
>>plot3(2*cos(t),3*sin(t),t)
運(yùn)行結(jié)果(略):
Mathematica程序:
ParametricPlot3D[{2*Cos[t],3*Sin[t],t},{t,0,10π}];
運(yùn)行結(jié)果(如圖):
對比分析:二者基本相當(dāng),但MATLAB程序設(shè)計容易理解、方便輸入,而Mathmatica則在輸入方面較為復(fù)雜,更容易出錯,二者都表現(xiàn)出畫圖的強(qiáng)大功能。
三、結(jié)束語
綜上所述,Mathmatica和MATLAB 是功能強(qiáng)大、運(yùn)用廣泛的數(shù)學(xué)工具,通過二者在微積分、線性代數(shù)、函數(shù)作圖等方面應(yīng)用的展示(當(dāng)然,二者在其他方面入數(shù)字信號處理、工程計算等有很應(yīng)用),了解二者功能的不同特點(diǎn),掌握二者在數(shù)學(xué)教學(xué)、學(xué)習(xí)、科研中的基本應(yīng)用,減少數(shù)學(xué)學(xué)習(xí)的難度,改變數(shù)學(xué)的抽象觀點(diǎn),直觀展現(xiàn)數(shù)學(xué)的風(fēng)采,同時培養(yǎng)學(xué)生運(yùn)用數(shù)學(xué)工具解決數(shù)學(xué)問題的思維及創(chuàng)新思維能力,激發(fā)學(xué)生學(xué)習(xí)數(shù)學(xué)和對數(shù)學(xué)工具的興趣。