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

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



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

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


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

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