问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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;  

运行结果

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号