2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1 ... 5, 6, 7, 8, 9
 
 Re: Разложение Фурье, нахождение гармоник, прогноз
Сообщение11.10.2022, 10:20 


31/08/22
183

(Оффтоп)

ilghiz в сообщении #1566232 писал(а):
Вот же Фома не верующий!!! Это в корне не верное утверждение. Компилятор не умеет и не имеет право менять порядок операций, или менять место расположения данных в алгоритме.

Потестировал предоставленный пример на C$++$ и C#.
Не знал, что простая перестановка тоже влияет, спасибо большое.
У шарпа вообще говоря модель памяти другая. Но результаты схожие.

В своем утверждении имел в виду другое. То, что если мы будем алгоритм как есть, без перестановок, пытаться оптимизировать переписывая на ассемблер, пусть даже и с SSE, AVX и всякими ухищрениями типа степень двойки вычислять битовыми сдвигами и т.д. то вот это компилятор сделает настолько хорошо, что и соревноваться с ним смысла никакого нет.
А так то да, очередность программы он к сожалению никак не понимает и менять не в праве.


Эти отступления конечно интересны, и для меня вообще говоря актуальны, но что касается основной темы.
Люди добрые помогите пожалуйста построить спектр :D
Строю приведенной выше формулой (пробовал ее по всякому менять), но картина спектра почему то зависит от выбранной дискреты.

 Профиль  
                  
 
 Re: Разложение Фурье, нахождение гармоник, прогноз
Сообщение11.10.2022, 18:11 


11/08/18
363
Schrodinger's cat в сообщении #1566461 писал(а):
картина спектра почему то зависит от выбранной дискреты.

Конечно будет зависеть, так как сдвиг - это аппроксимация производной, то есть зависит от дискретизации!!! Просто формулы с этим учетом надо вывести и все долно получаться.

Schrodinger's cat в сообщении #1566461 писал(а):
Не знал, что простая перестановка тоже влияет, спасибо большое.
У шарпа вообще говоря модель памяти другая. Но результаты схожие.

тут на скорость работы влияет не модель памяти языка программирования, а то, как эти данные расположены в памяти. Уверен, что и каком-нибудь паскале будет все примерно также, а на питоне, и жаве разница будет меньше, чем на компилируемых языках, так как есть еще оверхед на байткод, но зато быстрый вариант на жаве будет проигрывать быстрому на С++.


Schrodinger's cat в сообщении #1566461 писал(а):
То, что если мы будем алгоритм как есть, без перестановок, пытаться оптимизировать переписывая на ассемблер, пусть даже и с SSE, AVX и всякими ухищрениями типа степень двойки вычислять битовыми сдвигами и т.д. то вот это компилятор сделает настолько хорошо, что и соревноваться с ним смысла никакого нет.

да, тут соглашусь, но добавлю, что современная архитектура компьютеров на столько сложная, что большинство программистов даже на С++ не пишут такой код, в котором компилятору есть даже гипотетическая необходимость использовать специальные инструкции типа SSE - для этого код должен хорошо конвейеризоваться.

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

 Профиль  
                  
 
 Re: Разложение Фурье, нахождение гармоник, прогноз
Сообщение11.10.2022, 21:48 


31/08/22
183
Попробовал двустороннюю модель спектра и она себя ведет более осмысленно. При изменении дискреты изменяется четкость графика. Собственно такое поведение и ожидается. Но почему то только один пик, в положительной области, нет симметричного в отрицательной.

(Оффтоп)

Изображение

Формула
$$X_2(z)=\sum_{k=0}^{p-1}(\frac{h_k}{1-z_kz^{-1}}-\frac{h_k}{1-z^*_kz^{-1}})$$
$$S_2(f)=\left \| X_2(f) \right \|^2$$

ilghiz в сообщении #1566489 писал(а):
Конечно будет зависеть, так как сдвиг - это аппроксимация производной, то есть зависит от дискретизации!!! Просто формулы с этим учетом надо вывести и все долно получаться.

Я бы и не прочь попробовать, но к сожалению не понимаю что откуда выводить.

Как сигнал из реальной жизни, действительный, подать в Прони?
Сперва нужно например ДПФ'ом перевести его в комплексный вид?

 Профиль  
                  
 
 Re: Разложение Фурье, нахождение гармоник, прогноз
Сообщение11.10.2022, 23:20 


31/08/22
183
Schrodinger's cat в сообщении #1566513 писал(а):
Как сигнал из реальной жизни, действительный, подать в Прони?
Сперва нужно например ДПФ'ом перевести его в комплексный вид?

Все осознал, svv уже ответил
svv в сообщении #1566154 писал(а):
$10e^{(-\pi/2+0.5)i}e^{2 \pi i/30 n} + 10 e^{(\pi/2-0.5)i}e^{-2 \pi i/30n} = 20\sin(2 \pi/30n+0.5)$

По сути и есть ряд действительных чисел.

 Профиль  
                  
 
 Re: Разложение Фурье, нахождение гармоник, прогноз
Сообщение13.10.2022, 09:38 


31/08/22
183
Рекомендуйте пожалуйста для поиска корней полинома какой алгоритм выбрать для C#? Дженкинса–Трауба? Что то более современное есть?

 Профиль  
                  
 
 Re: Разложение Фурье, нахождение гармоник, прогноз
Сообщение13.10.2022, 20:14 


31/08/22
183
Думаю пока достаточно, наигрался, надо чтобы уложилось в голове.
Всех участвующих благодарю за то, что научили новому.

Уважаемый ilghiz, приглашаю Вас в тему по тензорному методу
https://dxdy.ru/topic150981.html

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 126 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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