Springen naar inhoud

Trigonometrische interpolatie


  • Log in om te kunnen reageren

#1

Hermano

    Hermano


  • >25 berichten
  • 30 berichten
  • Gebruiker

Geplaatst op 14 april 2011 - 12:29

Hoi,

Ik zou graag een trigonometrische interpolatie door enkele punten willen doen. Echter moet de polynoom een bepaalde 'vorm' hebben. Ik ken namelijk de periodes en amplitudes van de trigonometrische polynoom die ik door mijn punten wil fitten mbv een FFT. Mijn vraag is hoe kan ik nu zulk een polynoom door mijn punten fitten ??

Thanks

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 14 april 2011 - 13:46

Hoi,

Ik zou graag een trigonometrische interpolatie door enkele punten willen doen. Echter moet de polynoom een bepaalde 'vorm' hebben. Ik ken namelijk de periodes en amplitudes van de trigonometrische polynoom die ik door mijn punten wil fitten mbv een FFT. Mijn vraag is hoe kan ik nu zulk een polynoom door mijn punten fitten ??

Thanks

trigonometrische polynoom? Kun je eens concreet zeggen wat je bedoelt? Een polynoom is een veelterm en een trigonometrische functie bestaat uit sinussen en cosinussen. Welke combinatie maak je precies? En welke data heb je precies?

En wil je een interpolatie (dus alle punten liggen op je lijn) of wil je een fitting (zo goed mogelijke benaderen)?
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#3

Hermano

    Hermano


  • >25 berichten
  • 30 berichten
  • Gebruiker

Geplaatst op 14 april 2011 - 19:29

trigonometrische polynoom? Kun je eens concreet zeggen wat je bedoelt? Een polynoom is een veelterm en een trigonometrische functie bestaat uit sinussen en cosinussen. Welke combinatie maak je precies? En welke data heb je precies?

En wil je een interpolatie (dus alle punten liggen op je lijn) of wil je een fitting (zo goed mogelijke benaderen)?


Met een trigonometrische polynoom bedoel ik inderdaad een functie die bestaat uit sinusen en cosinussen (zie Wikipedia).

Ik wil graag een fitting doen van een trigonometrische functie door heen enkele punten. Echter moet deze functie voldoen aan een voorwaarde nl. de sinussen en cosinussen van de functie bevatten enkel bepaalde periodes en amplitudes die ik ken. Om echter de functie door de punten te fitten zal de functie niet exact aan deze voorwaarde kunnen voldoen maar zo goed als mogelijk. Het is dus geen 'normale' fitting waarbij de functie eender welke periodes en amplitudes kunnen bevatten om zo goed mogelijk te fitten door punten. De periodes en amplitudes zijn opvoorhand bepaald.

Is mijn probleem nu duidelijker?

Thanks

#4

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 14 april 2011 - 21:50

Met een trigonometrische polynoom bedoel ik inderdaad een functie die bestaat uit sinusen en cosinussen (zie Wikipedia).

Ik wil graag een fitting doen van een trigonometrische functie door heen enkele punten. Echter moet deze functie voldoen aan een voorwaarde nl. de sinussen en cosinussen van de functie bevatten enkel bepaalde periodes en amplitudes die ik ken. Om echter de functie door de punten te fitten zal de functie niet exact aan deze voorwaarde kunnen voldoen maar zo goed als mogelijk. Het is dus geen 'normale' fitting waarbij de functie eender welke periodes en amplitudes kunnen bevatten om zo goed mogelijk te fitten door punten. De periodes en amplitudes zijn opvoorhand bepaald.

Is mijn probleem nu duidelijker?

Thanks

Duidelijk.

Zijn er nog eigenschappen van de periodes van je cosinussen (liggen ze bijvoorbeeld op veelvouden van elkaar?) of zijn er eigenschappen van je datapunten (liggen die op regelmatige afstand van elkaar?)

De berekening die je kunt doen voor het algemene geval (eindige hoeveelheid basisfuncties!) is heel eenvoudig in matrices te verwoorden (maar rekenintensief). Hetgeen je moet doen is de normaalvergelijking oplossen.

Nu weet ik niet hoe ver je wiskundekennis rijkt? Als je misschien kunt aangeven wat je van matrices kent kan ik een voorbeeldje voorzien.
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#5

Hermano

    Hermano


  • >25 berichten
  • 30 berichten
  • Gebruiker

Geplaatst op 15 april 2011 - 08:39

Duidelijk.

Zijn er nog eigenschappen van de periodes van je cosinussen (liggen ze bijvoorbeeld op veelvouden van elkaar?) of zijn er eigenschappen van je datapunten (liggen die op regelmatige afstand van elkaar?)

De berekening die je kunt doen voor het algemene geval (eindige hoeveelheid basisfuncties!) is heel eenvoudig in matrices te verwoorden (maar rekenintensief). Hetgeen je moet doen is de normaalvergelijking oplossen.

Nu weet ik niet hoe ver je wiskundekennis rijkt? Als je misschien kunt aangeven wat je van matrices kent kan ik een voorbeeldje voorzien.


