在MATLAB中繪制?sec?(x)、cos(x)?和?ln?∣sec?(x)+tan?(x)∣的函數圖像,需要特別注意?sec?(x) 在?cos?(x)=0(即?x=π/2+kπ)處的奇點。(deepseek生成代碼)
% 定義x范圍(-2π到2π),高密度采樣
x = linspace(-2*pi, 2*pi, 10000);% 精確識別并移除sec(x)的奇點(cos(x)=0的點)
% 找出所有cos(x)接近零的位置(奇點)
singular_points = find(abs(cos(x)) < 1e-3); % 使用更寬松的閾值確保覆蓋% 在這些奇點周圍創建緩沖區(移除奇點附近±0.05弧度的點)
buffer_zone = 0.05; % 緩沖區大小
for k = singular_pointsstart_idx = max(1, k - floor(buffer_zone/(4*pi/10000)));end_idx = min(length(x), k + floor(buffer_zone/(4*pi/10000)));x(start_idx:end_idx) = NaN;
end% 計算函數值
y_sec = sec(x);
y_cos = cos(x);
y_log = log(abs(sec(x) + tan(x)));% 創建圖形窗口
figure;
hold on;% 繪制三條曲線
plot(x, y_sec, 'r-', 'LineWidth', 1.5); % sec(x): 紅色實線
plot(x, y_cos, 'b--', 'LineWidth', 1.5); % cos(x): 藍色虛線
plot(x, y_log, 'g-.', 'LineWidth', 1.5); % ln|sec(x)+tan(x)|: 綠色點劃線% 設置坐標軸范圍和標簽
xlim([-2*pi, 2*pi]);
ylim([-5, 5]); % 限制Y軸范圍
xlabel('x');
ylabel('Function Values');
title('Plot of sec(x), cos(x), and ln|sec(x)+tan(x)| with Removed Singularities');% 添加圖例和網格
legend('sec(x)', 'cos(x)', 'ln|sec(x)+tan(x)|', 'Location', 'Best');
grid on;% 標記π倍數的刻度和奇點位置
xticks([-2*pi, -3*pi/2, -pi, -pi/2, 0, pi/2, pi, 3*pi/2, 2*pi]);
xticklabels({'-2\pi', '-3\pi/2', '-\pi', '-\pi/2', '0', ...'\pi/2', '\pi', '3\pi/2', '2\pi'});% 標記奇點位置
singular_x = [-3*pi/2, -pi/2, pi/2, 3*pi/2];
for k = 1:length(singular_x)line([singular_x(k) singular_x(k)], ylim, 'Color', [0.5 0.5 0.5], 'LineStyle', ':', 'LineWidth', 1);
endhold off;