реклама на сайте
подробности

 
 
> Помогите опознать алгоритм
ataradov
сообщение Oct 9 2011, 19:33
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Помогите опознать алгоритм пожалуйста.

Для размерности 3 выглядит вот так:

CODE
      a0[0] = a[1] * a[2];
      a0[1] = b[1] * a[2] + a[1] * b[2];
      a0[2] = b[1] * b[2];

      a0[0] += a[0] * a[2];
      a0[1] += b[0] * a[2] + a[0] * b[2];
      a0[2] += b[0] * b[2];

      a0[0] += a[0] * a[1];
      a0[1] += b[0] * a[1] + a[0] * b[1];
      a0[2] += b[0] * b[1];


a, b - исходные векторы размерности 3, a0 - результат.

В коде видны явные закономерности, похоже на какую-то стандартную операцию над векторами, но не могу понять какую именно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ataradov
сообщение Oct 10 2011, 12:11
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Вот более полный код, для N=3 эквивалентен вышеприведеному, за исключением посленей части:
CODE
  for (int k = 0; k < N; k++)
  {
    a1[0] = 1.0; a1[1] = a1[2] = a1[3] = 0.0;

    for (int j = 0; j < N; j++)
    {
      if (j == k)
        continue;

      a1_old = 0.0;
      for (int i = 0; i < N+1; i++)
      {
        t = a1[i] * a[j] + a1_old * b[j];
        a1_old = a1[i];
        a1[i] = t;
      }
    }

    for (int i = 0; i < N+1; i++)
      a0[i] += a1[i];
  }

  a1_old = 0.0;
  for (int i = 0; i < N+1; i++)
  {
    t = a1[i] * a[N-2] + a1_old * b[N-1];
    a1_old = a1[i];
    a1[i] = t;
  }
Это кусок мат. модели, векторы a и b вычисляются из физических параметров системы.

После этого из массивов а0 и a1 формируются коэфициенты полинома (комплексные):
CODE
  for (int i = 0; i < N+1; i++)
  {
    c[i].real= t0 * a1[i];
    c[i].imag = t1 * a1[i];

    if (i > 0)
      c[i].imag -= a0[i-1];
  }
t0 и t1 - тоже вычисляются из параметров, представляют собой выражения вида t0 = A * sin(W), t1 = A * cos(W).

После этого находятся корни полинома, и они используются дальше в модели.

Сообщение отредактировал Taradov Alexander - Oct 10 2011, 12:14
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Taradov Alexander   Помогите опознать алгоритм   Oct 9 2011, 19:33
- - iiv   Пусть у Вас есть матрица сдвига P (0 1 0) (0 0 1)...   Oct 9 2011, 20:40
|- - iiv   a1 инициализирован только в первых 4 элементах. А ...   Oct 10 2011, 14:52
|- - Taradov Alexander   QUOTE (iiv @ Oct 10 2011, 18:52) a1 иници...   Oct 10 2011, 15:10
- - Taradov Alexander   Немного становится понятнее. В цикле тут происходи...   Oct 11 2011, 06:12
- - Taradov Alexander   Вот эквивалентный код на Matlab-e: CODEarr = ...   Oct 11 2011, 16:19
- - Taradov Alexander   Нашел статью, в которой используется похожий подхо...   Oct 11 2011, 20:53
|- - iiv   Цитата(Taradov Alexander @ Oct 12 2011, 02...   Oct 12 2011, 15:09
- - Taradov Alexander   LP - это линейное программирование? Если что, вот...   Oct 12 2011, 18:10
|- - iiv   Я думал, что линейное предсказание, но, похоже, ош...   Oct 15 2011, 19:30
- - Taradov Alexander   Похоже и не получится, похоже, что это результат н...   Oct 15 2011, 19:47
- - Taradov Alexander   Продолжаю ковырять этот алгоритм. Начал его исслед...   Oct 19 2011, 16:07


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01597 секунд с 7
ELECTRONIX ©2004-2016