MATLAB在数学教学中的应用

更新时间:2023-05-16 03:58:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB在数学教学中的应用

张兴元

1.MATLAB简介

1.1 简介

MATLAB是Matrix Laboratory(矩阵实验室)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的、功能强大的、操作简单的语言,是国际公认的优秀数学应用软件之一。

其产品Logo为,目前该产品已经发展到R2009版。

Cleve B.Mole是其创始者和首席科学家,他曾任密歇根大学、斯坦福大学

和新墨西哥大学的数学系或计算机系教授,也曾

在Intel和Ardent Computers公司工作过,他还是

矩阵计算软件包LINPACK和EISPACK的作者之

一,撰写过两本MATLAB方面的著作:

Numerical Computing with MATLAB,

Experiments in MATLAB。

MATLAB现在已经发展成为适合多学科的大

型软件,在世界许多高校,它已经成为线性代

数、数值分析、数理统计、自动控制、数字信号

处理、动态系统仿真等课程的基本教学工具。

一年一度的全国大学生数学建模竞赛活动,使得它在国内很快普及。

【演示例子】:分形蕨[1]。

【程序】:【Fern.m】。

1.2 软件学习使用方法

学习的方法:

●一本基础的MATLAB使用教程;

●运行并学习Demo;

●借助帮助系统使用;

●相互交流。

2.MATLAB 在数学课程教学中的应用类型

MATLAB 在数学课程教学中的应用可以包含数学计算即解数学题、数学概念的几何形象化、数学规律的形象化理解等。(纯属个人观点)

2.1 数学计算

利用MATLAB 具有符号演算和数值计算功能,但很多教师、工程师和研究人员把主要它作为主要的数值计算和图形演示工具。

2.1.1 符号演算

MATLAB 的符号演算功能是通过调用数学软件MAPLE 的符号处理内核来完成。其使用方法,可以采用如下形式:

Step1:定义符号变量和表达式;

Step2:调用符号运算函数完成演算;

Step3:借助图形函数展示演算结果。

【例1】微积分计算

(1)lim n →∞

【程序】:

syms x;syms n;

f2=n^(1/n);

v2=limit(f2,n,inf,'left')

(2)31lim [sin ln(1)sin ln(1)]x x x x

→∞+-+; 【程序】:

syms x;

f6=x*(sin(log(1+3/x))-sin(log(1+1/x)));

v6=limit(f6,x,inf,'left')

(3)求函数5433354

()21=--+f x x x x 的极值; 【程序】:

【Step1】:绘制函数的图形:

hold on;

grid on;

fplot('3/5*x^5-3/4*x^4-2*x^3+1',[-2 2.5]);

fplot('0*x',[-2,2.5])

hold off;

【Step2】求出函数的驻点

syms x;

f=3/5*x^5-3/4*x^4-2*x^3+1;

df1=diff(f,x);

df1=factor(df1)

x0=solve(df1,x)

【Step3】判断驻点是否为极值点

df2=diff(f,x,2)

x20=subs(df2,x,0)

x22=subs(df2,x,2)

x21=subs(df2,x,-1)

y0=subs(f,x,0)

y2=subs(f,x,2)

y1=subs(f,x,-1)

(4)计算定积分:

① 34

10tan I xdx π

=?;② 120I =?;③ 2

140x I e dx -=? 【程序】:

syms x;

I1=int(tan(x)^3,0,pi/4)

I2=int(1/((3+6*x-x^2)^(1/2)),0,1)

I3=int(exp(-x^2),0,1)

I1D=double(I1)

I2D=double(I2)

I3D=double(I3)

