【数学建模 matlab 实验报告2】

上一篇:【数学建模 matlab 实验报告1】

目录

实验报告

代码

实验心得


实验报告

代码

Matlab 复制代码
%% 第2次MATLAB绘图作业 完整代码
clear; clc; close all;  % 清空工作区、命令行,关闭所有图形

%% 作业1:fplot绘制符号函数曲线
fprintf('正在运行作业1...\n');
syms x  % 定义符号变量
f1 = sin(x) + cos(x);  % 定义函数
figure;  % 新建图形窗口
fplot(f1, [0, 2*pi], 'b-', 'LineWidth', 1.5);  % 区间[0,2π]绘制
grid on;  % 显示网格
title('作业1:fplot绘制曲线 y=sin(x)+cos(x)');

%% 作业2:plot绘制二维曲线
fprintf('正在运行作业2...\n');
x = 0:0.1:2*pi;  % 生成自变量,步长0.1
y2 = x.^2 .* exp(-x);  % 定义函数
figure;
plot(x, y2, 'r--', 'LineWidth', 1.5);
grid on;
title('作业2:plot绘制曲线 y=x^2e^{-x}');

%% 作业3:plot3绘制三维曲线
fprintf('正在运行作业3...\n');
t = 0:0.1:4*pi;  % 参数区间
x3 = sin(t);
y3 = cos(t);
z3 = t;  % 三维曲线参数方程
figure;
plot3(x3, y3, z3, 'g-', 'LineWidth', 2);
grid on; box on;
xlabel('x'); ylabel('y'); zlabel('z');
title('作业3:plot3绘制三维螺旋线');

%% 作业4:双曲线绘制+完整标注
fprintf('正在运行作业4...\n');
x4 = 0:0.1:2*pi;
y4_1 = sin(x4);    % 曲线1
y4_2 = cos(x4);    % 曲线2
figure;
plot(x4, y4_1, 'b-', x4, y4_2, 'r-.', 'LineWidth', 1.5);
% 标注设置
xlabel('x轴');
ylabel('y轴');
title('x from 0 to 2π');
text(pi/2, 1.1, '曲线y=sin(x)');  % 曲线1文本
text(pi, -0.9, '曲线y=cos(x)');   % 曲线2文本
legend('y=sin(x)', 'y=cos(x)', 'Location', 'best');  % 图例
grid on;
xlim([0, 2*pi]);

%% 作业5:1×2子图 mesh和surf绘制三维曲面
fprintf('正在运行作业5...\n');
[X, Y] = meshgrid(-2:0.2:2, -2:0.2:2);  % 生成二维网格
Z = X.^2 + Y.^2;  % 定义曲面函数
figure;
% 子图1:mesh网格曲面
subplot(1,2,1);
mesh(X, Y, Z);
xlabel('X'); ylabel('Y'); zlabel('Z');
title('mesh绘制三维曲面 z=x^2+y^2');
grid on;
% 子图2:surf填充曲面
subplot(1,2,2);
surf(X, Y, Z);
xlabel('X'); ylabel('Y'); zlabel('Z');
title('surf绘制三维曲面 z=x^2+y^2');
grid on; colormap jet;  % 设置配色

%% 作业6:习题2.6 第3、4、6题
fprintf('正在运行作业6...\n');
figure;
% 第3题
subplot(1,3,1);
f3 = @(x) x.*sin(x).^2;  % 匿名函数
fplot(f3, [0, pi]);
title('习题2.6-3'); grid on;
% 第4题
subplot(1,3,2);
x6 = -1:0.1:1;
f4 = 2*(-x6.^2) + 1;
plot(x6, f4);
title('习题2.6-4'); grid on;
% 第6题
subplot(1,3,3);
f6 = @(x) (x+1)./(x.^2+1);
fplot(f6, [-3, 3]);
title('习题2.6-6'); grid on;

%% 作业7:复现例22 等值线图(10层级、虚线、带标签)
fprintf('正在运行作业7...\n');
[X7, Y7] = meshgrid(-2:0.1:2, -2:0.1:2);
Z7 = X7 .* exp(-X7.^2 - Y7.^2);
figure;
contour(X7, Y7, Z7, 10, '--', 'ShowText', 'on');  % 10层、虚线、显示标签
xlabel('X'); ylabel('Y');
title('作业7:等值线图(10层级、虚线、带标签)');
colorbar;  % 显示颜色条
grid on;

fprintf('所有作业运行完成!\n');

实验心得

本次 MATLAB 绘图实验围绕二维曲线、三维曲面、等值线绘制及图形标注、子图布局等核心功能展开,通过完成 fplot、plot、plot3、mesh、surf、contour 等函数的实操练习,系统掌握了 MATLAB 可视化编程的基础方法,深刻体会到数值计算与图形可视化结合的实用性与便捷性。

实验初期,我重点区分了不同绘图函数的适用场景:fplot 适用于符号函数的直接绘制,无需手动生成数据点,简化了函数曲线的绘制流程;plot 是最基础的二维数值绘图函数,需先生成自变量向量,再计算因变量数据,适合离散数据点的连续曲线展示;plot3 则拓展至三维空间曲线绘制,通过 x、y、z 三个维度的向量构建空间轨迹,让三维曲线的可视化更直观。在练习过程中,我发现自变量区间的设置、数据点密度的选择会直接影响曲线的平滑度,合理设置步长是保证图形质量的关键。

图形标注与美化是实验的重要环节。为曲线添加坐标轴标签、标题、文本说明和图例,不仅能让图形更规范,还能清晰传达图形的含义。通过 xlabel、ylabel、title、text、legend 等函数的使用,我掌握了 MATLAB 图形标注的基本规范,理解了可视化的核心是让观者快速理解数据与函数的关系。同时,文本位置的微调、图例的合理布局,让图形的可读性大幅提升,也让我认识到细节处理在数据可视化中的重要性。

子图布局与三维曲面绘制部分,我学习了 subplot 函数的使用方法,将一个图形窗口划分为多个子图,实现多图形对比展示。mesh 函数绘制的网格曲面清晰展现了曲面的空间骨架,surf 函数绘制的填充曲面则更直观地呈现曲面的形态与色彩变化,二者结合能从不同角度分析三维函数的特征。在操作中,我掌握了网格数据生成的方法,理解了二维网格矩阵在三维绘图中的核心作用,解决了三维曲面绘制中数据维度匹配的问题。

等值线图绘制实验中,通过复现教材案例,我学会了设置等值线层级、线型、标签等参数,contour 函数的自定义设置让等值线图更符合实验要求。虚线显示、数值标签的添加,让等值线的分布和对应数值一目了然,加深了我对二维函数等值线分布规律的理解,也掌握了高级可视化图形的参数调整技巧。

通过本次实验,我不仅熟练掌握了 MATLAB 基础绘图函数的语法与用法,更培养了编程逻辑和问题解决能力。在调试代码的过程中,我学会了排查函数参数错误、数据维度不匹配等常见问题,提升了代码编写的严谨性。同时,我深刻认识到 MATLAB 作为科学计算软件,其强大的可视化功能能够将抽象的数学函数转化为直观的图形,为数学分析、工程计算提供了有力工具。

此次实验也让我意识到,可视化编程不仅是代码的编写,更要注重图形的规范性、可读性和美观性。未来在学习和应用中,我会进一步深入学习 MATLAB 高级绘图功能,将可视化技术与专业知识结合,更高效地处理和分析数据,提升解决实际问题的能力。

相关推荐
Chester_19995 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲7 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员7 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导7 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan7 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251497 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
2601_963870228 小时前
【计算机毕业设计】基于Web的实验室仪器预约系统设计与实现
课程设计
大衛說9 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
吃好睡好便好9 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
可乐鸡翅yeah_10 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线