Interpolazione, approssimazione e simili (pacchetto alglib) - pagina 8

 
Tutte queste conversioni non sono adatte al mio compito, le librerie sono inutili (studiate). Andiamo in un altro modo. Ma poiché nessuno capisce nulla dell'essenza della questione, non vi dirò quale.
 
Maxim Dmitrievsky:
Tutte queste trasformazioni non sono adatte al mio compito, le librerie sono inutili (studiate). Prendiamo un'altra strada. Ma poiché nessuno capisce l'essenza della domanda, non vi dirò quale.

Grazie, Maxim, per questo thread. Sono personalmente interessato a voi. Seguirò il vostro processo creativo.

Sono sempre stato trascinato nell'abisso dell'IA.
L'abisso mi attira.

 
Sì, è stato molto interessante da leggere. grazie mille @Nikolai Semko
 
Maxim Dmitrievsky :
Tutte queste trasformazioni per il mio compito non vanno bene, sono inutili (imparate). Andiamo in un altro modo. Ma siccome nessuno capisce niente, non dirò come.

Capisco i meriti in una certa misura e sicuramente voglio aiutare e risolvere il problema dal momento che ho capito la parte teorica generale del problema in una certa misura, ma quando si tratta di implementazione pratica nel codice MQL5, allora senza l'esatta comprensione del codice in cui si è bloccato sta diventando difficile per me capire correttamente per dare qualche idea su come risolvere il problema o dove è il problema esattamente. Voglio dire fino a che punto avete implementato in MQL5 e cosa state cercando esattamente in termini di codice MQL5 o formula o funzione ecc.

Se puoi trasformare i tuoi pensieri o il problema sotto forma di poche righe di codice MQL5 dove sei bloccato, allora farò del mio meglio per dare qualche idea almeno per risolverlo.

 
Nikolai Semko:

Scusa, non ho capito cosa volevi dire. Apparentemente a causa dei miei limiti. Ma ci ho provato.
Ma date un'occhiata e usate questo esempio:
https://www.mql5.com/ru/forum/216298/page5#comment_6484839


L'idea che qualsiasi funzione periodica può essere rappresentata come una serie di seni e coseni armonicamente correlati fu proposta dal barone Jean Baptiste Joseph Fourier (1768-1830).


Definizione di una serie di Fourier

Una funzionef(x)si dice cheha periodoP sef(x+P)=f(x)per tutti i valori dix. Siail periodo della funzionef(x). In questo caso,è sufficiente considerare il comportamento della funzione nell'intervallo[-π].
  1. Supponiamo che la funzionef(x) con periodo sia perfettamente integrabile nell'intervallo[-π]. In questo caso il cosiddettointegrale di Dirichlet è finito: π∫-π|f(x)|dx< ∞;

  2. Supponiamo anche che la funzionef(x) sia monovalente, piecewise continuous (cioè abbia un numero finito di discontinuità) e piecewise monotone (abbia un numero finito di massimi e minimi).

Se le condizioni 1 e 2sono soddisfatte, allorala serie di Fourierper la funzionef(x)esiste e converge alla funzione data

Una funzione non periodica può essere espansa in una serie di Fourier? Sì - per fare questo, assumiamo che l'intervallo su cui vogliamo ottenere l'espansione sia il periodo e lo scaliamo a[-π]
. Ma poi quando si estrapola oltre l'intervallo di decomposizione (sul bordo destro), si dovrebbero ottenere i valori della funzione periodica nel limite, che sono i valori del bordo sinistro con uno spostamento corrispondente - periodo P.
Il disegno è pigro - è nel corso di metodi numerici nelle università, approssimativamente al secondo o terzo anno di studio. Più precisamente, una volta si studiava (ai miei tempi) - non ho idea di come sia ora.
 
Vladyslav Goshkov:

L'idea che qualsiasi funzione periodica possa essere rappresentata come una serie di seni e coseni armonicamente correlati fu proposta dal barone Jean Baptiste Joseph Fourier (1768-1830).

Definizione di una serie di Fourier

Una funzionef(x)si dice cheha periodoP sef(x+P)=f(x)per tutti i valori dix. Siail periodo della funzionef(x). In questo caso,è sufficiente considerare il comportamento della funzione nell'intervallo[-π].
  1. Supponiamo che la funzionef(x) con periodo sia perfettamente integrabile nell'intervallo[-π]. In questo caso il cosiddettointegrale di Dirichlet è finito: π∫-π|f(x)|dx< ∞;

  2. Supponiamo anche che la funzionef(x) sia monovalente, piecewise continuous (cioè abbia un numero finito di discontinuità) e piecewise monotone (abbia un numero finito di massimi e minimi).

Se le condizioni 1 e 2sono soddisfatte, allorala serie di Fourierper la funzionef(x)esiste e converge alla funzione data

Una funzione non periodica può essere espansa in una serie di Fourier? Sì - per fare questo, assumiamo che l'intervallo su cui vogliamo ottenere l'espansione sia il periodo e lo scaliamo a[-π]
. Ma poi quando si estrapola oltre l'intervallo di decomposizione (sul bordo destro), si dovrebbero ottenere i valori della funzione periodica nel limite, che sono i valori del bordo sinistro con uno spostamento corrispondente - periodo P.
Il disegno è pigro - è nel corso di metodi numerici nelle università, approssimativamente al secondo o terzo anno di studio. Più precisamente, lo studiavano (ai miei tempi) - come ora non ne ho idea.

Sembra che lei non capisca il senso della decomposizione della funzione in armoniche.
Quale bordo sinistro viene portato sopra il bordo destro? Cosa vuoi dire?

Capite che lo scopo di una decomposizione di Fourier è quello di ottenere un insieme di armoniche (sinusoidi) di diversa frequenza, ampiezza e spostamento di fase, in modo che quando le sommate ottenete qualcosa di simile alla funzione originale dalla serie di dati.

Ogni sinusoide è come una funzione infinita e non ha né un bordo sinistro né un bordo destro. Per estrapolarlo, devi solo continuarlo, non unire il bordo "sinistro" al bordo "destro".

E la periodicità di questa somma armonica non sarà uguale all'intervallo di campionamento dei dati originali approssimati, ma sarà uguale alla distanza tra i momenti in cui tutte le armoniche di diverso spostamento di fase di frequenza ritornano simultaneamente ai loro valori di partenza, e non il fatto che possa accadere, perché può accadere solo se tutte le frequenze delle armoniche sono multipli dello stesso valore.

La linea blu è l'approssimazione, la linea rossa è l'estrapolazione.

File:
 
Nikolai Semko:

Sembra che lei abbia un'incomprensione del significato della decomposizione della funzione in armoniche.
Quale bordo sinistro porta al bordo destro? Di cosa stai parlando?

Capite che lo scopo della decomposizione di Fourier è quello di ottenere un insieme di armoniche (sinusoidi) di diversa frequenza, ampiezza e spostamento di fase, in modo che quando le sommate ottenete qualcosa di simile alla funzione originale dalla serie di dati.

Ogni sinusoide è come una funzione infinita e non ha un bordo sinistro o destro. Per estrapolarlo, devi solo continuarlo, non unire il bordo "sinistro" al bordo "destro".

E la periodicità di questa somma armonica non sarà uguale all'intervallo di campionamento dei dati originali approssimati, ma sarà uguale alla distanza tra i momenti in cui tutte le armoniche di diverso spostamento di fase di frequenza ritornano simultaneamente ai loro valori di partenza, e non il fatto che questo possa accadere, perché può accadere solo se tutte le frequenze delle armoniche sono multipli dello stesso valore.

La linea blu è l'approssimazione, la linea rossa è l'estrapolazione.