(5)求方程组()()0,()4()0x t y t y t x t ''''+=-=满足条件(0)(0)0x y ==,(0)1,(0)2x y ''==的特解。

【程序】:

syms x y;

f='D2x+y=0,D2y-4*x=0';

S=dsolve(f,'x(0)=0,Dx(0)=1,y(0)=0,Dy(0)=2');

[S.x;S.y]

ezplot(S.x,S.y,[-10,10])

【例2】线性代数计算

(1)设

211

212

111

A

-

??

??

=??

??

-

??

,计算110

det,(),,

A Tr A A A

-。

【程序】:

A=[2 1 -1;2 1 2;1 -1 1];

d=det(A) % 计算行列式

tr=trace(A) %计算A的迹:a11+a22+...+ann

invA=inv(A) %计算A的逆矩阵

mA=A^10 %计算A的10次幂

(2)求线性方程组

26767

9714117

25979 361625225

x y z w

x y z w

x y z w

x y z w

+++=

?

?+++=

?

?

+++=

?

?+++=

?

的通解。

【程序】:

S=solve('x+2*y+6*z+7*w=67','x+9*y+7*z+14*w=117','x+2*y+5*z+9 *w=79','3*x+6*y+16*z+25*w=225');

[S.x;S.y;S.z;S.w]

(3)计算方阵的特征值与特征向量:

1123 213 336

A

??

??

=??

??

??

2

323

111

414

A

-??

??

=-??

??

-??

【程序】:

% 第一小题

clear;clc;

A1=[1 2 3;2 1 3;3 3 6];

[V1,D1]=eig(sym(A1))

% 第二小题

A2=[-3 2 3;-1 1 1;-4 1 4];

[V2,D2]=eig(sym(A2))

2.1.2 数值计算与模拟

MATLAB 的数值计算功能非常强大,既可以完成数值代数、数值逼近和微分方程数值解等传统内容,也可以借助编程完成如统计计算、分形与混沌研究等,还可以借助Simulink 完成系统模拟等任务。

【例3】生日问题[2]。 美国数学家柏格米尼曾经做过一个别开生面的试验:在一个盛况空前的人山人海的世界杯足球赛赛场上,它随机地在某看台上请23个球迷分别写下了自己的生日,结果竞发现其中的两个人生日相同。怎么会这么凑巧呢?请用概率的知识加以说明。

【理论推导】:设随机选取(365)s ≤个人,记A={至少有两个人的生日相同},则A ={所有人生日全不相同},则

365()1()1365s s

P P A P A =-=- 因此,随着选取人数(365)s ≤的增加,概率()P A 接近于1;当365s >时,就成为一个必然事件。

【计算机模拟演示】:

下面通过计算机程序模拟生日问题,即从1,2,…,365个整数中随机产生s(用户自己输入)个可重复的整数来模拟实验结果。步骤如下:

Step1:产生s 个随机数,统计结果;

Step2:重复Step1多次,统计试验结果,并计算出现相同值的频率; Step3:改变s ,重复Step1和Step2,每一种情况下的频率;

Step4:绘制频率图和频率累计图并与理论结果比较。

【程序】:【BirthdayProb.m 】

【例4】微分方程数值解

求解初值问题3()()4()()()3()(0)1,(0)8x t x t x t y t y t x t x y '?=---?'=??==-?

,并绘

制斜率场及解曲线。

【步骤】:

【Step1】:单独定义微分方程;

【Step2】:利用ode 函数求解微分方程;

【Step3】:绘制解曲线。

【程序】:

【微分方程1】:Exam05Demo03Prob2.m ;

【求解并绘图】:【DifEq.m 】。

2.2 数学概念的形象化

可以借助编程实现很多数学概念如连续与可微、定积分、行列式、线性变换、矩阵的秩、特征值、特征向量等的几何直观解释。

【例5】微积分

【项目1】连续函数、可微函数观察

选定两个函数f x g x (),(),如

x x x f x g x x x 1

sin ,0(),()sin 0

,0≠?==?=?, 在点x 0(0)=处f x ()连续,而g x ()连续可微,观察它们在点x 0附近的图像的区别。

【方法】:分别作出函数f x g x (),()在包含x 0的一系列区间上的图像,并进行

对比。

【程序】:【Continuity_Differentiability.m 】。

【项目2】 处处连续处处不可微的函数例子---魏尔斯特拉斯曲线[3]

魏尔斯特拉斯函数是

n n n f x b a x x b a ab 0()cos(),,01,0,1π∞

==-∞<<+∞<<>>∑

(1)

级数(1)在x -∞<<+∞中一致收敛,所以f x ()在

x -∞<<+∞上连续,它是无穷多个余弦曲线叠加而成的,记第n+1条曲线为

n n n y T x b a x ()cos()π== 其周期为n a 2,振幅为n b 。

余弦曲线的斜率(按绝对值计算)的最大值出现在它的零点处,我们用这个最大值来刻画它陡峭的程度,故不妨称为n T x ()的陡度,即得n T x ()的陡度就是

n n dT x ab dx

()max ()π= 现令 1a >为一整数,且1ab >,

所以n T x 1()+的陡度又比n T x ()的陡度大(ab )倍,所以构成函数(1)的正弦波

就越来越窄,越来越陡,其振幅也越来越小。图1就b=1/2,a=5画出了级数

(1)的三个部分和(程序参见Exm16Demo02_1.m )。

短划线是部分和:S x T x x 00()()cos()π==; 虚线是部分和:S x T x T x x x 1011()()()cos()cos(5)2

ππ=+=+; 实线:S x T x T x T x x x x 201311()()()()cos()cos(5)cos(25)24

πππ=++=++。 【程序】:

【程序1】:Weierstrass0.m

【程序2】:Weierstrass100.m

观察图像,我们可以想象由无穷多项余弦波叠加而成的函数f x ()的图像会成为一条“毛茸茸“的曲线,而有可能是一个不可求导的函数的图像。事实上可以从理论上证明它在任一点处均不可微[]。

【项目3】定积分定义的几何演示

定积分0sin x e xdx π

?与其积分和的关系。 【原理】:

依据定积分的定义:001

sin lim sin ,max{}→==?=?∑?i n x

i i i i e xdx e x x πξλξλ 【步骤】:

【Step 1】:将区间[0,pi]分成n 等份即取i n

x π?=,取每个区间右端点

为i ξ,并计算积分和1

()sin i

n

i

i S n e n

ξπ

ξ==

∑;

【Step 2】:画出被积函数()sin x f x e x =的图形和S(n)所表示的面积; 【Step 3】:改变n ,重复Step1和Step2。 【程序】:【Integral.m 】 【项目4】二重积分定义的几何演示

演示二重积分22

,:||1,||12D

x y I dxdy D x y +=-≤≤??()的积分和变化过程

(极坐标和直角坐标)。 【原理】:

二重积分的定义为:0

1

(,)lim (,)n

i i i i D

f x y d f λσξησ→==?∑??。

【直角坐标系】:体积微元的底面面积为i i j x y σ?=???,上式变成

1

(,)lim (,)n

i

i

i

j

i D

f x y d f x y λ

σξη→==??∑??

【步骤】:(直角坐标)

【Step 1】:对区域:||1,||1D x y ≤≤进行划分成m n ?等份即取

22

,i j m n

x y ?=?=,取每个矩形的右上角点为(,)i j ξη,则 22

1*,1,2,...,;1*,1,2,...,i j m n i i m j j n ξη=-+==-+=

积分和22

1122(,)2

m n i j

i j S m n m n ξη==+=-?∑∑;

【Step 2】:画出22

(,)2

x y f x y +=-的图形和S(m,n)所表示的体积;

【Step 3】:改变m,n ,重复Step1和Step2。 【程序】:【DoubleIntegral.m 】

【项目5】旋转曲面的生成[2]

用动画演示由曲线sin ,[0,]y z z π=∈绕z 轴旋转产生的旋转曲面的过程。

【步骤】:

【Step1】写出曲面的参数方程:旋转曲面的方程为:222sin x y z +=,

其参数方程为sin cos sin sin ,[0,],[0,2]=??=∈∈??=?

x v u y v u v u z v ππ。

【Step2】画出旋转面在区间20,,1,2,,n u k k n π∈=???? 内的图形;

采用镂空技术:将不需要画出的部分的Z 值赋值为NaN 。

【Step3】连续显示这些图形,形成动画。

【程序】:【SurfaceofRevolution.m 】。

【例6】线性代数

【项目】特征值与特征向量的定义及几何演示

设λ是方阵A 的特征值,ξ是对应于特征值λ的特征向量,则A ξλξ=。几何上可理解为当数0λ≠时,非零向量ξ在线性变换A 的作用下的像A ξ与向量ξ的方向平行(方向相同或相反);当数0λ=时,非零向量ξ在线性变换A 的作用下的像为零向量。试用如下方阵验证。

(1)1221A ??=????; (2) 0.5 1.20.1 1.5A ??=????; (3)1111A ??=????

。 【原理】:

二维情况:依次取单位圆周:cos ,sin ,02x y θθθπ==≤≤上的向量

cos ()sin r r θθθ??==????

,分别绘制向量r 、Ar ,当它们共线时就绘制一条直线。 【程序】:【Eigenvalue_Vector.m 】。

2.3 数学规律的直观化理解

很多的数学结果和数学规律,可以使用MATLAB 借助几何图形或者动画加以直观化,以帮助理解。例如:

【例7】Fourier 级数展开及其和函数的逼近

数学原理:Fourier 级数展开定理。

设()f x 是以2π为周期,振幅为1的方波函数,它在[,]ππ-上的

表达式为

1,0()1,0x f x x ππ--≤<?=?<≤?

试将()f x 展开成Fourier 级数,并画出图形观察该函数的部分和逼

近()f x 的情形。

【原理】:

以2l 为周期的函数()f x 的Fourier 级数为

01()(cos sin )2n n n a n x n x f x a b l l ππ∞=++∑ ,

其中 1()cos ,0,1,2,l n l n x a f x dx n l l π-==? ,1()sin ,1,2,l n l n x b f x dx n l l

π-==? 。 【步骤】:

Step1:求出f(x)的Fourier 系数;

由于函数f(x)为奇函数,由Fourier 系数的公式知道,a n =0,因此它的Fourier

级数只含有正弦项,又因为f(x)sin(nx)为偶函数,故级数中的系数

02

2(1(1))()sin(),1,2,n n b f x nx dx n n π

ππ

--===? Step2:绘制逼近图形

【程序】:【Fourier.m 】。

【例8】线性代数:特征值与特征向量的迭代性质

【实验21】。

【例9】概率统计:二项分布的Galton 实验[4]

【实验22】。

3.关于在数学教学中引入数学软件和数学实验的一些思考

3.1 引入原因(Why )

(1) 数学教学应该包含一个“全”过程:实践→理论→实践;

(2)数学教学应该与时俱进:与计算机结合,新的数学内容引入;

(3)知识应与技术有机结合:数学知识与数学技术问题。

3.2 内容和素材的选择(Where and What )

(1) 哪些数学概念和内容?(Where )

重要概念、重点内容。问题:

● 多大范围内考虑?单门课程→公共数学课程→每个专业应用领域分类 ● 当前如何确定它们的重要性?可用PageRank 算法[1]确定吗?

(2)使用怎样的素材?(What )

● 丰富多彩

? 数学领域

? 应用领域

3.3 如何实现(How )

● 技术的

非技术的

个人观点:(建立数学实验课件的过程)

参考文献

[1] Cleve B.Moler 著,喻文健译. MATLAB数值计算. 北京:机械工业出版社,2006年6月:Page11-13,62.

[2] 李辉来. 大学数学课程实验.北京:高等教育出版社,2008年1月:P82,192.

[3] 齐民友. 重温微积分. 北京:高等教育出版社,2004年1月:P175.

[4] 周晓阳. 数学实验与MATLAB. 武汉:华中科技大学出版社,2001年:P151-157.

本文来源:https://www.bwwdw.com/article/azc4.html

Top