Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как найти пики в массиве? [D6, D7]


Страницы:   1 2

Lem ©   (2006-09-08 11:45:00) 

Добрый день! Помогите пожалуйста с поиском максимумов в массиве:
time[i]:array of doble;
ch1[i]: array of doble;
 Мне надо находить пики значений в ch1[i] и запоминать значения  time[i] при этих пиках. Но прикол в том,что пики ch1[i] разные по величине, но выше 3 (Диапазон значений 0-5,12), и максимальное значение может быть при мноргих i. С виду всё просто, но уменя не складываються вложенные циклы. Пример значений ch1[i]:1.1;1.5;1.3;2.5;2.4;3;2.9;3.8;
4.2;4.5;4.5;4.5;4.5;3.2;2.5;1.1;1.5;3.3;4.8;5.1;5.1;4.8;4.7;5;4.6;4.5;4.1;3.5;2. 8;1.2... Help null null


StriderMan   (2006-09-08 12:37:00) [21]


> Думкин ©   (08.09.06 12:32) [11]

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

dY/dX < 0 меняется на dY/dX > 0. на табличной функции это посчитать можно.


Думкин   (2006-09-08 12:33:00) [22]

При этом так  и не было дано определение пика и в чем были затруднения с вложенными циклами. А посему даже практической задачи пока не озвучено.


Сергей М.   (2006-09-08 12:33:00) [23]


> Думкин ©   (08.09.06 12:21) [8]


"И тут Остапа понесло .." (С)


Думкин   (2006-09-08 12:32:00) [24]

> StriderMan ©   (08.09.06 12:27) [10]

Извините, но речь шла о производных и вы потвердили это.
Производные знаете ли тоже для практики.
Я прошу не елозить пло полу - а показать мне производные.

Кто чего оценит - мне по барабану, я хочу увидеть производные. И как вы решали такую же задачу с ИХ помощью. Пока я увидел решение БЕЗ ИХ помощи.

Хотя свести можно - но так и надо показать как. Я вижу как. Но это все-таки другая уже функция - на другом множестве.
Практическая. не люблю технарей. 6(


StriderMan   (2006-09-08 12:27:00) [25]


> Думкин ©   (08.09.06 12:23) [9]

задача чисто практическая, и к топологии отношение имеет весьма опосредованное, т.к. что не надо блистать знанием высшей математики, все равно не оценят.

а практическое решение дано в [6]. С некими оговорками это будет работать вполне сносно.


Думкин   (2006-09-08 12:23:00) [26]

Впрочем можете не продолжать. Вы упомянули про любые непрерывные функции - этого достаточно.
1. Вы должны показать, что эта функция - непрерывна.
2. Не все непрерывные функции имеют производные. Есть даже функции непрерывные, которые не имеют производных ни в одной точке.


Думкин   (2006-09-08 12:21:00) [27]

> Сергей М. ©   (08.09.06 12:19) [7]
> Тоже самое определение, что и для любой другой непрерывной
> ф-ции (не важно как заданной - таблично как у автора или
> аналитически).
>
> Производная - она и в Африке производная)

Так дайте мне определение производной для таблично заданой функции. Умоляю.


Сергей М.   (2006-09-08 12:19:00) [28]

Если я правильно понял вопрос, то для не слишком большого массива ch1 (но состоящего не менее чем из 3-х элементов, при менее 3-х элементов понятие "пик" теряет смысл):


var
 DeltaSign, TmpDeltaSign: TValueSign;
 time[i]:array of doble;
 ch1[i]: array of doble;

..

 DeltaSign := Sign(ch1[1] - ch1[0]);
 for i:= 2 to Length(ch1)-1 do begin
   TmpDeltaSign := Sign(ch1[i] - ch[i-1]);
   if DeltaSign <> TmpDeltaSign then
     begin
       if TmpDeltaSign <> 0 then
          SetLength(lime, Length(Time)+1);
       Time[Length(Time)-1] := ch1[i];
       DeltaSign := TempDeltaSign;
     end;
 end;



> Думкин ©   (08.09.06 12:05) [5]


> Дайте понятие производной для функции определенной на множестве
> с дискретной топологией


Тоже самое определение, что и для любой другой непрерывной ф-ции (не важно как заданной - таблично как у автора или аналитически).

Производная - она и в Африке производная)


Наиль   (2006-09-08 12:06:00) [29]

Нет необходимости использовать вложеные циклы.
Вводишь переменую N
Проходишь по массиву (1 раз)
и если ch1[i] больше левого и правого соседа и больше 3х, то
Resultat[n]:=time[i]
ResIndex[n]:=i;
inc(n);

Изначально длину массивов Resultat и ResIndex устанавливаешь равной длине ch1. А потом укорачиваешь до N.
Приблизительно так.


Думкин   (2006-09-08 12:05:00) [30]

1. Пок атолько поток сознания. Ясность надо.

2. > Сергей М. ©   (08.09.06 11:56) [2]Дайте понятие производной для функции определенной на множестве с дискретной топологией.


Джо   (2006-09-08 12:05:00) [31]

Сергей М., StriderMan.
Дык, это функцию сначала найти нужно. :)


StriderMan   (2006-09-08 12:01:00) [32]

Решал такую задачу в дипломе.
Действительно, подход [2]


Сергей М.   (2006-09-08 11:56:00) [33]

Экстремумы ("пики") ф-ции находятся по смене знака 1-й производной.


Kolan   (2006-09-08 11:52:00) [34]

Внятно сформулируй когда точка считаеться пиком.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо