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

如何用gnuplot结合复指数绘制余弦曲线?

解决gnuplot复指数绘制余弦曲线无图像问题

你的脚本没生成可见图像的原因有两个:

  • 你用的表达式1/2*(exp(i*t)+exp(-i*t))的虚部始终为0,绘图时y坐标全是0,最终只会得到一条和x轴完全重合的直线,肉眼几乎无法分辨。
  • 未设置参数t的取值范围,gnuplot默认t的范围可能过小(比如[0,1]),导致画出的线段极短,更难察觉。

另外你混淆了余弦曲线和圆的绘制逻辑:画圆用的是exp(i*t)的实部和虚部(对应cos(t)和sin(t)),但余弦的复指数表达式虚部为0,不能照搬圆的绘图方式。

修正方案

方案1:直接绘制余弦曲线(非参数模式)

这是最直观的方式,把自变量作为x轴,余弦值作为y轴:

i = {0.0,1.0}
set xrange [-2*pi:2*pi]  # 设置x轴范围为-2π到2π
plot real(0.5*(exp(i*x)+exp(-i*x))) title 'cos(x)'

方案2:用参数模式绘制

如果一定要用参数模式,需要把t作为x轴,余弦值作为y轴,而非将复函数的实部和虚部分别作为x、y:

set parametric
i = {0.0,1.0}
set xrange [-2*pi:2*pi]
set yrange [-1.1:1.1]  # 让y轴范围略大于[-1,1],方便看清曲线
plot t, real(0.5*(exp(i*t)+exp(-i*t))) title 'cos(t)'

补充:正确的圆绘制脚本

如果要验证复指数画圆,脚本应该是这样的(和余弦脚本明确区分):

set parametric
i = {0.0,1.0}
set size ratio -1  # 保持横纵比,避免圆变椭圆
set xrange [-1.1:1.1]
set yrange [-1.1:1.1]
plot real(exp(i*t)), imag(exp(i*t)) title 'unit circle'

内容的提问来源于stack exchange,提问作者木村 健人

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:31:11