Glidande medelvärde differential ekvationen


Jag har ett kontinuerligt värde för vilket Id gillar att beräkna ett exponentiellt rörligt medelvärde. Normalt använder Id bara standardformeln för detta: där Sn är det nya genomsnittet, är alfa alfa, Y är provet och S n-1 är föregående medelvärde. Tyvärr, på grund av olika problem har jag inte en konsekvent provtid. Jag kanske vet att jag kan prova högst, säg en gång per millisekund, men på grund av faktorer som jag inte kan kontrollera, kan jag inte ta ett prov i flera millisekunder åt gången. Ett troligt vanligare fall är dock att jag enkelt provar lite tidigt eller sent: i stället för provtagning vid 0, 1 och 2 ms. Jag provar vid 0, 0,9 och 2,1 ms. Jag förutser att, oavsett förseningar, kommer min samplingsfrekvens att vara långt, långt över Nyquistgränsen, och jag behöver därför inte oroa mig för aliasing. Jag tror att jag kan hantera detta på ett mer eller mindre rimligt sätt genom att variera alfabetet på lämpligt sätt, baserat på hur länge tiden har gått sedan det sista provet. En del av mitt resonemang att detta kommer att fungera är att EMA interpolerar linjärt mellan föregående datapunkt och den nuvarande. Om vi ​​överväger att beräkna en EMA av följande lista av prover med intervall t: 0,1,2,3,4. Vi borde få samma resultat om vi använder intervall 2t, där ingångarna blir 0,2,4, höger om EMA hade antagit att vid t 2 hade värdet varit 2 sedan t 0. det skulle vara detsamma som intervallet t beräkningen beräknas på 0,2,2,4,4, vilket det inte gör. Eller har det någon mening? Kan någon berätta för mig hur man kan variera alfabetet på ett korrekt sätt. Visa ditt jobb. Dvs. visa mig matematiken som visar att din metod verkligen gör rätt sak. frågade 21 juni 09 kl 13:05 Du borde inte få samma EMA för olika inmatningar. Tänk på EMA som ett filter, provtagning vid 2t motsvarar nedprovtagning, och filtret kommer att ge en annan utgång. Detta klart för mig sedan 0,2,4 innehåller högre frekvenskomponenter än 0,1,2,3,4. Om inte frågan är, hur byter jag filtret på flyg så att det ger samma effekt. Kanske saknar jag någonting ndash freespace 21 jun 09 kl 15:52 Men inmatningen är inte annorlunda, den är bara samplad mindre ofta. 0,2,4 i intervaller 2t är som 0, 2, 4 i intervaller t, där indikerar att provet ignoreras ndash Curt Sampson 21 juni 09 kl 23:45 Detta svar baseras på min goda förståelse av lågpass filter (exponentiell glidande medelvärde är egentligen bara ett enkelpoligt lågpassfilter), men min dumma förståelse för vad du letar efter. Jag tror att följande är vad du vill: Först kan du förenkla din ekvation lite (ser mer komplicerat men det är enklare i koden). Jag ska använda Y för utgång och X för ingång (istället för S för utgång och Y för inmatning, som du har gjort). För det andra är värdet på alfa här lika med 1-e - Deltattau där Deltat är tiden mellan prover och tau är tidskonstanten för lågpassfiltret. Jag säger lika med citat eftersom det fungerar bra när Deltattau är liten jämfört med 1, och alpha 1-e-Delta asymp Deltattau. (Men inte för liten: Du kommer att köra i kvantiserande problem, och om du inte tillgriper några exotiska tekniker behöver du vanligtvis en extra N bitars upplösning i din tillståndsvariabel S, där N-log 2 (alfa).) För större värden av Deltattau filtreringseffekten börjar försvinna tills du kommer till den punkt där alfa är nära 1 och du ger i princip bara inmatningen till utgången. Detta ska fungera ordentligt med varierande värden på Deltat (variationen av Deltat är inte så viktig så länge som alfa är liten, annars kommer du att springa på några ganska konstiga Nyquist-frågor aliasing etc.), och om du arbetar på en processor där multiplikation är billigare än division, eller problem med fast punkt är viktiga, precalculate omega 1tau, och överväga att försöka approximera formeln för alfa. Om du verkligen vill veta hur man härleder formeln alpha 1-e-Delta, så beakta dess differentialekvationskälla: vilken, när X är en enhetstegfunktion, har lösningen Y 1 - e - ttau. För små värden av Deltat kan derivatet approximeras av DeltaYDeltat, vilket ger Y tau DeltaYDeltat X DeltaY (XY) (Deltattau) alfa (XY) och extrapoleringen av alfa 1-e-deltattau kommer från att försöka matcha beteendet med enhetstegfunktionsfall. Skulle du snälla utarbeta quottrying för att matcha uppförandekvotdelen Jag förstår din kontinuerliga tidslösning Y 1 - exp (-t47) och dess generalisering till en skalad stegfunktion med magnitud x och initialtillstånd y (0). men jag ser inte hur man sammanför dessa idéer för att uppnå ditt resultat. ndash Rhys Ulerich 4 maj 13 kl 22:34 Detta är inte ett komplett svar, men kan vara början på en. Det är så långt jag kom med det på en timme eller så om att leka Im posta det som ett exempel på vad jag letar efter, och kanske en inspiration till andra som arbetar med problemet. Jag börjar med S 0. vilket är medelvärdet från föregående medel S -1 och provet Y 0 tagen vid t 0. (t 1 - t 0) är mitt provintervall och alfa är inställd på vad som är lämpligt för det provintervallet och den period över vilken jag vill medelåda. Jag funderade på vad som händer om jag saknar provet på t 1 och istället måste göra med provet Y 2 vid t 2. Tja, vi kan börja med att expandera ekvationen för att se vad som skulle ha hänt om vi hade haft Y 1: Jag märker att serierna verkar sträcka sig oändligt på det här sättet, för att vi kan ersätta S n i högra sidan på obestämd tid: Ok , så det är inte riktigt ett polynom (dumt jag), men om vi multiplicerar den ursprungliga termen av en så ser vi ett mönster: Hm: det är en exponentiell serie. Quelle överraskning Föreställ dig att komma ut ur ekvationen för ett exponentiellt rörligt medelvärde. Jag har ändå det här x 0 x 1 x 2 x 3. sak går, och jag är säker på att jag luktar e eller en naturlig logaritm som sparkar runt här, men jag kan inte komma ihåg var jag gick nästa gång jag sprang ur tiden. Alla svar på denna fråga, eller något bevis på att ett sådant svar är korrekt, beror mycket på de uppgifter du mäter. Om dina prover togs vid t 0 0ms. t 1 0,9 ms och t 2 2,1 ms. men ditt val av alfa är baserat på 1-ms-intervaller, och därför vill du ha en lokalt anpassad alfa n. Beviset på att valet är korrekt ska innebära att man vet att provvärdena är t1ms och t2ms. Detta leder till frågan: Kan du interpolera dina data resonabelt för att ha sanna gissningar om vilka mellanliggande värden som kan ha varit Eller kan du till och med interpolera genomsnittet själv Om inget av dessa är möjliga, så långt som jag ser det, den logiska valet av ett mellanvärde Y (t) är det senast beräknade genomsnittet. dvs Y (t) asymp Sn där n är maximal så att t n ltt. Detta val har en enkel konsekvens: Lämna alfa ensam, oavsett vad tidsskillnaden var. Om däremot det är möjligt att interpolera dina värden, så kommer detta att ge dig medelvärde för konstantintervall. Slutligen, om det är möjligt att interpolera genomsnittsnivån själv, skulle det göra frågan meningslös. svarade 21 juni 09 kl 15:08 balpha 9830 27k 9679 10 9679 87 9679 117 Jag tror att jag kan interpolera mina data: med tanke på att I39m samplar det med skilda intervaller, gör jag det redan med en vanlig EMA. Antag att jag behöver en quotproofquot som visar att den fungerar såväl som en standard EMA, som också har kommer att ge ett felaktigt resultat om värdena inte förändras relativt jämnt mellan provperioderna. ndash Curt Sampson 21 Jun 09 kl 15:21 Men det är vad jag säger: Om du anser EMA en interpolering av dina värden, gör du det om du lämnar alfabetet som det är (för att infoga det senaste genomsnittet eftersom Y ändrar inte genomsnittsvärdet) . Om du säger att du behöver något som citerar såväl som en standard EMAquot - vad är fel med originalet Om du inte har mer information om de data du mäter kommer eventuella lokala justeringar av alpha vara bäst godtyckliga. ndash balpha 9830 Jun 21 09 at 15:31 Jag skulle lämna alfavärdet ensam, och fyll i de saknade data. Eftersom du inte vet vad som händer under tiden du inte kan prova kan du fylla i dessa prov med 0s, eller hålla det föregående värdet stabilt och använda dessa värden för EMA. Eller någon bakåtinterpolering när du har ett nytt prov, fyll i de saknade värdena och recomputer EMA. Vad jag försöker få på är att du har en inmatning xn som har hål. Det finns inget sätt att komma runt om det faktum att du saknar data. Så du kan använda en nollorderlagring, eller ställa in den på noll eller någon form av interpolering mellan xn och xnM. där M är antalet saknade prover och n börjar klyftan. Eventuellt även använda värden före n. svarade 21 juni 09 kl 13:35 Från att ha en timmes eller så mucking om lite med matematiken för detta tror jag att det helt enkelt varierar alfabetet faktiskt ger mig rätt interpolation mellan de två punkterna du pratar om, men i en mycket enklare sätt. Vidare tror jag att det varierande alfabetiskt också kommer att hantera prov som tas mellan standardprovtagningsintervallen. Med andra ord söker jag efter vad du beskriver, men försöker använda matte för att räkna ut den enkla sättet att göra det. ndash Curt Sampson 21 Jun 09 kl 14:07 Jag tror inte att det finns ett sådant odjur som quotproper interpolationquot. Du vet helt enkelt inte vad som hände i den tid du inte provtagning. Bra och dålig interpolering innebär viss kunskap om vad du saknat, eftersom du måste mäta mot det för att bedöma om en interpolering är bra eller dålig. Även om det sagt kan du placera begränsningar, det vill säga med maximal acceleration, hastighet etc. Jag tror att om du vet hur man modellerar de saknade dataen, så skulle du bara modellera de saknade dataen och sedan tillämpa EMA-algoritmen utan förändring, snarare än att ändra alfa. Bara min 2c :) ndash freespace 21 Jun 09 kl 14:17 Det här är precis vad jag fick på min redigering till frågan för 15 minuter sedan: cDu du bara vet inte vad som hände i tiden du inte provtagning, men det är sant även om du provar vid varje bestämt intervall. Således min Nyquist kontemplation: så länge du vet vågformen ändrar inte riktningar mer än varje par prover, borde det faktiska provintervallet inte betyda, och borde kunna variera. EMA-ekvationen verkar mig exakt att beräkna som om vågformen ändrats linjärt från det sista provvärdet till det aktuella. ndash Curt Sampson 21 Jun 09 kl 14:26 Jag tror inte det är helt sant. Nyquist39s teorem kräver att minst 2 prover per period ska kunna identifiera signalen unikt. Om du inte gör det får du aliasing. Det skulle vara detsamma som provtagning som fs1 för en tid, sedan fs2, sedan tillbaka till fs1, och du får alias i data när du provar med fs2 om fs2 ligger under Nyquist-gränsen. Jag måste också bekänna att jag inte förstår vad du menar med att quotwaveform ändras linjärt från sista provet till nuvarande onequot. Kan du tacka Skål, Steve. ndash freespace 21 jun 09 kl 14:36 ​​Detta liknar ett öppet problem på min todo lista. Jag har ett system som utarbetats i viss utsträckning men har inte matematisk arbete för att återställa detta förslag ännu. Uppdatera amp-sammanfattning: Vill du hålla utjämningsfaktorn (alfa) oberoende av kompensationsfaktorn (som jag refererar till som bete här). Jasons utmärkta svar som redan accepterats här fungerar bra för mig. Om du också kan mäta tiden sedan det senaste provet togs (i avrundade multiplar av din konstanta provtagningstid - så 7.8 ms sedan senaste provet var 8 enheter), som kan användas för att applicera utjämningen flera gånger. Använd formeln 8 gånger i det här fallet. Du har effektivt gjort en utjämning partisk mot det nuvarande värdet. För att få en bättre utjämning behöver vi tweakera alfanummet medan du använder formeln 8 gånger i föregående fall. Vad kommer denna utjämna approximation miss Den har redan missat 7 prover i exemplet ovan Detta approximerades i steg 1 med en planerad omfördelning av nuvärdet ytterligare 7 gånger Om vi ​​definierar en approximationsfaktor beta som kommer att appliceras tillsammans med alfa (som alfabet istället för bara alfa), antar vi att de 7 missade proverna förändrade sig smidigt mellan de föregående och nuvarande samplingsvärdena. svarade 21 juni 09 klockan 13:35 Jag tänkte på det här, men det var lite att mucka om med matematiken fick mig till den punkt där jag tror det, istället för att tillämpa formeln åtta gånger med provvärdet, kan jag göra en beräkning av en ny alfa som tillåter mig att använda formeln en gång och ge mig samma resultat. Vidare skulle detta automatiskt hantera frågan om prover som kompenseras från exakta provtider. ndash Curt Sampson 21 jun 09 kl 13:47 Den enkla ansökan är bra. Vad jag inte är säker på ännu är hur bra approximationen av de 7 saknade värdena är. Om den kontinuerliga rörelsen gör värdet jitter mycket över 8 millisekunder, kan approximationerna vara ganska av verkligheten. Men, om du är provtagning vid 1ms (högsta upplösning med undantag av de fördröjda proverna) har du redan funnit jitteren inom 1ms inte relevant. Fungerar denna resonemang för dig (jag försöker fortfarande övertyga mig själv). ndash nik 21 juni 09 kl 14:08 Höger. Det är faktorn beta från min beskrivning. En beta-faktor skulle beräknas baserat på skillnadsintervallet och nuvarande och tidigare prover. Den nya alfabet kommer att vara (alfabetisk) men den kommer endast att användas för det provet. Medan du verkar vara 39moving39 alfabet i formeln tenderar jag mig mot konstant alfa (utjämningsfaktor) och en självberäknad beta (en inställningsfaktor) som kompenserar för prover som saknas just nu. ndash nik Jun 21 09 at 15: 23Wilder Moving Average Ett antal populära indikatorer, inklusive Relative Strength Index (RSI), Average True Range (ATR) och Directional Movement, utvecklades av J. Welles Wilder och introducerades i sin bok 1978: New Concepts i tekniska handelssystem. Användare bör vara försiktig med att Wilder inte använder standardexponentiell glidande medelformel. Detta kan ha signifikant imapct när man väljer lämpliga tidsperioder för sina indikatorer. Den normala exponentiella glidande medelformeln omvandlar tidsperioden till en fraktion med formeln EMA 2 (n 1) där n är antalet dagar. Till exempel är EMA i 14 dagar 2 (14 dagar 1) 13,3. Wilder använder emellertid en EMA på 114 som motsvarar 7,1. Detta motsvarar ett 27-dagars exponentiellt rörligt medelvärde med användning av standardformeln. Indikatorer som berörs är: Vi rekommenderar att användarna försöker kortera tidsperioder när de använder en av ovanstående indikatorer. Om du till exempel spårar en 30-dagars cykel väljer du normalt en 15-dagars indikatorperiod. Med RSI, justera tidsperioden enligt följande: RSI-tidsperiod (n 1) 2 (15 1) 2 8 dagarMöte medelvärden för vanliga differentialekvationer via konvolvering Vi introducerar en medelvärdesram, där lösningen av en tidsvarierande ekvation med en liten amplitud approximeras av lösningen av ett långsamt varierande hjälpsystem, alstrat genom att sammanfoga den ursprungliga ekvationen med en kärnfunktion. Effekten av konvolutionen är utjämning av ekvationen, vilket gör det mer mottagligt för numeriska beräkningar. Vi presenterar snäva resultat på approximationsfelet för allmänna klasser av vektorfält och kärnor. Vill du läsa resten av denna artikel.

Comments

Popular posts from this blog

Forex online yang aman

Enkel dag handel system

Forex trading phone nummer