Mijn kennis van wiskunde zou normaal redelijk hoog moeten zijn vanwege mijn ingenieursopleiding ;-)

Ik heb snel een simpele voorstelling van mijn probleem toegevoegd in bijlage.

Mijn datapunten (rood) zijn mijn gekende punten en stellen de diameter van een as voor (deze putnen liggen op gelijke afstand van elkaar). Het vormprofiel (blauw) stelt de gekende functie voor (ik ken de beduidende harmonische door een FFT te nemen van deze data). Het is dus deze trigonometrische functie die ik wil fitten door de rode punten door de beduidende harmonischen van het vormprofiel als randvoorwaarde mee te geven tijdens het fitten.

Bijgevoegde miniaturen

  • fitten_van_vormprofiel.JPG

Veranderd door Hermano, 15 april 2011 - 08:41


#6

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 15 april 2011 - 10:45

Hmmm, ik denk dat ik er nu weer niet veel meer van snap...

Misschien heb je hier iets aan: de Fouriertransformatie is een orthogonale transformatie. Dus als je een functie wil benaderen door een sinusreeks, dan bepaal je de waarde van de Fouriertransformatie bij die frequenties die je wil hebben, en is dat je amplitude en fase van de bijbehorende term in je reeks. Dit is automatisch de trigometrische reeks die je functie het dichtst benadert (MSE), precies vanwege die orthogonaliteit. Gelijk welke termen je ook weglaat, de benadering zal steeds de beste benadering zijn die je kon bereiken met de overige termen.

Anyhow, als ik je goed begrijp is dit een gelijkaardig probleem:

Stel, je hebt 4 datapunten: (x,y)->(0,1), (2,3),(3,2) en (5,5)
Je wil die benaderen door een functie die een lineaire combinatie is van 3 functies: x,sin(x*Pi/2) en cos(x*Pi/2), zodanig dat de Mean Square Error minimaal is. Hier maakt het helemaal niet uit welke functies je kiest, de methode zal altijd werken. (allez, zolang alles inverteerbaar blijft natuurlijk)

wel, dan moet je gewoon de normaalvergelijking oplossen.
Geplaatste afbeelding
Benodigdheden: de matrix X met de basisfuncties. Hier staat verticaal in de kolommen de waarde van de basisfuncties, geŽvalueerd op de punten van de dataset. Dus in de eerste kolom staat de functie f(x)=x geŽvalueerd in de x-waarden van de dataset, zijnde 0,2,3 en 5

LaTeX

De vector y bestaat uit de targets. De functiewaarden die we willen bereiken:
LaTeX

Wat nu nog rest, is bovenstaande vergelijking uitwerken:
We bekomen zo de matrix:
LaTeX
Dus de optimale oplossing is 32/34*x+19/34*sin(Pi/2*x)-2/34*cos(Pi/2*x)
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#7

Hermano

    Hermano


  • >25 berichten
  • 30 berichten
  • Gebruiker

Geplaatst op 15 april 2011 - 12:34

Hmmm, ik denk dat ik er nu weer niet veel meer van snap...

Misschien heb je hier iets aan: de Fouriertransformatie is een orthogonale transformatie. Dus als je een functie wil benaderen door een sinusreeks, dan bepaal je de waarde van de Fouriertransformatie bij die frequenties die je wil hebben, en is dat je amplitude en fase van de bijbehorende term in je reeks. Dit is automatisch de trigometrische reeks die je functie het dichtst benadert (MSE), precies vanwege die orthogonaliteit. Gelijk welke termen je ook weglaat, de benadering zal steeds de beste benadering zijn die je kon bereiken met de overige termen.

Anyhow, als ik je goed begrijp is dit een gelijkaardig probleem:

Stel, je hebt 4 datapunten: (x,y)->(0,1), (2,3),(3,2) en (5,5)
Je wil die benaderen door een functie die een lineaire combinatie is van 3 functies: x,sin(x*Pi/2) en cos(x*Pi/2), zodanig dat de Mean Square Error minimaal is. Hier maakt het helemaal niet uit welke functies je kiest, de methode zal altijd werken. (allez, zolang alles inverteerbaar blijft natuurlijk)

wel, dan moet je gewoon de normaalvergelijking oplossen.
Geplaatste afbeelding
Benodigdheden: de matrix X met de basisfuncties. Hier staat verticaal in de kolommen de waarde van de basisfuncties, geŽvalueerd op de punten van de dataset. Dus in de eerste kolom staat de functie f(x)=x geŽvalueerd in de x-waarden van de dataset, zijnde 0,2,3 en 5

LaTeX



De vector y bestaat uit de targets. De functiewaarden die we willen bereiken:
LaTeX

Wat nu nog rest, is bovenstaande vergelijking uitwerken:
We bekomen zo de matrix:
LaTeX
Dus de optimale oplossing is 32/34*x+19/34*sin(Pi/2*x)-2/34*cos(Pi/2*x)


Dat is juist wat ik zocht! Een parameterschatting met een kleinste kwadraten oplossing... Dat ik er zelf niet opgekomen ben ;) ....

Hartelijk bedankt voor uw hulp!!





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures