Простой числовой тест, показывающий, что функция выглядит как sin (x) или ((tanh (x) + 1) / 2) - PullRequest
0 голосов
/ 17 января 2019

Я решаю некоторые очень большие системы ODE (где-то в диапазоне от 2000 до 10000 переменных), и мне нужно быстро принять решение о выводе. Назовем переменную эволюции t и вектор переменных решения как x. Решения могут выглядеть так:

  1. a * exp(-b * t), где a << 1 и b > 0. Это не интересно Таким образом, он начинается с небольшого (ых) значения (ий) и в основном уменьшается (ы) до 0. Это легко обнаружить.
  2. c * ((tanh(b * t) + 1) / 2), где -1 < c < 1 и b > 0. Таким образом, он начинается в районе 0, а затем развивается во что-то между -1 и +1.
  3. Нечто, похожее на очень искаженное c * sin(b(t) * t), где -1 < c < 1 и b(t) является проявлением того факта, что решение является нелинейным.

Допустим, я собираю около 1000 (или любого другого числа) некоторых совокупных результатов по пути, и мне нужно различать 2 и 3. В конце концов, это очевидно, когда вы смотрите на график!

Однако часто бывает так, что решение может оставаться около нуля в течение некоторого времени, а затем через некоторое время начинает отклоняться в # 2 или # 3. Таким образом, все, что происходит позже во времени, должно иметь больший вес, чем то, что происходит в начале. Поэтому, в принципе, мне нужно число или два, чтобы «сказать», что решение * tanh -подобно или sin -подобно и, очевидно, между ними может быть что-то!

Каков будет подходящий алгоритм для этого? Большое спасибо!

...