Sympy极坐标参数绘图:如何补全r²=4cos(t)的对称叶瓣?
解决Sympy绘制r²=4cos(t)缺失叶瓣的问题
原代码仅绘制了r取正平方根的情况,而方程r²=4cos(t)的实数解包含**r=2√cos(t)和r=-2√cos(t)**两组,负r对应的参数曲线会形成另一个叶瓣。只需在绘图时同时传入两组参数方程即可补全图像:
import sympy as sp t = sp.symbols('t') # 正r对应的参数方程(x≥0的叶瓣) r_pos = sp.sqrt(4 * sp.cos(t)) x_pos = r_pos * sp.cos(t) y_pos = r_pos * sp.sin(t) # 负r对应的参数方程(x≤0的叶瓣) r_neg = -sp.sqrt(4 * sp.cos(t)) x_neg = r_neg * sp.cos(t) y_neg = r_neg * sp.sin(t) # 同时绘制两组曲线,保持参数t的有效范围(cos(t)≥0,即t∈[-π/2, π/2]) p = sp.plot_parametric( (x_pos, y_pos, (t, -sp.pi/2, sp.pi/2)), (x_neg, y_neg, (t, -sp.pi/2, sp.pi/2)), aspect_ratio=(1, 1), size=(4, 4), axis_center=(0, 0), legend=False )
补充说明
- 方程
r²=4cos(t)要求cos(t)≥0,因此t的有效取值范围是[-π/2 + 2kπ, π/2 + 2kπ](k为整数),超出该范围时r无实数解,无需额外设置。 - 负r的几何意义是:在相同角度t下,点的位置与正r关于原点对称,最终两组曲线组合后会呈现完整的双叶图像(关于x轴对称)。
内容的提问来源于stack exchange,提问作者R Walser
相关产品推荐
相关产品推荐

