Ho fatto una di queste cose una volta ... - pagina 2

 
Hai provato questa approssimazione https://ru.wikipedia.org/wiki/Кубический_сплайн? È una funzione integrata in Matcad. A volte risulta molto bella. Non ho nemmeno provato a programmarla in MQL (so quanto sono lento di mente). Se lo fai, sarebbe interessante e se necessario potrei aiutarti a confrontare i calcoli di matcad con il codice MQL.
 
Prival:
Hai mai provato questa approssimazione https://ru.wikipedia.org/wiki/Кубический_сплайн? È una funzione integrata in Matkadec. A volte risulta molto bella. Non ho nemmeno provato a programmarla in MQL, dato che non sono molto pratico. Se lo fai, sarebbe interessante e se necessario potrei aiutarti a confrontare i calcoli di matcad con il codice MQL.

Il punto è che l'approssimazione in sé non mi interessa troppo, mi interessa la possibilità di estrapolazione. Ed è auspicabile vedere qualche significato fisico dietro di esso. E le scanalature non sembrano essere progettate per questo. Quale senso fisico può esserci dietro le spline?

A proposito, ci davamo del tu, vero?

 
Prival:
Non ho nemmeno provato a programmarlo in MQL, ma vedendo i tuoi codici, capisco che sei bravo. Se lo fai improvvisamente, sarebbe interessante, e se hai bisogno di aiuto per confrontare i calcoli di matcad e il codice MQL

Programmare è semplicemente non conoscere alcune semplici regole per scrivere programmi con attenzione. Non appena li si comprende, non è più così. A proposito, anche questo codice soffre di sciatteria - il corpo della funzione principale chiamata non deve contenere codice di calcolo, per esempio i loop e tutto deve essere arrotolato in una funzione.

 
Andrei01:

Tra l'altro, questo codice soffre anche di un po' di irritazione - il corpo della funzione principale chiamata non dovrebbe contenere alcun codice computazionale, per esempio i loop, e tutto dovrebbe essere arrotolato in una funzione.


In generale, evitare alcune regole che sono corrette per i grandi progetti può talvolta accelerare un programma. Questo è particolarmente vero per MQL, considerando le specificità dell'applicazione. Posso confessare che a volte uso del codice più o meno strutturato per il debug e poi lo cambio di nuovo in codice lineare :). Anche se probabilmente è un estremismo :).

Ma in questo caso intendevo un rapido sguardo "what-if", quindi è codice lineare nella sua forma più pura.

 
Andrei01:

Programmare è semplicemente non conoscere alcune semplici regole per scrivere programmi con attenzione.

Stronzate.

Non appena uno li capisce, la sciatteria scompare immediatamente.

Stronzate.

Il corpo della funzione principale da chiamare non deve contenere codice computazionale

Perché?

Candido:

Un giorno mi sono improvvisamente reso conto di una cosa semplice: l'approssimazione dei minimi quadrati si riduce essenzialmente alla minimizzazione di una combinazione lineare di vettori. Cioè, si può fare una specie di funzione approssimatrice universale. Detto e fatto, ecco l'intestazione della funzione:

Dov'eri prima? Proprio ieri ho finito di scrivere la stessa cosa, anche se in C++. Grazie, tornerà utile anche a me.

 
Candid:

In generale, non usare alcune delle regole che sono corrette per i grandi progetti può a volte accelerare notevolmente un programma. Questo è particolarmente vero per MQL, date le specificità dell'applicazione. Posso confessare che a volte uso del codice più o meno strutturato per il debug e poi lo cambio di nuovo in codice lineare :). Questo è probabilmente un estremismo però :).

In questo caso intendevo un rapido sguardo "what-if", quindi è codice lineare nella sua forma più pura.

Sono d'accordo che nella fase di debugging è conveniente tenere alcuni frammenti temporaneamente aperti... E nella versione finale si può srotolare l'intero codice rendendolo illeggibile e migliorando insignificantemente le prestazioni, ma in pratica la leggibilità del codice è sempre più importante soprattutto per ulteriori modifiche e ricerca di bug.

Inoltre, non è il fatto che collassare in funzione rallenti sensibilmente il programma - è molto meglio ottimizzare un algoritmo di calcolo dove molte operazioni possono essere senza senso.

 
TheXpert:

1. Spazzatura.

1. Stronzate.

2. Perché?

1. Perché è una stronzata? Qual è la base di questa conclusione?

2. La struttura di un programma scritto normalmente (di qualsiasi grado di complessità) deve essere completamente visibile e leggibile nella funzione principale.

Se un programmatore è maldestro e sciatto, non è in grado di farlo, il che rende il programma mal leggibile, anche per il programmatore maldestro stesso, il che porta a un'ulteriore moltiplicazione della goffaggine a qualsiasi modernizzazione e modifica del codice.

 
Andrei01:

1 Perché è un'assurdità? Qual è la base di questa conclusione?

2. La struttura di un programma scritto normalmente (di qualsiasi grado di complessità) deve essere completamente visibile e leggibile nella funzione principale.

Se un programmatore è maldestro e sciatto, non è in grado di farlo, il che rende il programma mal leggibile, anche per il programmatore maldestro stesso, il che porta ad un'ulteriore moltiplicazione della goffaggine ad ogni modernizzazione e cambiamento di codice.


Forse potresti fare una master class invece di bestemmiare gli altri.

Di solito, avendo detto "A" si dovrebbe dire anche "B".

 
Vinin:


Forse puoi mostrare una master class invece di bestemmiare gli altri.

Di solito si deve dire "A" e si deve dire "B".

Cosa ti interessa esattamente, potresti specificare? Come minimizzare il codice in una funzione in modo che la funzione principale non abbia codice di calcolo sparso qua e là?

 
TheXpert:
Gg :) e se non hai questa funzione più importante? Comunque, no comment :)
Fate a meno della funzione principale richiamabile start()? Non hai sentito nulla di questa funzione? :)
Motivazione: