eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Aproksymacja czy Interpolacja
Ilość wypowiedzi w tym wątku: 27

  • 1. Data: 2009-08-24 15:25:13
    Temat: Aproksymacja czy Interpolacja
    Od: "Valhalla" <l...@l...lol>

    Mam czujnik mierzący pewne parametry fizyczne. Wkładam go do cieczy, a on mi
    wystawia napięcie do kilkudziesięciu do kilkuset mV w zależności od
    zawartości roztworu.

    Zależność napięcia U od stężenia x nie jest żadną znaną funkcją.
    Jedyne co mam to tabelka U(x) dla 10-ciu wartości x i odpowiadającym im
    napięciom U

    100% - 70mV
    90% - 150mV
    ...
    0% - 655mV

    Jak naszkicuje sobie wykres to jest to taki podwójny garb.

    Chciałbym odczytywać wartości pośrednie ale nie wiem co mam zrobić i w jaki
    sposób.

    1. Czy wykonywać interpojację ?
    2. Czy może aproksymować tę funkcję wielomianem i mając przybliżone F(x)
    dopiero liczyć pośrednie wartości?

    Gdzie mogę znaleźć kawałki kodu w C++ ?



  • 2. Data: 2009-08-24 15:46:34
    Temat: Re: Aproksymacja czy Interpolacja
    Od: Mario <m...@p...onet.pl>

    Valhalla pisze:
    > Mam czujnik mierzący pewne parametry fizyczne. Wkładam go do cieczy, a on mi
    > wystawia napięcie do kilkudziesięciu do kilkuset mV w zależności od
    > zawartości roztworu.
    >
    > Zależność napięcia U od stężenia x nie jest żadną znaną funkcją.
    > Jedyne co mam to tabelka U(x) dla 10-ciu wartości x i odpowiadającym im
    > napięciom U
    >
    > 100% - 70mV
    > 90% - 150mV
    > ...
    > 0% - 655mV
    >
    > Jak naszkicuje sobie wykres to jest to taki podwójny garb.
    >
    > Chciałbym odczytywać wartości pośrednie ale nie wiem co mam zrobić i w jaki
    > sposób.
    >
    > 1. Czy wykonywać interpojację ?
    > 2. Czy może aproksymować tę funkcję wielomianem i mając przybliżone F(x)
    > dopiero liczyć pośrednie wartości?
    >
    > Gdzie mogę znaleźć kawałki kodu w C++ ?


    Jeśli chcesz interpolować to i tak musisz wygładzić żeby usunąć błędy
    pomiarowe. Możesz to robić odcinkami krzywą np 2 stopnia i po troszku
    przesuwać odcinek na którym robisz aproksymację . Przy okazji generować
    gęstszą siatkę danych. Możesz też użyć wielomianu na aproksymację
    całości. Skoro są dwa garby to i jest przynajmniej jeden dołek. Czyli
    musisz użyć co najmniej wielomianu 4 stopnia a najlepiej wyższego. Tylko
    że 10 punktów pomiarowych to stanowczo za mało żeby to dokładnie
    policzyć. Jeśli potrzebujesz. Nie napisałeś czy to ma być wyliczane w
    mikrokontrolerze czy tylko chcesz sobie odczytać sam wartości pośrednie.
    Jeśli dla siebie to wystarczy rysunek na papierze mm i krzywiki albo
    arkusz i wykres z wygładzaniem linii. W przypadku procka to interpolacja
    gdy nie masz mocy obliczeniowej a aproksymacja gdy nie masz dużo pamięci
    na dokładną tabelę.

    --
    Pozdrawiam
    MD


  • 3. Data: 2009-08-24 15:56:41
    Temat: Re: Aproksymacja czy Interpolacja
    Od: filug <f...@d...kom>

    Dnia 24-08-2009 o 17:25:13 Valhalla <l...@l...lol> napisał(a):

    > [...]
    > Jak naszkicuje sobie wykres to jest to taki podwójny garb.
    >
    > Chcia?bym odczytywaae warto?ci po?rednie ale nie wiem co mam zrobiae i w
    > jaki
    > sposób.
    >
    > 1. Czy wykonywaae interpojacje ?
    > 2. Czy mo?e aproksymowaae te funkcje wielomianem i maj?c przybli?one F(x)
    > dopiero liczyae po?rednie warto?ci?

    Ja bym sobie próbował znaleźć jakiś wielomian który opisłaby taki przebieg
    jaki masz na wykresie (ale skoro na 10 wartościach masz dwa ekstema - to
    chyba trochę trzeba by się napracować, zeby znaleźć coś sensownego). BTW
    Matlab miał jakiegoś toolboxa do robienia takich rzeczy.

    Ewentualnie - jeżeli otrzymana dokładność by Ci wystarczyła - aproksymował
    bym funkcję opisującą odpowiedź przetwornika w odcinkach. Tzn. od jednego
    punktu gdzie znasz wartość do drugiego punktu "sąsiedniego" wyznaczałbym
    prostą (albo funkcję wyższego rzędu) i z równania prostej (albo funkcji
    wyższego rzędu) wyznaczałbym wartość argumentu. Po przekroczeniu przez
    odpowiedz przetwornika dziedziny funkcji aproksymującej użyłbym kolejnej
    funkcji która opisuje kolejny "fragment".

    > Gdzie moge znale 1/4 ae kawa?ki kodu w C++ ?

    Kawałki kodu na mnożenie stałych przez zmienną ... jedną zmienną?


    --
    filug
    mailto: "dzi" - g, "e" - a, "j" - i, "k" - c


  • 4. Data: 2009-08-24 15:58:02
    Temat: Re: Aproksymacja czy Interpolacja
    Od: "Valhalla" <l...@l...lol>


    "Mario" <m...@p...onet.pl> wrote in message
    news:h6uclk$9g0$1@news.onet.pl...
    Nie napisałeś czy to ma być wyliczane w
    mikrokontrolerze czy tylko chcesz sobie odczytać sam wartości pośrednie.

    Obliczenia w PC-cie.
    Dane lecą z urządzenia po RS-ie. Producent nie dał nic innego jak tabelkę
    11-tu wartości i maksymalny błąd pomiarowy +/- dla 10-40 stopni celsiusza.
    Sondy są powtarzalne bardzo ale nijak nie opisane krzywą.

    Mocy obliczeniowej dosyć.



  • 5. Data: 2009-08-24 16:40:12
    Temat: Re: Aproksymacja czy Interpolacja
    Od: Mario <m...@p...onet.pl>

    filug pisze:
    > Dnia 24-08-2009 o 17:25:13 Valhalla <l...@l...lol> napisał(a):
    >
    >> [...]
    >> Jak naszkicuje sobie wykres to jest to taki podwójny garb.
    >>
    >> Chcia?bym odczytywaae warto?ci po?rednie ale nie wiem co mam zrobiae i w
    >> jaki
    >> sposób.
    >>
    >> 1. Czy wykonywaae interpojacje ?
    >> 2. Czy mo?e aproksymowaae te funkcje wielomianem i maj?c przybli?one F(x)
    >> dopiero liczyae po?rednie warto?ci?
    >
    > Ja bym sobie próbował znaleźć jakiś wielomian który opisłaby taki
    > przebieg jaki masz na wykresie (ale skoro na 10 wartościach masz dwa
    > ekstema - to chyba trochę trzeba by się napracować, zeby znaleźć coś
    > sensownego).

    Dwa garby. Między nimi musi być dolinka czyli trzy ekstrema. No i nie
    wiadomo co ma być poza skrajnymi punktami. Do tego przydałyby się punkty
    przegięcia ale to nie na takiej ilości punktów :)

    BTW Matlab miał jakiegoś toolboxa do robienia takich rzeczy.

    Pewnie octave ma też


    > Ewentualnie - jeżeli otrzymana dokładność by Ci wystarczyła -
    > aproksymował bym funkcję opisującą odpowiedź przetwornika w odcinkach.
    > Tzn. od jednego punktu gdzie znasz wartość do drugiego punktu
    > "sąsiedniego" wyznaczałbym prostą (albo funkcję wyższego rzędu) i z
    > równania prostej (albo funkcji wyższego rzędu) wyznaczałbym wartość
    > argumentu. Po przekroczeniu przez odpowiedz przetwornika dziedziny
    > funkcji aproksymującej użyłbym kolejnej funkcji która opisuje kolejny
    > "fragment".
    >
    >> Gdzie moge znale 1/4 ae kawa?ki kodu w C++ ?
    >
    > Kawałki kodu na mnożenie stałych przez zmienną ... jedną zmienną?

    Może sam chce pisać kod do robienia aproksymacji na wielomianach.
    Stanowczo odradzałbym. Najlepiej poszukać gotowego solvera a w kod
    wpisać tylko znalezioną funkcję.



    --
    Pozdrawiam
    MD


  • 6. Data: 2009-08-24 16:40:19
    Temat: Re: Aproksymacja czy Interpolacja
    Od: Mario <m...@p...onet.pl>

    Valhalla pisze:
    > "Mario" <m...@p...onet.pl> wrote in message
    > news:h6uclk$9g0$1@news.onet.pl...
    > Nie napisałeś czy to ma być wyliczane w
    > mikrokontrolerze czy tylko chcesz sobie odczytać sam wartości pośrednie.
    >
    > Obliczenia w PC-cie.
    > Dane lecą z urządzenia po RS-ie. Producent nie dał nic innego jak tabelkę
    > 11-tu wartości i maksymalny błąd pomiarowy +/- dla 10-40 stopni celsiusza.
    > Sondy są powtarzalne bardzo ale nijak nie opisane krzywą.
    >
    > Mocy obliczeniowej dosyć.

    Interpolacja nie bardzo wyjdzie w miejscach gdzie jest większa krzywizna
    lub duża odległość między punktami. Musiałbyś najpierw zagęścić punkty
    tak jak wspominałem ale to trochę roboty.
    Najprościej dać wielomian począwszy od 4 stopnia i patrzeć jak leży na
    punktach wzorcowych. Podnosisz stopień aż przestaje być widoczna poprawa
    w układaniu się na punktach (możesz liczyć odchylenie standardowe w tych
    punktach) lub zaczynają się dziwne osobliwości (dodatkowe ekstrema)
    pomiędzy punktami lub na końcach zakresu. Pewnie zatrzymasz się koło 7
    stopnia.

    --
    Pozdrawiam
    MD


  • 7. Data: 2009-08-24 16:51:34
    Temat: Re: Aproksymacja czy Interpolacja
    Od: Mario <m...@p...onet.pl>

    Mario pisze:

    > Pewnie zatrzymasz się koło 7
    > stopnia.

    Miało być 6. 7 to już dość wysoki.


    --
    Pozdrawiam
    MD


  • 8. Data: 2009-08-24 16:52:40
    Temat: Re: Aproksymacja czy Interpolacja
    Od: Zbych <a...@o...pl>

    Mario pisze:

    > BTW Matlab miał jakiegoś toolboxa do robienia takich rzeczy.

    Na początek można zacząć od funkcji polyfit.


    --
    przeciez moje rozumowanie bylo bez skazy,
    no sam bym wskoczyl do tego wulkanu,
    ale kto by tak pieknie gwizdal...


  • 9. Data: 2009-08-24 16:56:29
    Temat: Re: Aproksymacja czy Interpolacja
    Od: filug <f...@d...kom>

    Dnia 24-08-2009 o 18:40:12 Mario <m...@p...onet.pl> napisał(a):

    > filug pisze:
    >> [...]
    >> (ale skoro na 10 wartościach masz dwa ekstema - to chyba trochę trzeba
    >> by się napracować, zeby znaleźć coś sensownego).
    >
    > Dwa garby. Między nimi musi być dolinka czyli trzy ekstrema. No i nie
    > wiadomo co ma być poza skrajnymi punktami.

    Racja trzy ekstema :) Mój błąd, a raczej przejęzyczenie :)

    >> BTW Matlab miał jakiegoś toolboxa do robienia takich rzeczy.
    >
    > Pewnie octave ma też

    Pewnie tak, ale ocatve niestety nie miałem w ręce więc nie będę zmyślać.

    >> Kawałki kodu na mnożenie stałych przez zmienną ... jedną zmienną?
    >
    > Może sam chce pisać kod do robienia aproksymacji na wielomianach.
    > Stanowczo odradzałbym. Najlepiej poszukać gotowego solvera a w kod
    > wpisać tylko znalezioną funkcję.

    Chyba nie skoro ma czujnik i potrzebuje czymś opisać jego odpowiedź.

    --
    filug
    mailto: "dzi" - g, "e" - a, "j" - i, "k" - c


  • 10. Data: 2009-08-24 17:17:37
    Temat: Re: Aproksymacja czy Interpolacja
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik "Valhalla" <l...@l...lol> napisał w wiadomości
    news:h6ubb8$1oc$1@opal.futuro.pl...
    > Zależność napięcia U od stężenia x nie jest żadną znaną funkcją.
    > Jedyne co mam to tabelka U(x) dla 10-ciu wartości x i
    > odpowiadającym im napięciom U

    Czysto matematycznie: interpolacja jest funkcja dokladna we
    wszystkich punktach zmierzonych.
    Co dla N punktow wymaga wielomianu stopnia N-1, czy ogolnie funkcji
    o N wspolczynnikach.
    Jesli to bedzie interpolacja wielomianem, to cecha uboczna sa
    zazwyczaj duze oscylacje na skrajnych obszarach.

    Aproksymacja nie musi sie dokladnie zgadzac w punktach pomiarowych
    i efektem jest wielomian stopnia znacznie nizszego.

    W zyciowych przypadkach zawsze stosujemy aproksymacje - dzieki temu
    bledy pomiarowe sie usredniaja a nie poteguja.
    No chyba ze sie decydujemy na interpolacje w przedzialach
    [funkcje sklejane].

    Do aproksymacji trzeba zalozyc postac funkcji - na podstawie
    teorii, literatury, intuicji wzrokowej, a moze wynikow dopasowania.
    Jak juz wspominasz roztwor - to moze byc jakas funkcja wykladnicza
    czy logarytmiczna - kiepsko aproksymowana wielomianami.

    > Gdzie mogę znaleźć kawałki kodu w C++ ?

    Ha, ha, a pare grubych ksiazek z teoria nie łaska najpierw
    przeczytac ? :-P



    J.

strony : [ 1 ] . 2 . 3


Szukaj w grupach

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: