Алгоритмичен проблем?

8 отговора 529 прегледа
#1

Алгоритмичен проблем?

Търся решение на следния проблем:

Функцията x=f(x,p) изчертава n на брой криви в равнината чрез промяна на p -> p=0,5 ; 1; 1,5; 2 ..... ; 5.

Функцията x'=f(y') изчертава друга крива в равнината. Как итерационно да се намери с коя от кривите изчертани от x=f(x,p) съвпада най-точно x'=f(y').

Или нагледно казано на един паус изчертаваме x=f(x,p) кривите. На друг паус изчертаваме x'=f(y') кривата. С колко да отместим 2-рия паус, като осите x,y останат успоредни, така че кривата x'=f(y') да съвпадне най-точно( с възможно най-голям брой от точките си) с някоя от кривите x=f(x,p).

Надявам се че успях точно да дефинирам проблем. Ще бъда благодарен не само на точни решения, но и на идеи.

Отговор
в отговор на Dim_cR #2

Re: Алгоритмичен проблем?

Използвай метода на най0малките квадрати. Идеята му е площта, която затварят двете графики на функции да е минимална.

Отговор
в отговор на Dim_cR #3

Re: Алгоритмичен проблем?

мдам, както ти и подсказва Ученика, отвори един учебник по "Числени методи" и ще намериш достатъчно информация, за да си решиш проблема в дадена степен

Отговор
в отговор на AcidMemory #4

мдам, ама най-малките квадрати не върши работа :)

най-малките квадрати е безпомощен при транслация. ако той послуша съвета на ученичката, алгоритъма му ще върне не най-съвпадащата по форма, а най-съвпадащата по близост!
моят съвет - използвай като критерий интеграла от скаларното произведение на нормализирания вектор свързващ двете функции, със нормализирания вектора свързващ две произволни съответни точки, да речем х=0.

Отговор
в отговор на Dim_cR #5

Re: Алгоритмичен проблем?

I az imam edna ideia. Tia vkliuchva po-skoro statistika. Dokolkoto razbiram imash 1 familia ot n na broi krivi i niakakva kriva za sravnenie. Ne sam na iasno kakuv vid sa ti krivite, no v obshtia sluchai izbirash niakakva bazova tochka ot sravnitelnata krivata. Ako krivata ti ima nachalo i krai isbirash kraina tochka, ako ne tursish infleksnite tochki /tam kadeto funkciata smenia krivinata si/ i izbirash za baza infleksna tochka. Bazata na vsichki krivi triabva da e edna i sushta. Sledvashtata stupka e da translirash krivite taka, che bazovite im tochki na vsichki da se slivat v edna tochka - reperna da ia narechem, stava kato preizchislish koordinatite na tochkite ot krivite + offseta na bazovite im tochki spriamo repernata. Za udobstvo moje da se polzva kato reperna bazovata tochka ot sravniavashtata kriva. Ot tam natatuk sravniavash vsiaka sus tazi na x'=f(y') po slednia princip. V zavisimost ot formata na krivata i kriteria za shodstvo, si izbirash N na broi tochki ot krivata. Udobno mi se struva da se izberat drugi infleksni tochki. Ako niama takiva - niakakvi, gore dolu ravnomerno razpredeleni po duljinata. Tezi tochki triabva da sa sushtite za sravniavanite krivi. /Kato kazvam sushtite imam predvid za ednakvi stoinosti na promenlivite vuv f(x) i f(y), no sas veche vkliuchen offset./ Samoto sravnenie shte se izraziava v toleransa na koordinatite na tezi N na broi tochki. T.e. neshto kato absoliutna suma na razlikite v koordinatite na vsichkite izbrani N tochki ot 2-te krivi. Kato kriterii - kolkoto po malka e sumata, tolkova po-blizko e vaprosnata kriva ot sravniavashtata.
Neshto ot roda, .... ne uspiah da si subera mislite, da go napisha kato sviat. Ne znam kolko shte e izdurjano matematicheski, no mislia moga da do razpisha i s primeri da go zashtitia.

Отговор
в отговор на Dim_cR #6

Re: Алгоритмичен проблем?

... кривите изчертани от x=f(x,p) съвпада най-точно x'=f(y').

Kakwo oznachawa naj-tochno?

Отговор
в отговор на Dim_cR #7

Малко уточнение

Нека x=f(x,p) се чете като x=f(y,p) ! Извинявам се за грешката.

А сега искам да благодаря на всички отговорили и да отправя една нахалничка молба към zaphod и VlLO. Бихте ли могли да предложите някакво source code за идеите си. Ако може и Учeниka да направи това. Аз обещавам да публикувам в замяна на това като open source проекта след като ми се изясни този етап и може би ще поработим заедно по него.

Отговор
в отговор на Dim_cR #8

Re: Малко уточнение

Mojesh li da napisheh kak izglejdat x=f(x,p) i x=f(y,p). Ne sam programist no shte probvam da satvoria neshto.

Отговор
в отговор на Dim_cR #9

Re: Малко уточнение

е, не се обиждай, ама няма да дам сорс.

Отговор