E se calcolate un array di pesi quadratici nella funzione init(), potete ottenere un bel risultato a tutti. Inoltre, i calcoli possono essere ottimizzati usando IndicatorCounted(). Beh, si blocca per i primi secondi quando i periodi sono lunghi, quindi che diavolo...
E se calcolate un array di pesi quadratici nella funzione init(), potreste ottenere un bel risultato a tutti. Inoltre, i calcoli possono essere ottimizzati usando IndicatorCounted(). Beh, si blocca per i primi secondi quando i periodi sono lunghi, quindi che diavolo...
L'ho provato. Calcola una regressione mobile usando una matrice pronta alla velocità di un normale mago. L'unico inconveniente è che l'array risulta essere di dimensione A[][20] (non ci sono strutture su isi), e devo ricordare l'indirizzo numerico di una cella come su BESM-3)))
Così si blocca per i primi secondi durante i periodi lunghi, quindi che diavolo...
Non credo che ci dovrebbe essere una notevole lentezza nel primo calcolo. Ma, come sembra ora, dovremmo prima calcolare i valori in uscita (sembra che non abbia senso ricordarli), poi calcolare le somme ridotte, poi calcolare di nuovo i loro nuovi valori e, infine, aggiungere i valori in entrata. Tutto questo per tre somme (somma propria, derivata prima e seconda). Se il periodo è piccolo, questo sarebbe sufficiente per il calcolo completo dell'unica somma necessaria. In generale, una forzatura così estrema è giustificata solo se l'algoritmo è progettato per l'ottimizzazione nel tester, imho.
La cosa interessante è che indipendentemente dall'ordine del polinomio, il tempo di calcolo sarà circa lo stesso (se l'array di pesi è preparato in anticipo).
È troppo difficile dare una spiegazione, Dimitri, soprattutto sul significato dei parametri? L'artigianato è, per usare un eufemismo, di altissima qualità.
Polinomio: K0*X^0+K1*X^1+K2*X^2+K3*X^3..., i coefficienti K sono definiti nella linea K="1/5/6/1/-20" (K0=1, K2=5...). L'argomento X cambia nell'intervallo da ArgumentMin a ArgumentMax e si ottiene una certa curvatura, che può essere visualizzata in ControlMode=true, e poi questa curvatura viene utilizzata come coefficienti per lo scorrimento.
Sarebbe più interessante fare una spline, perché non è facile ottenere la forma della curva desiderata con questo polnymode.
Il valore del bordo ( X 1, bordo destro) per il polinomio cubico costruito usando MNC, per sette punti della serie, ( X 7*(-2)+ X 6*(4)+ X 5*(1)+ X 4*(-4)+ X 3*(-4)+ X 2*(8)+ X 1*(39))/42 . La riga da controllare è 0, 1, 8, 27, 64, 125, 216, quando si sostituiscono i primi sei numeri nella formula, il risultato dovrebbe essere 216, perché il polinomio cubico allinea la serie composta da cubi. Fonte: Kendall M e Stewart A.
A proposito, lo stesso polinomio cubico per sette punti, ma dando una stima del valore di MNC per i punti centrali, cioè
Per X 4 sarà ( X 7*(-2)+ X 6*(3)+ X 5*(6)+ X 4*(7)+ X 3*(6)+ X 2*(3)+ X 1*(-2))/21
Per X3 sarà ( X 7*(1)+ X 6*(-4)+ X 5*(2)+ X 4*(12)+ X 3*(19)+ X 2*(16)+ X 1*(-4))/42
Per X2, sarà ( X 7*(4)+ X 6*(-7)+ X 5*(-4)+ X 4*(6)+ X 3*(16)+ X 2*(19)+ X 1*(8))/42
In generale, queste sono formule di interpolazione, quindi per estrapolare, per esempio, a X 0, cioè nel futuro, oltre la serie esistente, bisogna cercare altri coefficienti nella formula.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
E se calcolate un array di pesi quadratici nella funzione init(), potete ottenere un bel risultato a tutti. Inoltre, i calcoli possono essere ottimizzati usando IndicatorCounted(). Beh, si blocca per i primi secondi quando i periodi sono lunghi, quindi che diavolo...
E se calcolate un array di pesi quadratici nella funzione init(), potreste ottenere un bel risultato a tutti. Inoltre, i calcoli possono essere ottimizzati usando IndicatorCounted(). Beh, si blocca per i primi secondi quando i periodi sono lunghi, quindi che diavolo...
L'unico inconveniente è che l'array risulta essere di dimensione A[][20] (non ci sono strutture su isi),
e devo ricordare l'indirizzo numerico di una cella come su BESM-3)))
Così si blocca per i primi secondi durante i periodi lunghi, quindi che diavolo...
In generale, una forzatura così estrema è giustificata solo se l'algoritmo è progettato per l'ottimizzazione nel tester, imho.
Non è facile:-)
Polinomio: K0*X^0+K1*X^1+K2*X^2+K3*X^3..., i coefficienti K sono definiti nella linea K="1/5/6/1/-20" (K0=1, K2=5...). L'argomento X cambia nell'intervallo da ArgumentMin a ArgumentMax e si ottiene una certa curvatura, che può essere visualizzata in ControlMode=true, e poi questa curvatura viene utilizzata come coefficienti per lo scorrimento.
Sarebbe più interessante fare una spline, perché non è facile ottenere la forma della curva desiderata con questo polnymode.
La curva è una specie di funzione di peso dei k-tipi per la macchina ondulatrice?
Sì, è così.
Il valore del bordo ( X 1, bordo destro) per il polinomio cubico costruito usando MNC, per sette punti della serie, ( X 7*(-2)+ X 6*(4)+ X 5*(1)+ X 4*(-4)+ X 3*(-4)+ X 2*(8)+ X 1*(39))/42 . La riga da controllare è 0, 1, 8, 27, 64, 125, 216, quando si sostituiscono i primi sei numeri nella formula, il risultato dovrebbe essere 216, perché il polinomio cubico allinea la serie composta da cubi. Fonte: Kendall M e Stewart A.
A proposito, lo stesso polinomio cubico per sette punti, ma dando una stima del valore di MNC per i punti centrali, cioè
Per X 4 sarà ( X 7*(-2)+ X 6*(3)+ X 5*(6)+ X 4*(7)+ X 3*(6)+ X 2*(3)+ X 1*(-2))/21
Per X3 sarà ( X 7*(1)+ X 6*(-4)+ X 5*(2)+ X 4*(12)+ X 3*(19)+ X 2*(16)+ X 1*(-4))/42
Per X2, sarà ( X 7*(4)+ X 6*(-7)+ X 5*(-4)+ X 4*(6)+ X 3*(16)+ X 2*(19)+ X 1*(8))/42
In generale, queste sono formule di interpolazione, quindi per estrapolare, per esempio, a X 0, cioè nel futuro, oltre la serie esistente, bisogna cercare altri coefficienti nella formula.