MATLAB基础绘图实验:正弦余弦函数、指数函数及参数化图形绘制
创作时间:
作者:
@小白创作中心
MATLAB基础绘图实验:正弦余弦函数、指数函数及参数化图形绘制
引用
CSDN
1.
https://blog.csdn.net/2301_78460097/article/details/142741314
本文将通过四个MATLAB绘图实验,帮助读者掌握基础绘图、正弦余弦函数、指数函数以及参数化图形的绘制方法。每个实验都包含了详细的代码和运行结果,适合MATLAB绘图初学者参考学习。
实验一:在同一窗口绘制sin(x)和cos(x)的曲线
题目要求
编写程序,在同一窗口画出函数sin(x)在区间[0, 2π]的曲线和cos(x)在区间[-π, π]的曲线,正弦曲线为红色虚线,余弦曲线为绿色点线,图片需有完整的注释,x轴坐标用π弧度表示(使用set()进行设置)。
MATLAB代码
x1 = 0:pi/20:2*pi;
y1 = sin(x1);
x2 = -pi:pi/20:pi;
y2 = cos(x2);
% 第一个子图:正弦函数
subplot(2,1,1);
plot(x1, y1, '--r', 'DisplayName', '正弦函数'); % 使用红色虚线绘制,并添加注释
grid on;
axis([0, 2*pi, -2, 2]);
set(gca, 'XTick', 0:pi/2:2*pi); % 设置横坐标刻度
set(gca, 'XTickLabel', {'0', '\pi/2', '\pi', '3\pi/2', '2\pi'}); % 设置横坐标标签
legend show; % 显示图例
% 第二个子图:余弦函数
subplot(2,1,2);
plot(x2, y2, ':g', 'DisplayName', '余弦函数'); % 使用绿色点划线绘制,并添加注释
grid on;
axis([-pi, pi, -2, 2]);
set(gca, 'XTick', -pi:pi/2:pi); % 设置横坐标刻度
set(gca, 'XTickLabel', {'-\pi', '-\pi/2', '0', '\pi/2', '\pi'}); % 设置横坐标标签
legend show; % 显示图例
运行结果
实验二:比较y及指数函数e^(-x)的曲线
题目要求
在同一窗口中画出y及指数函数e^(-x)的曲线,图片需有完整的注释。
MATLAB代码
% 定义 x 的范围
x = linspace(0, 1, 100); % 生成 0 到 1 的 100 个点
% 定义函数 y
y = (1 - 3/5 * x + 3 * x.^2 / 20 - x.^3 / 60) ./ (1 + 2 * x / 5 + x.^2 / 20);
% 计算 e^(-x)
y_exp = exp(-x);
% 绘制图形
figure; % 创建新图形窗口
hold on; % 保持当前图形,使多个图在同一窗口中绘制
plot(x, y, 'b-', 'LineWidth', 2, 'DisplayName', 'y = \frac{1 - \frac{3}{5}x + \frac{3}{20}x^2 - \frac{1}{60}x^3}{1 + \frac{2}{5}x + \frac{1}{20}x^2}'); % 绘制 y
plot(x, y_exp, 'r--', 'LineWidth', 2, 'DisplayName', 'e^{-x}'); % 绘制 e^(-x)
% 添加网格
grid on;
% 设置坐标轴范围
axis([0 1 0 1]);
xlabel('x'); % x轴标签
ylabel('y'); % y轴标签
title('Comparison of y and e^{-x}'); % 图形标题
% 添加图例
legend('show');
% 添加注释
text(0.2, 0.7, 'y 函数', 'Color', 'blue', 'FontSize', 10);
text(0.6, 0.4, 'e^{-x} 函数', 'Color', 'red', 'FontSize', 10);
hold off; % 释放图形
运行结果
实验三:使用subplot函数绘制函数在不同区间的图形
题目要求
使用subplot函数分别绘制函数f(x) = (x+1)(x-2)(2x-0.25) - exp(x)在区间x∈[0,3]和x∈[3,6]的图形,图形y轴需使用对数刻度,每幅子图需标注标题及坐标轴。
MATLAB代码
% 定义 x 的范围
x1 = linspace(0, 3, 100); % 生成 0 到 3 的 100 个点
x2 = linspace(3, 6, 100); % 生成 3 到 6 的 100 个点
% 定义函数 f(x)
f = @(x) (x + 1) .* (x - 2) .* (2 * x - 0.25) - exp(x);
% 计算函数值
y1 = f(x1);
y2 = f(x2);
% 创建新图形窗口
figure;
% 第一个子图:区间 [0, 3]
subplot(2, 1, 1);
semilogy(x1, abs(y1), 'b-', 'LineWidth', 2); % 使用对数刻度绘制 y 轴
grid on;
xlabel('x'); % x轴标签
ylabel('log(abs(y))'); % y轴标签
title('f(x) = (x+1)(x-2)(2x-0.25) - e^x, x \in [0, 3]'); % 子图标题
% 第二个子图:区间 [3, 6]
subplot(2, 1, 2);
semilogy(x2, abs(y2), 'r-', 'LineWidth', 2); % 使用对数刻度绘制 y 轴
grid on;
xlabel('x'); % x轴标签
ylabel('log(abs(y))'); % y轴标签
title('f(x) = (x+1)(x-2)(2x-0.25) - e^x, x \in [3, 6]'); % 子图标题
运行结果
实验四:绘制包含1000个点的图形
题目要求
绘制包含1000个点的图形,点sk坐标为(xk, yk),其中参数d的数值可以更改,观察图形变化。
MATLAB代码
% 定义参数
N = 1000; % 点的数量
d = 137.51; % 初始参数 d
% 计算点的坐标
k = 1:N;
cita = pi * d * k / 180;
rk = sqrt(k);
xk = rk .* sin(cita);
yk = rk .* cos(cita);
% 绘制初始图形
figure;
plot(xk, yk, 'b.', 'MarkerSize', 10);
title(['d = ', num2str(d)]);
xlabel('x');
ylabel('y');
grid on;
axis equal;
% 尝试更换常量 d 的数值
d_new = 150; % 新的 d 值
% 重新计算点的坐标
cita_new = pi * d_new * k / 180;
xk_new = rk .* sin(cita_new);
yk_new = rk .* cos(cita_new);
% 绘制新图形
figure;
plot(xk_new, yk_new, 'r.', 'MarkerSize', 10);
title(['d = ', num2str(d_new)]);
xlabel('x');
ylabel('y');
grid on;
axis equal;
运行结果
热门推荐
学校教师请假制度中关于病假的规定是怎样的?
中学生请假制度:哪些情况允许?
动荡与重塑的能源新图景
根据狗宝宝特征起名
木瓜种植技术与栽培管理
如何观察马桶的性能特点?这种性能特点怎样影响使用效果?
广州番禺区重文兴教传统在祠堂里历久弥新
一分钟看懂造纸技术的前世今生
深入了解:U盘的储存原理和内部构造
如何将U盘连接到汽车音响系统
十大维生素B6食物含量排行榜:第一为重要食用鱼,牛肝上榜
激光脱毛了为什么还是会长毛呢?
脚底一直脱皮但是不痒是怎么回事
植物什么时候移植?最佳移植时间和方法是什么?
活字印刷术的传播与影响
o1/o3后训练负责人离职创业,奥特曼把OpenAI玩成另一个YC孵化器了
免疫共沉淀(Co-IP)技术详解
针灸和艾灸的区别
适合冥想进阶者的全身扫描法
日常地面清洁技巧与工具选择的全面指南
精神病人忌吃什么
夫西地酸乳膏的主治功效
《黑神话:悟空》天命者变蒂法?二创正让游戏变得更加自由
拉普拉斯分布-简要介绍
读TESOL英国哪个大学强
以民宿集群解锁“振兴密码”
自建房基础的天花板!施工简单,费用还不高,建议参考一下
离婚诉讼中的缺席判决适用哪些情形
如何管理项目PPT:从规划到演示的完整指南
矮珍珠和爬地珍珠的区别:从外观到养护要点全解析