如何用Gnuplot绘制Kampyle of Eudoxus?代码报错求助
绘制Kampyle of Eudoxus的Gnuplot可行方法
错误原因
Gnuplot默认不支持直接在plot命令中使用隐函数等式(如x^4 = x² + y²),等号会被识别为无效语法,因此报错。
三种可行绘制方法
1. 显函数形式绘图
将原方程整理为显函数形式:y = ±√(x⁴ - x²),分别绘制正负两个分支即可。注意定义域为x ≤ -1或x ≥ 1(保证根号内非负)。
代码示例:
# 设置坐标轴范围 set xrange [-3:3] set yrange [-5:5] # 绘制正负分支 plot sqrt(x**4 - x**2), -sqrt(x**4 - x**2) title "Kampyle of Eudoxus"
2. 参数方程绘图
Kampyle of Eudoxus的参数方程为:
x = sec(t)y = sec(t)·tan(t)
其中t的取值范围是(-π/2, π/2)(避开t=±π/2以避免无穷大值)。
代码示例:
set parametric # 设置参数t的范围,接近±π/2但不包含 set trange [-1.5:1.5] plot sec(t), sec(t)*tan(t) title "Kampyle of Eudoxus" # 关闭参数模式 unset parametric
3. 隐函数等高线绘图
如果你的Gnuplot版本≥5.0,可以通过等高线功能绘制隐函数:定义函数f(x,y) = x⁴ - x² - y²,然后绘制f(x,y)=0的等高线。
代码示例:
set contour base # 指定只绘制值为0的等高线 set cntrparam levels discrete 0.0 unset surface # 设置2D视图 set view map # 提高采样精度,让曲线更平滑 set isosamples 1000 # 定义隐函数 f(x,y) = x**4 - x**2 - y**2 # 绘制等高线 splot f(x,y) title "Kampyle of Eudoxus"
内容的提问来源于stack exchange,提问作者Unix
相关产品推荐
相关产品推荐

