eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingInterpolacja 2D › Interpolacja 2D
  • Data: 2018-12-12 09:00:01
    Temat: Interpolacja 2D
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Jest funkcja dwóch zmiennych, powiedzmy taka (w C/C++):

    double f(double x, double y);

    Powiedzmy, że mam jakiś zbiór sampli, czyli wartości tej funkcji dla kilku wybranych
    x,y.
    Chciałbym zrobić interpolację tej funkcji, czyli taką fukcję g(x,y), która *z
    grubsza* wygładzi znane sample z f(x,y).

    Sample mogę mieć posortowane, np. leksykograficznie po x i y. W szczególności mogą
    być w takiej mapie:

    std::map<std::pair<double, double>, double>
    ^ ^ ^
    x y wartość

    albo w czymś innym.

    Pierwsze przybliżenie jest takie, żeby znaleźć 3 sample, które są najbliżej szukanego
    punktu, zrobić na nich (i na wartościach funkcji w tych samplach) płaszczyznę i
    poszukać gdzie na tej płaszczyźnie (w sensie wartości z) wypada szukany punkt x,y.
    Wadą tego pierwszego przybliżenia jest ilość obliczeń przy każdym szukaniu. Chciałbym
    jak najmniej.

    Potencjalnym rozwiązaniem (zakładając, że wszystkie wartości są fizyczne i mają jakiś
    akceptowany błąd pomiaru) jest ograniczenie dziedziny z góry i wyliczenie jakiegoś
    akceptowalnego rastra (powiedzmy NxM) off-line, interpolowanego choćby jak wyżej na
    podstawie sampli i użycie tego wyliczonego rastra jako gotowego słownika w run-time.
    Jestem gotów zapłacić większym zużyciem pamięci za mniejszy czas obliczeń.
    Ktoś ma inny pomysł?

    --
    Maciej Sobczak * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: