Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.05.2015, 20:38
AlenaOrdina01 AlenaOrdina01 вне форума
Прохожий
 
Регистрация: 12.05.2015
Сообщения: 4
Версия Delphi: delphi 7
Репутация: 10
Вопрос Поиск максимумов суммы двух синусоид

Привет! Помогите пожалуйста! Я строю в чарте сумму двух синусоид Series1.AddXY(I,(0.1* sin(2*3.14*25*I/500)+0.15*sin(2*3.14*5*I/200)),'',clRed), мне нужно найти расстояние между максимумами полученной синусоиды.
Ответить с цитированием
  #2  
Старый 24.05.2015, 20:44
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Локальный максимум находится через первую производную. Значит находим производную и определяем.
Второй вариант - зайти на wolframalpha.com и ввести max(0.1* sin(2*pi*25*X/500)+0.15*sin(2*pi*5*X/200)), после чего получить в ответе координаты максимумов (где написано "at X = -17.4207 + 40n" и где вторая похожая строка).
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 24.05.2015 в 20:49.
Ответить с цитированием
  #3  
Старый 24.05.2015, 21:41
AlenaOrdina01 AlenaOrdina01 вне форума
Прохожий
 
Регистрация: 12.05.2015
Сообщения: 4
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Дело в том, что мне нужно найти раcстояние между ближайшими максимумами и реализовать это я должна в delphi)
Ответить с цитированием
  #4  
Старый 24.05.2015, 21:44
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Функция не приходит извне, она задана в коде. Следовательно, от нее можно заранее подсчитать производную, следовательно, точки максимума можно определить заранее и посчитать расстояние между ними в виде числа. Хочешь - пиши считалку производных в делфи, но ни один здравомыслящий программист такой глупостью заниматься не будет. Если ответ может быть подсчитан однажды и получен в виде числа или какой-то формулы, он и должен быть получен именно так. В итоге весь код сведется к memo1.text := '<заранее_подсчитанное_число>'.
Можно идти по I с маленьким шагом и искать, когда функция начнет уменьшаться, и принимать эту точку за максимум. Но это еще большая глупость, чем считалка производных, т.к. дает только приблизительный ответ.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 24.05.2015 в 21:49.
Ответить с цитированием
  #5  
Старый 24.05.2015, 22:55
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

А вейвлет прогнать? Потом по спектру вычислить частоты.
Хотя тоже та еще коноебь обрабатывать спектр.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:51.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter