Я должен реализовать выход Mathematica как переменную в amp, которая является суммой и произведением sinc-функций. Я определил функцию sinc как
var SincA {i in N}= if abs(x1[i]) > 1e-8 then sin(x1[i])/x1[i] else 1;
var SincB {i in N}= if abs(x2[i]) > 1e-8 then sin(x2[i])/x2[i] else 1;
. Однако выход Mathematica принимает форму
-19.99590492248535*Sinc[0.12566370614359174*(0. + t)]*
Sinc[0.26927937030769655*(-65. + u)] -
4.360287189483643*Sinc[0.12566370614359174*(25. + t)]*
Sinc[0.26927937030769655*(-65. + u)] +
12.314101219177246*Sinc[0.12566370614359174*(50. + t)]*
Sinc[0.26927937030769655*(-65. + u)]
, и это лишь малая часть общего объема.
Я могу воспроизвести это в усилителе как
var Sinc1x1A{i in N}= if abs(0.12566370614359174*(0. + x1[i])) > 1e-8 then sin(0.12566370614359174*(0. + x1[i]))/(0.12566370614359174*(0. + x1[i])) else 1;
var Sinc1x1B{i in N} = if abs(0.26927937030769655*(-65. + x2[i])) > 1e-8 then sin(0.26927937030769655*(-65. + x2[i]))/(0.26927937030769655*(-65. + x2[i])) else 1
var Resultx1{i in N} = -19.99590492248535*Sinc1x1A[i]*Sinc1x1B[i]-...;
Однако этот метод крайне неэффективен, поскольку мне приходится определять слишком много переменных.
Я хочу создать функцию sinc без определенного аргумента, а затем вызывать ее столько раз, сколько нужно, вместо того, чтобы определять десятки переменных.
Я нашел эти слайды, https://ampl.com/MEETINGS/TALKS/2018_07_Valencia_WA-57.pdf, но я не могу найти способ сделать то, что я хочу.
Может кто-нибудь указать мне какую-то документацию, где это решается?