LP - это линейное программирование?
Если что, вот статья про которую я говорю:
https://ccrma.stanford.edu/~stilti/papers/rltalk.pdfВот немного более читаемый матлабовский код:
CODE
clear all;
arr = [261.4508114 261.5063567 261.6451613];
avg = sum(arr) / length(arr);
t = 1 - arr / avg;
a = (t+1) / (avg * 2);
b = t * (1) * pi;
az1 = conv(conv([1.0, 0.0], [a(2) b(2)]), [a(3) b(3)]);
az2 = conv(conv([1.0, 0.0], [a(1) b(1)]), [a(3) b(3)]);
az3 = conv(conv([1.0, 0.0], [a(1) b(1)]), [a(2) b(2)]);
a0 = az1+az2+az3;
a0 = [0 a0];
a1 = conv(az3, [a(2) b(3)]);
t0 = 199.1735851;
t1 = -0.00705058376;
z = t0 * a1(1:4) * exp(j*t1) - j*a0(1:4);
r = roots(z);
В результате
CODE
r =
-0.0568 + 7.8407i
0.3645 + 0.0279i
-0.3631 + 0.0056i
что полностью согласуется с выводами в статье - получилось 3 "струны", одна затухает очень быстро (7.8407), а две остальные медленно (0.0279 и 0.0056) при этом они расстроены по частоте так, что образуются биения.
Я с корневыми годографами на "вы", так что осознать пока все это не могу, но похоже, что t1 - это то, что в статье обозвано коэффициентом связи (coupling coefficient). В параметрах модели он плавно меняется от 0 до -15 градусов (тут он переведен в радианы уже) при изменении номера клавиши от первой до последней.