Как построить функцию с разными значениями различных параметров в 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. г =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)

Я ценю вашу помощь. Спасибо!

1 ответ

Решение

Что касается нескольких for в одном plot Синтаксис задокументирован во встроенной справке 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

график для [a = 0: 1] для [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)

график для [s = 3.2: 9.3: 2.9] x заголовок sprintf (

так что ваша петля на w невозможно, вы должны разработать другую стратегию.

С условием, что я не знаю, какое значение вы хотите присвоить l (Я использовал l=1) а также, что я не знаю, шаг на wздесь возможная реализация, где уловки are определяют функцию, которая дает вам значения w в терминах целочисленной переменной и ❷ определить x а также y также с точки зрения этой вспомогательной переменной

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)

странные сюжеты

Другие вопросы по тегам