argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: Точкови функции  (Прочетена 1312 пъти)

Райчо Мукелов

  • Неактивен Неактивен
  • Публикации: 486
  • I snuggle with subwoofers
    • HULTIG - Human Language Technlogy and Bioinformatics Interest Group
Точкови функции
« -: 22.06.2005, 12:15:25 »

Имам няколко (по точно 6) точкови (дискретни, прекъснати) функции, в смисъл че аргумента на всичките тези 6 може да бъде само цяло число (имат един аргумент само, който е общ за всичките). Проблема ми с тях е , че искам да им намеря едновременно локалните максимуми, даже по точно ми трябва да знам за аргумента равен на 4 примерно колко локални максимума има (в случая са 4), ако ги има за някоя стойност на аргумента. Някой ако е чувал за алгоритъм, който да го прави това моля да драсне два реда.За да придобиете горе-долу представа за какво става дума ще сложа и една примерна картинка:

« Последна редакция: 22.06.2005, 13:48:37 от sasquatch »
Активен

Phyz

  • Неактивен Неактивен
  • Публикации: 45
Re: Точкови функции
« Отговор #1 -: 22.06.2005, 13:11:48 »

Rayman aко примерно:

f(0) = 5
f(1) = 5
f(2) = 5
f(3) = 3

5 локален екстремум ли е и ако е за кое x се брои?
Активен
Quidquid latine dictum sit, altum sonatur.
Whatever is said in Latin sounds profound.

Райчо Мукелов

  • Неактивен Неактивен
  • Публикации: 486
  • I snuggle with subwoofers
    • HULTIG - Human Language Technlogy and Bioinformatics Interest Group
Re: Точкови функции
« Отговор #2 -: 22.06.2005, 13:50:45 »

Горе съм се объркал - не са 3 ами са 4 локалните екстремуми за аргумент = 4(според мен), първо бях постнал грешна графика.
Колкото до въпроса - и аз не знам кое от трите трябва да го броя за екстремум, дали изобщо трябва да ги взимам за екстремуми , а може би и трите? Между другото е възможен точно тоя случай - примерно в три точки последователно да има една и съща стойност. Мен по принцип ме интересуват максимумите, изобщо да са възможно най-големи тея функции едновременно, опитах да ги сумирам тея 6 , като ги стандартизирам за целта, т.е. като имам по 10 стойности намирам среднота стойност и стандартното отклонение за стойностите на всяка всяка функция, после от всяка стойност вадя средното и деля на отклонението - така ги привеждам в една скала и ги събирам и горе долу става работата, но ми се искаше да използвам ако има някакъв алгоритъм който да може да намира локалните екстремуми едновременно за всичките 6 функции (ако ги има изобщо тея екстремуми), а не да сплесквам всичко до едно число. Не знам дали е възможно това изобщо и не съм сигурен че тея всеки път едновременно си достигат ектремума в някоя точка, ако имам алгоритъм бих могъл да пробвам, но за сега не мога да го измътя. Тая графика отгоре е със стандартизираните стойности.
Ето с нестандартизирани:

сега като се замисля тука по-ясно се виждат нещата и тоя алгоритъм хипотетичен трябва върху тея нестандартизирани стойности да работи. Аз знам че решението е в 5 в случая, виждам че има локални екстремуми, но остава проблема с тея
f(1)=5
f(2)=5
f(3)=5
f(4)=3
Ето примерно за тея изкуствено генерирани данни, за които ясно се вижда че има точно пет изолирани групи (меджу другото има и формула за изчисляване на изолацията - това са L и L* на горните графики, k e броя на групите/клъстерите):

като използвам метода със сумирането на стандартизираните стойности, алгоритъма ги открива тея групи, но все още не съм сигурен, че ще работи винаги коректно, защото има една трансформация (стандартизирането) на стойностите на функциите, които са параметри на даденото клъстеризиране и след това сумиране на въпросните - с изкуствено генерирани клъстери работи - ама де да знам дали ще става и с истински, пробвах тука с едни думи (споменах ти по ICQ за моята любима матрица 222х222, с която си пържа редовно процесора :) ) и имаше донякъде смислен резултат, но не 100% , ня доста места бяха се групирали и думи дето нямат нищо общо - пък и я взех на готово тая матрица, даже не знам как са я смятали, че и отгоре на всичкото трябваше да я трансформирам за да мога да я ползвам, щото тея вместо разлики между думите бяха използвали подобия. Май се поотвлякох от темата :)
едит:
смених графиката на функциите сега числата по x отговарят на броя на клъстерите и съм отбелязал с червено решението, тъй като всеки път използвам случайно генерирани данни (това си има и добрите страни) на тая пък се е получило така че аз поне почвам да се съмнявам, че ще я бъде тая с екстремумите.
« Последна редакция: 23.06.2005, 02:49:33 от sasquatch »
Активен

Genrih

  • Неактивен Неактивен
  • Публикации: 25
Re: Точкови функции
« Отговор #3 -: 24.06.2005, 13:50:25 »

Здравейте!
като преглеждам тези функции, те могат много лесно да се интерполират с полиномите на Лагранж: като имаме някои дадени стойности на функция можем да съставим полином който съвпада с функция в  тези точки, и така получаваме аналитично приближение на дискретна(в случая ) функция с полином , с който се работи много лесно 

Райчо Мукелов

  • Неактивен Неактивен
  • Публикации: 486
  • I snuggle with subwoofers
    • HULTIG - Human Language Technlogy and Bioinformatics Interest Group
Re: Точкови функции
« Отговор #4 -: 24.06.2005, 14:26:08 »

Да в интерес на истината вече съм го обмислял този вариант с интерполацията с полином на Лагранж, но в общия случай точките ще са много - повече от 1000 и тоя плином ще стане от толкова висока степен, че ще почне да осцилира много между точките. Чувал съм че има метод точно за такива функции, но засега нищо не мога да открия. Антон Илиев ми каза че при Копанов били учили нещо такова, ма не мога да го издиря да го питам.
« Последна редакция: 24.06.2005, 18:20:58 от Райчо »
Активен