Questa stessa "distanza tra i momenti in cui tutti gli spostamenti di fase..." nella serie di Fourier è esattamente uguale a un periodo, poiché gli argomenti delle funzioni trigonometriche in essa sono x, 2x, 3x,...nx, e i loro periodi sono 1, 2, 3...n volte comuni, rispettivamente. A causa di questo tale insieme di funzioni trigonometriche ha la proprietà dell'ortogonalità che risulta nell'indipendenza dei coefficienti dell'espansione di Fourier l'uno dall'altro e dal numero di frequenze usate per l'espansione. Avendo calcolato i coefficienti di espansione per n=1 (a1 e b1) sappiamo già che questi valori non cambieranno se troviamo ai e bi nell'espansione con 5 frequenze. Questo è il bello.

Perché, non è quello che state facendo? I valori dei coefficienti della prima decomposizione cambiano quando si cambia il numero di armoniche considerate?

 
Vladyslav Goshkov:

...

Esiste una speciale tecnica di estrapolazione di Fourier. Si fa una decomposizione in armoniche, si estrapolano le ampiezze, e poi si raccolgono le armoniche con questa ampiezza variabile. Non ricordo esattamente, ma fa qualcosa del genere. C'è un esempio di questo metodo qui nel codice base.

 
Maxim Dmitrievsky:

Tutti l'hanno capito, solo che non sanno come fare

una trasformazione casuale di caratteristiche per una rete neurale, come funzione di uscita, in modo che nuovi dati possano essere sostituiti

Molto interessante)) "trasformazione di tratti per una rete neurale". Dove una rete neurale ha delle caratteristiche? Una rete neurale ha ingressi e uscite. Con il metodo deduttivo concludiamo che è l'ingresso di questi segni alla rete neurale. Ma!!! "...come funzione di uscita"...

È un fiasco, Marivanna, un fiasco!

 
Vladimir:

Questa stessa "distanza tra i momenti in cui tutti gli spostamenti di fase..." nella serie di Fourier è esattamente uguale al periodo, poiché gli argomenti delle funzioni trigonometriche in essa sono x, 2x, 3x,...nx, e i loro periodi rientrano in un comune 1, 2, 3...n volte, rispettivamente. A causa di questo tale insieme di funzioni trigonometriche ha la proprietà dell'ortogonalità che risulta nell'indipendenza dei coefficienti dell'espansione di Fourier l'uno dall'altro e dal numero di frequenze usate nell'espansione. Avendo calcolato i coefficienti di espansione per n=1 (a1 e b1) sappiamo già che questi valori non cambieranno se troviamo ai e bi nell'espansione con 5 frequenze. Questo è il bello.

Perché, è diverso per te? I valori dei coefficienti della prima decomposizione cambiano quando si cambia il numero di armoniche prese in considerazione?

No, questo algoritmo per trovare le armoniche non usa la trasformata veloce di Fourier mautilizza l'algoritmo di calcolo della frequenza di Queen-Fernandez. (codice sorgente) A proposito, non sei tu l'autore? Il nome è lo stesso, ma i profili sono diversi.

Le frequenze sono calcolate in modo sequenziale e non sono multipli l'una dell'altra. Questo può essere visto sia dalla gif animata che dal codice che ho presentato sopra e ora.
Ecco un esempio di coefficienti di frequenza armonica da questo esempio (appena stampato w):

2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 1 = 0.00492908
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 2 = 0.01176861
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 3 = 0.02124126
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 4 = 0.02651676
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 5 = 0.03511149
2018.08.24 00:22:11.922 !Fourier (EURUSD,M1)    Гармоника 6 = 0.01191667
2018.08.24 00:22:11.922 !Fourier (EURUSD,M1)    Гармоника 7 = 0.00586503
2018.08.24 00:22:11.922 !Fourier (EURUSD,M1)    Гармоника 8 = 0.04684633
2018.08.24 00:22:11.923 !Fourier (EURUSD,M1)    Гармоника 9 = 0.07585431
2018.08.24 00:22:11.923 !Fourier (EURUSD,M1)    Гармоника 10 = 0.05593456
File:
6Fourier.mq5  16 kb
Motivazione: