Как делается корреляция массивов.

Тема в разделе "WASM.A&O", создана пользователем serega28, 15 июн 2009.

  1. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Есть два массива с данными (часовая тепература погоды за месяц разных годов: array0208, array0209).

    Как сделать чтобы глянуть как коррелировалась температура, по какой формуле считать это дело?
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    serega28
    Быстрее через фурье. Берешь фурье от обоих массивов. Потом по элементо перемножаешь(умножение компексное) и берешь обратное преобразование фурье.
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Эм... не совсем понятен вопрос. А ты коэффициент корреляции посчитать не можешь?
     
  4. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Скорее всего да. нужна зависимость двух чисел.
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    serega28
    Тебе коэфициен корреляции нужен или функция корреляции?
     
  6. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Я в этом не силен :)
    Коэффициент
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Тогда по определению.
    http://ru.wikipedia.org/wiki/Корреляция
    Код (Text):
    1. Result:=0;
    2. if Length(A)=Length(B) then
    3.  begin
    4.  X:=0;
    5.  Y:=0;
    6.  XY:=0;
    7.  XX:=0;
    8.  YY:=0;
    9.  N:=Length(A);
    10.  for i:=0  to N-1 do
    11.    begin
    12.    X:=X+A[i];
    13.    Y:=Y+B[i];
    14.    XY:=XY+A[i]*B[i];
    15.    XX:=XX+A[i]*A[i];
    16.    YY:=YY+B[i]*B[i];
    17.    end;
    18.  Result:=(XY*N-X*Y)/sqrt((XX*N-X*X)*(YY*N-Y*Y));
    19.  end;
    Остается переписать на ассемблер.
     
  8. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Спасибо