1. 引言
数学分析课程以其高度的抽象性和严密的逻辑性,成为刚踏入大学校园的数学系新生面临的第一道学业难关。由于思维方式尚未从中学阶段的具象化认知完全过渡到高等数学的抽象化思考,许多学生在接触极限、导数、积分等核心概念时常常感到晦涩难懂,不仅影响了课程学习效果,更可能由此引发对大学整体学习生活的抵触情绪。
当前数学分析课程的教学面临着诸多困境。从教学内容来看,许多概念和定理的表述简洁而深刻,对于刚进入大学的学生来说,理解起来难度较大。例如,极限的ε-δ定义,以一种极为抽象和严谨的方式刻画了变量在无限变化过程中的趋势,学生往往难以从直观上把握其本质含义;又如,多元函数的偏导数和全微分概念,涉及多个变量之间的复杂关系,学生容易混淆和误解。这种抽象性使得学生在学习过程中常常感到困惑和吃力,难以建立起对知识的深入理解和有效应用。在教学方法方面,传统的数学分析教学大多以教师讲授为主,采用PPT配合板书的模式。即便借助PPT,内容也仍以文字阐述与公式推导为主。而数学分析中不少概念和理论本就高度抽象,这使得学生很难形成直观的认知,不利于学生对知识的理解和掌握。
结合数学分析课程的严谨性与不同专业的特质差异,教学实践中涌现出了丰富多元的探索路径。在教学方法创新方面,既有依托“以教代学”核心理念的费曼学习法[1],通过让学生以教者视角梳理知识,强化对概念逻辑的深层把握;也有聚焦互动效能的小班教学模式[2],以“泰勒公式”等难点内容为载体,通过高频问答与小组研讨破解抽象推导的理解障碍。在教学场景拓展上,立足真实问题的案例式教学,如为农科背景学生设计作物生长模型中的微积分应用案例[3],将抽象理论与专业场景深度绑定;而线上线下深度融合的混合式教学,则通过课前在线预习无穷小量概念、课中线下推演证明的协同模式[4],重构知识习得的时空节奏。文献[5]通过调整课程内容、改革教学方法、加强课程的实践性和创新性以及构建完整的课程体系等措施,以满足大数据专业的教学需求,培养出具备扎实数学基础和丰富数据分析技能的专业人才。这些探索既兼顾农科背景学生对应用场景的需求,也契合数据科学专业对数理基础的进阶要求,形成了适配不同培养目标的教学范式。
从技术辅助教学的演进来看,国内外相关研究已形成多元脉络。国外学者早在上世纪末便开始探索计算机技术与数学教学的融合,如利用动态几何软件GeoGebra演示函数形态,其研究表明可视化工具能显著降低抽象概念的认知门槛。建构主义理论认为,学习是学习者主动建构意义的过程,MATLAB的动态可视化为学生提供了“观察现象–归纳规律–形成认知”的主动学习支架,使抽象概念从教师的“语言描述”转化为学生可操作、可验证的“思维对象”。国内研究中,陶强等聚焦MATLAB在微分方程教学中的可视化应用,通过绘制解曲线来揭示参数变化对系统演化的影响[6];刘与嘉等则通过线性代数中的矩阵变换可视化案例,验证了技术工具对空间想象能力的提升作用[7]。认知负荷理论则提示,当信息以图像与文字双通道呈现时,可降低工作记忆的加工压力,这种“视觉–逻辑”的协同编码方式,恰好契合数学分析“符号推演 + 逻辑证明”的双重认知需求。但需注意其适用边界:对于ε-δ极限定义的严格证明等纯逻辑推演内容,过度依赖可视化可能弱化学生对“ε与δ依存关系”的严谨把握,因此需与传统板书推导形成互补,在直观感知与逻辑严密性之间建立平衡。
基于上述对数学分析教学多元探索及技术辅助教学研究脉络的梳理,结合相关学习理论对可视化教学的支撑与适用边界,下文将具体从四个方面展开可视化内容的分析。
2. 概念可视化——极限概念的动态演示
极限是数学分析中的重要概念,也是学生学习的难点。它的定义较为抽象,传统的教学方法难以让学生深入理解其本质。利用MATLAB的动态演示功能,可以将极限概念以生动、直观的方式呈现给学生,帮助学生更好地掌握这些概念。
在讲解极限概念时,以函数
在
时的极限为例。在MATLAB中,可以通过编写程序实
现动态演示。首先,定义自变量x的取值范围,如x = −1:0.01:1,但要注意排除x = 0这一点,因为在这点没有定义。然后,计算函数y = sin(x)./x的值,这里同样使用点除运算符“./”进行数组运算。接着,利用MATLAB的动画制作函数,如movie函数或animatedline函数,来实现动态演示。通过不断改变x的取值,使其逐渐趋近于0,同时实时绘制函数图像,让学生可以直观地看到随着x趋近于0,函数值的变化趋势。以下是使用animatedline函数实现动态演示的代码示例:
figure;
h = animatedline;
x = -1:0.01:1;
x(x == 0) = []; % 排除x=0
y = sin(x)./x;
for i = 1:length(x)
addpoints(h,x(i),y(i));
drawnow;
pause(0.02); % 控制演示速度,数值越大速度越慢
end
xlabel('x');
ylabel('y');
title('y = \frac{\sin x}{x}在x \to 0时的极限动态演示');
在这个动态演示过程中,学生可以清晰地看到当x从左右两侧逐渐趋近于0时,函数
的值
逐渐趋近于1,从而深刻理解极限的概念,即当自变量趋近于某一值时,函数值无限趋近于一个确定的常数。
函数列的收敛性本质上也是一类极限问题,不同之处在于分为逐点收敛和区间上一致收敛两种情形,可通过MATLAB动态演示一致收敛与逐点收敛的区别。以函数列
为例,在区间[0, 1)上,固定任意
,当
时
 (逐点收敛),但在x接近1时收敛速度显著变慢;而在[0, a] (0 < a < 1)上,所有点同步快速收敛到0 (一致收敛)。通过以下代码可直观展示这一差异:
x = 0:0.01:0.99;
for n = 1:2:50
cla; % 清除上一次图像
y = x.^n;
plot(x, y, 'b', 'LineWidth', 1.5);
ylim([0, 1.2]);
title(['n = ', num2str(n), ' 时 f_n(x)=x^n 的图像']); % 修正num2str参数格式
xlabel('x');
ylabel('y');
pause(0.3);
end
运行后可见,在[0, 0.5]内曲线迅速贴近x轴,而在[0.8, 0.99]内曲线下降缓慢,可清晰呈现两种收敛性的本质区别。
3. 函数性质可视化
在数学分析的教学体系中,函数是当之无愧的核心概念,对其性质的深刻理解,更是学生扎实掌握数学分析知识体系的关键所在。然而,传统教学中对函数性质的讲解往往较为抽象,学生难以形成直观认识。借助 MATLAB 强大的绘图功能,能够将各种复杂函数的图像清晰、准确地绘制出来,帮助学生直观地理解函数的性质。
以幂指函数
为例,该函数的性质相对复杂,传统的教学方式很难让学生直观地把握其变化规律。在MATLAB中,通过简单的编程即可绘制出该函数的图像。首先,在命令窗口中定义自变量x的取值范围,例如x = 0:0.01:10,表示x从0开始,以0.01为步长,取值到10。然后,利用MATLAB的指数和正弦函数运算规则,定义函数y = x.^sin(x),这里的点乘运算符“.”用于表示数组运算,确保x的每个元素都参与正弦运算后再进行指数运算。最后,使用绘图函数plot(x, y)即可绘制出函数
的图像。
x = 0:0.01:10;
y = x.^sin(x);
plot(x,y)
xlabel('x')
ylabel('y')
title('y = x^{\sin x}函数图像')
从绘制出的图像(见图1)中,学生可以直观地观察到函数的诸多性质。函数在x = 0附近的取值情况,随着x的逐渐增大,函数值的变化趋势。可以看到函数在某些区间内单调递增,在某些区间内单调递减,通过图像能够清晰地确定这些单调区间。还能观察到函数的极值点,即函数在该点处取得局部最大值或最小值。这些直观的信息有助于学生深入理解函数的性质,与传统教学中仅通过解析式分析函数性质相比,借助MATLAB绘制的图像更加形象生动,降低了学生的理解难度。
再比如,对于分段函数的可视化展示,MATLAB同样具有显著优势。以如下分段函数为例:
Figure 1. Graph of the function 
 
