Eu fiz uma dessas coisas uma vez ... - página 2

 
Você já tentou esta aproximação https://ru.wikipedia.org/wiki/Кубический_сплайн? É uma função embutida no Matcad. Às vezes ela se torna muito agradável. Eu nem sequer tentei programá-la em MQL (eu sei como sou lento). Se você fizer isso, seria interessante e, se necessário, eu posso ajudá-lo a comparar os cálculos do matcad com o código MQL.
 
Prival:
Você já tentou esta aproximação https://ru.wikipedia.org/wiki/Кубический_сплайн? É uma função embutida em Matkadec. Às vezes ela se torna muito agradável. Eu nem sequer tentei programá-la em MQL, já que não sou muito habilidoso. Se você fizer isso, seria interessante e, se necessário, eu posso ajudá-lo a comparar os cálculos do matcad com os do MQL.

A questão é que a aproximação em si não me interessa muito, estou interessado na possibilidade de extrapolação. E é desejável ver algum significado físico por trás disso. E as estrias não parecem ter sido projetadas para isso. Que sentido físico pode estar por trás das estrias?

A propósito, estávamos na base do primeiro nome, não estávamos?

 
Prival:
Ainda nem sequer tentei programá-lo em MQL. Vendo seus códigos, entendo que você é bom nisso. Se você o fizer de repente, seria interessante, e se precisar de ajuda para comparar os cálculos do matcad e o código MQL

Programar a manivela é simplesmente não conhecer algumas regras simples para escrever programas cuidadosamente. Assim que se compreende, o desleixo desaparece de imediato. A propósito, este código também sofre de desleixo - o corpo da função principal chamada principal não deve conter código de cálculo, por exemplo, loops e tudo deve ser enrolado em uma função.

 
Andrei01:

A propósito, este código também sofre de alguma manivela - o corpo da função principal chamada função não deve conter nenhum código computacional, por exemplo, loops e tudo deve ser colapsado em uma função.


De modo geral, evitar algumas das regras que são corretas para grandes projetos pode, às vezes, acelerar um programa. Isto é especialmente verdadeiro para a MQL, considerando as especificidades da aplicação. Posso confessar que às vezes uso código mais ou menos estruturado para depuração e depois o mudo de volta para código linear :). Embora provavelmente seja um extremismo :).

Mas neste caso eu pretendia um rápido olhar "e se", então é código linear em sua forma mais pura.

 
Andrei01:

Programar a manivela é simplesmente não conhecer algumas regras simples para escrever programas cuidadosamente.

Besteira.

Assim que se compreende, o desleixo desaparece imediatamente.

Besteira.

O corpo da função principal a ser chamada não deve conter código computacional

Por que isso acontece?

Candidato:

Um dia de repente percebi uma coisa simples: a aproximação dos mínimos quadrados se resume essencialmente à minimização de uma combinação linear de vetores. Ou seja, você pode fazer algum tipo de função aproximadora universal. Dito e feito, aqui está o cabeçalho da função:

Onde você estava antes? Ainda ontem acabei de escrever a mesma coisa, embora em C++. Obrigado, também será útil.

 
Candid:

De modo geral, não utilizar algumas das regras que são corretas para grandes projetos pode, às vezes, acelerar consideravelmente um programa. Isto é especialmente verdadeiro para a MQL, dadas as especificidades da aplicação. Posso confessar que às vezes uso código mais ou menos estruturado para depuração e depois o mudo de volta para código linear :). Mas isso é provavelmente um extremismo :).

Neste caso, eu pretendia um rápido olhar "e se", portanto é um código linear em sua forma mais pura.

Concordo que na fase de depuração é conveniente manter alguns fragmentos temporariamente abertos... E na versão final você pode desenrolar todo o código tornando-o ilegível e melhorando insignificantemente a performance, mas na prática a legibilidade do código é sempre mais importante especialmente para modificações adicionais e busca de bugs.

Além disso, não é o fato de que o colapso em função irá retardar o programa notavelmente - é muito melhor otimizar um algoritmo de cálculo onde muitas operações podem não ter sentido.

 
TheXpert:

1. Lixo.

1. Besteira.

2) Por que isso acontece?

1) Por que isso é uma besteira? Qual é a base para essa conclusão?

2. A estrutura de um programa normalmente escrito (de qualquer grau de complexidade) deve ser totalmente visível e legível na função principal.

Se um programador é desajeitado e descuidado, ele é incapaz de fazer isso, o que torna o programa mal legível, inclusive para o próprio programador desajeitado, o que leva a uma maior multiplicação da desajeitação em qualquer modernização e modificação de código.

 
Andrei01:

1 Por que este absurdo? Qual é a base para essa conclusão?

2. A estrutura de um programa normalmente escrito (de qualquer grau de complexidade) deve ser totalmente visível e legível na função principal.

Se um programador é desajeitado e descuidado, ele não é capaz de fazer isso, o que torna o programa mal legível, inclusive para o próprio programador desajeitado, o que leva a uma maior multiplicação da desajeitação em qualquer modernização e mudança de código.


Talvez você pudesse fazer uma aula magistral em vez de blasfemar os outros.

Normalmente, tendo dito "A", você também deveria dizer "B".

 
Vinin:


Talvez você possa mostrar uma aula magistral em vez de blasfemar os outros.

Normalmente você tem que dizer "A" e você tem que dizer "B".

Em que exatamente você está interessado, poderia especificar? Como minimizar o código em uma função para que a função principal não tenha o código de cálculo disperso aqui e ali?

 
TheXpert:
Gg :) e se você não tiver esta função mais importante? De qualquer forma, sem comentários :)
Você faz sem o início da função principal de chamada ()? Você não ouviu nada sobre esta função? :)
Razão: