Как получить формулы в код - PullRequest
0 голосов
/ 21 октября 2011

это общий вопрос о том, как заставить формулы работать в коде.Мои математические навыки плохие, и я теряюсь, когда пытаюсь внедрить простые вещи в код.

Например, как я могу интерпретировать эту формулу:

-Что означает n?или что будет y и т. д.

y(n) = y (n-1) + ((x (n) - y (n-1))/slide)

Эта формула была взята из объекта maxmsp для скольжения значений аудио slide ~ фильтрует входной сигнал логарифмически между изменениями значения сигнала.Формула имеет вид y (n) = y (n-1) + ((x (n) - y (n-1)) / слайд).Это особенно полезно для отслеживания конвертов и фильтрации нижних частот.

Любая помощь будет высоко оценена!

Ответы [ 3 ]

2 голосов
/ 21 октября 2011

Математическое использование y(n) соответствует индексу массива (или vector) в C ++: y[n].

Следовательно, это просто:

std::vector<float> x = foo();
std::vector<float> y(x.size());
float slide = 10; // Random guess - you should understand x[]
y[0] = x[0]; // Start the same; there's no y[-1]
for (int n = 1; i != x.size(); ++i) {

  y[n] = y[n-1] + ((x[n] - y[n-1])/slide);

}

По сути, это дискретный эквивалент RC-фильтра, возможно, один из наиболее распространенных фильтров с бесконечной импульсной характеристикой (IIR)

1 голос
/ 21 октября 2011
float y(int n, float slide)
{
    if (n <= 0)
    {
        // TODO: figure out what to do here. i.e. what is y(0).
    }

    float nMinus1 = y(n - 1);
    return nMinus1 + (x(n) - nMinus1) / slide);
}
0 голосов
/ 21 октября 2011

Ну, это довольно просто.Вам просто нужно разобрать формулу, чтобы составить список токенов, которые будут использоваться для создания синтаксического дерева формулы.Тогда вам просто нужно оценить дерево с нужными значениями переменных и разрешить любые записи функций.В конце вы получите хороший переводчик математических формул для какого-то оцениваемого ИК ...

Но если говорить серьезно, если вам просто нужно выполнить некоторые математические вычисления, то используйте соответствующие инструменты, такие как MathCAD или другое.Если вам нужно написать программу, которая использует некоторые формулы, то реализуйте их в коде как есть и используйте по своему усмотрению.Если вам нужна программа, которая может интерпретировать любую формулу .. хорошо, прочитайте первую часть ответа:)

...