图1. 
的函数图像
在MATLAB中,可以通过条件判断语句和绘图函数来绘制该分段函数的图像。首先,定义自变量x的取值范围,如x = −5:0.01:5。然后,使用条件判断语句分别计算不同区间内的函数值。对于x < 0的部分,计算y1 = x.^2;对于0 ≤ x < 2的部分,计算y2 = 2∗x + 1;对于x ≥ 2的部分,计算y3 = x − 1。最后,使用绘图函数将这三段函数图像绘制在同一坐标系中,代码如下:
x = −5:0.01:5;
y1 = x.^2;
y1(x >= 0) = NaN; % 将x >= 0部分的值设为NaN,使其不显示
y2 = 2 * x + 1;
y2(x < 0 | x >= 2) = NaN; % 将x < 0和x >= 2部分的值设为NaN
y3 = x − 1;
y3(x < 2) = NaN; % 将x < 2部分的值设为NaN
plot(x,y1,x,y2,x,y3)
xlabel('x')
ylabel('y')
title('分段函数图像')
绘制出的分段函数图像(见图2)能够清晰地展示函数在不同区间的表达式和变化情况,帮助学生更好地理解分段函数的概念和性质。学生可以直观地看到函数在不同区间的连接点处的连续性或间断性,以及函数值的跳跃情况,从而加深对分段函数的认识。
4. 积分计算可视化
积分是数学分析中的重要内容,包括不定积分和定积分。积分的概念和计算对于学生来说具有一定的难度,尤其是定积分的几何意义和计算过程,学生往往理解不够深入。通过MATLAB的可视化功能,可以将积分计算过程以直观的图形方式呈现出来,帮助学生更好地理解积分的概念和计算方法。
Figure 2. Graph of a piecewise function
图2. 分段函数的函数图像
以定积分计算为例,假设要计算函数
在区间[0, 1]上的定积分。在MATLAB中,可以使用数值积分函数integral来计算定积分的值,同时通过绘图函数将积分过程可视化。首先,定义被积函数f = @(x)x.2,这里使用匿名函数的方式定义函数
。然后,使用integral函数计算定积分的值,如result = integral(f,0,1),其中0和1分别是积分下限和上限,result为计算得到的定积分值。接着,为了可视化积分过程,可以将积分区间[0,1]进行细分,例如分成n = 10个小区间,计算每个小区间上的函数值,并使用bar函数绘制出这些小区间上的矩形。矩形的宽度为小区间的长度,高度为对应小区间中点处的函数值,这些矩形的面积之和近似等于定积分的值。随着小区间数量的增加,矩形面积之和将越来越接近定积分的精确值。以下是实现代码:
% 定义函数 f(x) = x2
f = @(x) x.^2;
% 计算定积分的精确值
result = integral(f, 0, 1);
% 矩形法近似参数设置
n = 10;                  % 矩形数量
x = linspace(0, 1, n+1);  % 包含端点的等距点,共n + 1个点
dx = x(2) - x(1);         % 每个矩形的宽度
% 计算每个矩形中点的函数值(使用中点法提高精度)
x_mid = (x(1:end-1) + x(2:end)) / 2;  % 每个子区间的中点
y_mid = f(x_mid);                     % 中点处的函数值
% 创建图形
figure('Name', '定积分的矩形法近似', 'Position', [100, 100, 800, 600]);
% 绘制矩形(使用中点高度)
for i = 1:n
% 矩形位置:[x_left, y_bottom, width, height]
rectangle('Position', [x(i), 0, dx, y_mid(i)], ...
'FaceColor', [0.8 0.8 1], ...
'EdgeColor', 'none');
end
hold on;
% 绘制原函数曲线,使可视化更直观
x_curve = linspace(0, 1, 1000);  % 更密集的点用于绘制曲线
plot(x_curve, f(x_curve), 'r-', 'LineWidth', 2);
% 添加标签和标题
xlabel('x', 'FontSize', 12);
ylabel('y', 'FontSize', 12);
title(['函数 y = x^2 在 [0, 1] 上的定积分', ...
newline, '精确值: ', num2str(result), ...
'  矩形法近似值: ', num2str(sum(y_mid * dx))], 'FontSize', 14);
% 添加图例
legend('矩形法近似', '原函数曲线', 'Location', 'Best');
% 网格和坐标调整
grid on;
axis equal;
box on;
hold off;
运行上述代码后,会生成一个图形(见图3),其中蓝色的矩形表示将积分区间细分后的各个小区间,而淡蓝色的填充部分则更直观地展示了积分的几何意义,即定积分表示的是函数曲线与x轴之间在积分区间上所围成的面积。通过这个可视化过程,学生可以清晰地看到定积分的计算是如何通过将积分区间分割成多个小区间,然后用矩形面积之和来近似的,随着分割的细化,近似程度越来越好,最终得到精确的积分值。这有助于学生从几何角度深入理解定积分的概念,同时也能更好地掌握定积分的计算方法。
对于二重积分的可视化呈现,MATLAB同样能够发挥重要作用。以计算函数
在区域D: −1 ≤ x ≤ 1,−1 ≤ y ≤ 1上的二重积分为例。首先,在MATLAB中需要定义被积函数和积分区域。可以使用匿名函数定义被积函数f = @(x,y)x.2 + y.2。然后,使用integral2函数进行二重积分的计算,如result = integral2(f,−1,1,−1,1),其中前两个参数−1和1表示x的积分下限和上限,后两个参数−1和1表示y的积分下限和上限,result为计算得到的二重积分值。为了可视化二重积分的计算过程,可以使用meshgrid函数生成网格点,计算每个网格点上的函数值,然后使用surf函数绘制三维曲面。同时,通过颜色映射来表示函数值的大小,使学生能够直观地看到函数在积分区域上的分布情况。以下是实现代码:
f = @(x,y) x.^2 + y.^2;
result = integral2(f,−1,1,−1,1);
[x,y] = meshgrid(0:0.1:1,0:0.1:1);
z = f(x,y);
figure;
surf(x,y,z);
xlabel('x');
ylabel('y');
zlabel('z');
title(['函数z = x^2 + y^2在区域D上的二重积分,积分值为:',num2str(result)]);运行上述代码后,会生成一个三维曲面图,展示了函数
在积分区域D上的分布情况(见图4)。通过这个可视化过程,学生可以更直观地理解二重积分的几何意义,即二重积分表示的是三维空间中函数曲面与积分区域所围成的立体体积。这对于学生理解和掌握二重积分的概念和计算方法具有很大的帮助,使抽象的数学概念变得更加形象、具体。
Figure 3. Geometric meaning and calculation of definite integrals
图3. 定积分的几何意义与计算
Figure 4. Calculation of double integrals
图4. 二重积分的计算
5. 级数与特殊函数可视化
5.1. 傅里叶级数逼近与吉布斯现象
傅里叶级数在信号分析中应用广泛,但其收敛过程中的吉布斯现象是学生理解的难点。以周期为2π
的方波函数
为例,利用MATLAB动态展示其傅里叶级数逼近过程:
f = @(x) 1.*(x>0 & x<pi) - 1.*(x>pi & x<2*pi); % 定义方波函数
x = 0.01:0.01:2*pi-0.01;  % 定义x范围,避免端点跳变影响可视化
figure;  % 创建独立图形窗口
for N = 1:2:30
% 计算傅里叶级数部分和(直接循环累加,避免arrayfun的格式问题)
fs = zeros(size(x));  % 初始化部分和数组 
for n = 1:N
fs = fs + sin((2*n-1)*x)/(2*n-1);  % 累加每一项
end
fs = (4/pi)*fs;  % 乘以系数
% 绘制图形
plot(x, f(x), 'k', 'LineWidth', 2);  % 绘制原方波
hold on;
plot(x, fs, 'r--', 'LineWidth', 1.5);  % 绘制逼近曲线
title(['N = ', num2str(N), ' 时傅里叶级数逼近(吉布斯现象:跳变点附近过冲)']);
xlabel('x'); ylabel('y');
legend('原方波', '逼近曲线', 'Location', 'Best');
ylim([-1.2, 1.2]);  % 固定y轴范围,增强动态对比效果
hold off;
pause(0.5);  % 控制演示速度
end
运行结果(见图5)清晰显示,随着谐波项数增加,跳变点附近始终存在约9%的过冲(吉布斯现象),帮助学生理解级数收敛的特殊性。
5.2. 反例可视化:魏尔斯特拉斯函数
针对“连续函数必可导”的认知误区,可通过MATLAB可视化魏尔斯特拉斯函数
 (其中0 < a < 1,b为正奇数且ab > 1 + 3π/2):
