You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Sympy绘制4*sin(2*x)/cos(2*x)**3函数图像?

解决Sympy绘制4*sin(2*x)/cos³(2*x)图像不符合预期的问题

问题根源

你的表达式4*sin(2*x)/cos³(2*x)可化简为4*tan(2*x)*sec²(2*x),它和**水平压缩的正切函数tan(2x)**形状并不完全一致:后者是基础正切函数水平压缩为原来的1/2,而你的表达式是tan(2x)乘以恒大于等于1的sec²(2x),因此图像会更陡峭,趋近渐近线时增长速度远快于正切函数。另外,Sympy默认绘图范围(-10,10)包含大量渐近线(当cos(2x)=0时,即x=π/4 + kπ/2,k为整数),会导致图像显示混乱,这是你看到不符合预期图像的主要原因。

修正步骤

1. 指定精准的绘图范围

手动设置x的范围,避开渐近线,聚焦函数的一个周期区间,就能看到正确的趋势:

from sympy import *
from sympy.plotting import plot
x = symbols('x')
expr = 4*sin(2*x)/cos(2*x)**3
# 选取(-π/4 + 0.1, π/4 - 0.1)区间,避开x=±π/4处的渐近线
plot(expr, (x, -pi/4 + 0.1, pi/4 - 0.1), ylabel='y')

2. 对比正切函数验证差异

如果想直观对比和tan(2x)的区别,可以同时绘制两个函数:

plot(expr, tan(2*x), (x, -pi/4 + 0.1, pi/4 - 0.1), legend=True, ylabel='y')

你会看到:零点附近两者趋势相似,但你的表达式增长速度更快,远离零点时取值会远超正切函数。

3. 化简表达式理解函数性质

先化简表达式,能更清晰函数的构成:

simplify(expr)
# 输出:4*tan(2*x)*(tan(2*x)**2 + 1)

利用三角恒等式sec²θ = 1 + tan²θ,表达式可展开为4*tan(2x) + 4*tan³(2x),三次项的存在正是它和纯正切函数图像差异的核心原因。

内容的提问来源于stack exchange,提问作者user1446642

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:40:06