2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Можно ли упростить матрицу?
Сообщение07.04.2011, 13:10 
Аватара пользователя


05/06/08
474
Дана матрица:
${a_{ij}} = \prod\limits_{k \in \left| {i - j} \right|} {{\delta _k}} ,{\delta _0} = 1,i = j;$
Можно её упростить, то есть чтобы произведение на вектор было бы операцией не квадратичной сложности. Линейная - в идеале, ну или с логорифмическим множителем.

-- Чт апр 07, 2011 14:17:26 --

То есть понятно, что алгоритм для
${\delta _k} = const,$
Существует, но вот даже не знаю как этот частный случай формализовать

 Профиль  
                  
 
 Re: Можно ли упростить матрицу?
Сообщение07.04.2011, 13:44 


19/05/10

3940
Россия
MGM в сообщении #432078 писал(а):
Дана матрица:
${a_{ij}} = \prod\limits_{k \in \left| {i - j} \right|} {{\delta _k}} ,{\delta _0} = 1,i = j;$
Можно её упростить, то есть чтобы произведение на вектор было бы операцией не квадратичной сложности. Линейная - в идеале, ну или с логорифмическим множителем.
...


(Оффтоп)

Старался, но эту абракадабру расшифровать не смог :D

 Профиль  
                  
 
 
Сообщение07.04.2011, 14:31 
Аватара пользователя


08/06/07
52
Киев
Как я понял, имеется в виду матрица $||a_{ij}||_{i,j=1}^n$, в которой $a_{ij}=\prod\limits_{k=1}^{|i-j|}\delta_k$ при $i \ne j$ и $a_{ij}=1$ при $i=j$, где $\delta_1,\ ...,\ \delta_{n-1}$ - некоторые числа.
В этом случае (как и в случае любой другой матрицы, в которой $a_{ij}$ зависит только от $i-j$) её произведение на вектор можно вычислить за O(n*log(n)) арифметических операций с помощью быстрого преобразования Фурье. Описывать быстрое преобразование Фурье здесь не буду, так как оно описано на многих других сайтах.

 Профиль  
                  
 
 Re: Можно ли упростить матрицу?
Сообщение07.04.2011, 15:17 
Заслуженный участник


11/05/08
32166
MGM в сообщении #432078 писал(а):
То есть понятно, что алгоритм для
${\delta _k} = const,$
Существует, но вот даже не знаю как этот частный случай формализовать

Это для $a_{ij}=q^{|i-j|}$, что ли? Тогда всё очевидно: для верхней треугольной части $y_n=x_n$, $y_{k-1}=x_{k-1}+qy_k$, и для нижней треугольной аналогично, только в обратную сторону.

Sasha Rybak в сообщении #432099 писал(а):
можно вычислить за O(n*log(n)) арифметических операций с помощью быстрого преобразования Фурье.

Это только для $n=2^m$, а так очень сильно от $n$ зависит, и для простых $n$ БПФ вообще никакого выигрыша не даёт, кроме проигрыша.

 Профиль  
                  
 
 Re: Можно ли упростить матрицу?
Сообщение07.04.2011, 16:54 
Аватара пользователя


05/06/08
474
ewert в сообщении #432109 писал(а):
Это для $a_{ij}=q^{|i-j|}$, что ли? Тогда всё очевидно: для верхней треугольной части $y_n=x_n$, $y_{k-1}=x_{k-1}+qy_k$, и для нижней треугольной аналогично, только в обратную сторону.

Не понял.:(
В принципе, алгоритм вычисления вектора я знаю, но вот чтобы получить сильно разряженную матрицу...
Как для БПФ, например.
Хотя, возможно это и есть...

ewert в сообщении #432109 писал(а):
Это только для $n=2^m$, а так очень сильно от $n$ зависит, и для простых $n$ БПФ вообще никакого выигрыша не даёт, кроме проигрыша.

Это да. Вякое дополнение матрицы до степени двойки искажает задачу.
За редкими исключениями.

 Профиль  
                  
 
 
Сообщение07.04.2011, 17:17 
Заслуженный участник


11/05/08
32166
Да что значит искажает: там (в БПФ) объём вычислений порядка $n\cdot(n_1+n_2+\ldots)$, где в скобках складываются те простые сомножители, на которые раскладываеся $n$.

 Профиль  
                  
 
 Re:
Сообщение07.04.2011, 17:26 
Аватара пользователя


05/06/08
474
ewert в сообщении #432159 писал(а):
Да что значит искажает: там (в БПФ) объём вычислений порядка $n\cdot(n_1+n_2+\ldots)$, где в скобках складываются те простые сомножители, на которые раскладываеся $n$.

Я имел в виду, что и матрицу и вектор можно в некоторых случаях дополнить элементами до размерности степени двойки. А ответ урезать до первоначальной размерности.
Если при этом результат будет эквивалентным - то игра стоит свеч.
368Х368 всяко меньше, чем 512Х9Х4.

-- Чт апр 07, 2011 19:24:28 --

Sasha Rybak в сообщении #432099 писал(а):
Как я понял, имеется в виду матрица $||a_{ij}||_{i,j=1}^n$, в которой $a_{ij}=\prod\limits_{k=1}^{|i-j|}\delta_k$ при $i \ne j$ и $a_{ij}=1$ при $i=j$, где $\delta_1,\ ...,\ \delta_{n-1}$ - некоторые числа.
В этом случае (как и в случае любой другой матрицы, в которой $a_{ij}$ зависит только от $i-j$) её произведение на вектор можно вычислить за O(n*log(n)) арифметических операций с помощью быстрого преобразования Фурье. Описывать быстрое преобразование Фурье здесь не буду, так как оно описано на многих других сайтах.

А не кинете ссылку на наиболее простое обяснение преобразования таких матриц к псевдодиагональному виду.
Я когда-то БПФ даже программировал, но мне бы теорию - и чтобы попроще.

 Профиль  
                  
 
 
Сообщение07.04.2011, 19:19 
Аватара пользователя


05/06/08
474
удалил

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group