a = 0.5; b = 3;
x = 0:0.001:1;
W = zeros(size(x));
for n = 0:10
W = W + a^n .* cos(b^n * pi * x);  % 补充乘号*和点乘运算符.*
end
plot(x, W);
title('魏尔斯特拉斯函数(连续但处处不可导)');
xlabel('x'); ylabel('W(x)');
局部放大后可见,函数图像始终呈现无规则震荡,直观打破学生对连续与可导关系的直觉误解(见图6)。
Figure 5. Gibbs phenomenon
图5. 吉布斯现象
Figure 6. Weierstrass function
图6. 魏尔斯特拉斯函数
6. 结论
在数学分析学习中,MATLAB的辅助价值远不止于极限、导数、微分与积分的计算,其强大的功能体系能从多个维度为学习者提供支撑。对于抽象概念的理解,MATLAB的动态可视化功能可将高维空间中的曲面形态、曲线演化过程等具象化呈现。例如,通过编程生成二元函数的动态等高线图,能直观展示函数值随变量变化的规律,帮助学生突破空间想象的局限;针对傅里叶级数收敛过程,可通过逐次叠加三角函数项的动态演示,让学生真切观察到“方波如何由正弦波合成”,从而理解无穷级数逼近的本质。
借助MATLAB生成的计算结果与可视化呈现,能够精准核验理论推导的正误,由此构建起“计算验证–误差溯源–思路修正”的闭环反馈机制。这种即时性反馈,能引导学生主动对比理论推演与计算机结果的差异–在自主排查逻辑疏漏、模型设定偏差或算法选择不当的过程中,逐步养成“发现问题–分析成因–优化方案”的探究式学习习惯,最终使数学分析的学习从被动接受的知识灌输,转化为主动建构的思维实践。
然而,MATLAB可视化教学模式也存在潜在局限与挑战。其一,需平衡可视化直观性与数学严谨性的关系:图像的“直观正确”不等同于逻辑证明的“严格成立”,例如极限的动态演示虽能展示趋势,但无法替代ε-δ语言的严谨定义,过度依赖可视化可能导致学生忽视数学推理的核心价值。其二,可能引发“思维惰性”风险:部分学生可能满足于观察图像结果,而弱化对概念本质的深度追问,如将导数仅理解为“切线斜率”的视觉印象,而忽略其作为“瞬时变化率”的抽象内涵。其三,对教师提出更高要求:教师需同时具备扎实的数学分析功底与MATLAB编程能力,且设计优质可视化案例需投入更多备课时间,尤其对于复杂概念(如一致收敛),需反复调试参数以避免图像误导。
MATLAB融入数学分析课程为教学内容的拓展提供了可能,拓宽学生的视野,增强课程的实用性和时代性,为数学分析课程教学注入新的活力。未来研究可进一步探索“可视化演示 + 逻辑推演”的协同教学策略,通过分层设计案例(基础直观型与进阶思辨型),在发挥技术优势的同时,筑牢学生的数学思维根基。
基金项目 
本文由2024年度山西省高等学校教学改革创新项目(项目编号:J20240885)和2025年度山西省研究生教育创新计划项目(项目编号:2025XX19)资助。
NOTES
*通讯作者。