如何在 gnuplot 上绘制具有不同参数值的函数?

How do I plot a function with different values of various parameters on gnuplot?

我想绘制这个参数函数

 x(t)=a+(n/w)*(cos(w*t)-1)-((g/w**2)*sin(l)-m/w)*(sin(w*t)+(g*t/w)*sin(l))

 y(t)=b+((g/w**2)*sin(l)-m/w)*(cos(w*t)-1)+(n/w)*sin(w*t)  

但是我有各种参数 a,b,m,n,w,k,g y 我想改变 a,b,m,n,w,k 参数。 g=7

我不知道怎么做。

但是我打算:

plot for [a=1:0],[b=1:0],[n=0:1],[m=1:0],[g=7:7],[w=2*pi*3:2*pi*2] x(t),y(t)

感谢您的帮助。谢谢!

关于单个 plot 命令中的多个 for,语法记录在 gnuplot

的内联帮助中
 Nested iteration is supported:

       set for [i=1:9] for [j=1:9] label i*10+j sprintf("%d",i*10+j) at i,j

例如,

gnuplot> plot for[a=0:1] for[b=0:1] 1+a*x+b*x*x


你现在可以做你想做的了,但还有一个问题:在 gnuplot 数字循环中,变量只有整数值,例如,

gnuplot> plot for [s=3.2:9.3:2.9] x title sprintf("%f", s)

所以你在 w 上的循环是不可能的,你必须设计一个不同的策略。

前提是我不知道你想给l赋什么值(我用过l=1)而且我不知道[=上的步骤18=],这是一个可能的实现,其中的技巧是 ❶ 定义一个函数,根据整数变量为您提供 w 的值, ❷ 定义 xy 还有这个辅助变量

gnuplot> set parametric
gnuplot> w(k) = 2*pi*k
gnuplot> x(t, k)=a+(n/w(k))*(cos(w(k)*t)-1)-((g/w(k)**2)*sin(l)-m/w(k))*(sin(w(k)*t)+(g*t/w(k))*sin(l))
gnuplot> y(t, k) = b + ((g/w(k)**2)*sin(l)-m/w(k))*(cos(w(k)*t)-1)+(n/w(k))*sin(w(k)*t)
gnuplot> g = 7 ; l = 1
gnuplot> plot for[a=0:1] for[b=0:1] for[m=0:1] for[n=0:1] for[k=2:3] x(t,k), y(t,k) title sprintf("%d,%d,%d,%d,%d", a,b,n,m,k)