Hipótese baseada em Fourier - página 10

 

Este é meu código C, datado de 03.1995 (que confusão empoeirada no mezanino!) Se ele não foi apagado, deve estar funcionando.


int Invert (double * t)
/*---------------------------------------------------------*
 *   Вычисление обратной матрицы путем ее перевода   	   *
 *   к треугольному виду  с последующим умножением 	   *
 *      на преобразованную единичную матрицу.        	   *
 *   Обратная матрица распологается на месте исходной.	   *
 *   Требуется <buf> область размерности t[1..NM*NM] 	   *
 *---------------------------------------------------------*
 *  t[0] =  NM  - размерность матрицы.               	   *
 *  t[1..NM*NM] - исходная (обратная) матрица по столбцам. *
 *  e[1..NM*NM] - элементы единичной матрицы.       	   *
 *  ВОЗВРАТ :  0 - OK                           	   *
 *---------------------------------------------------------*/
{   int    js, jk, jj, jp, n= t[0];
    double a1, a2, * e=(double *) buf;
//  -----------  Заполнение Е матрицы  -----------
    for ( jk = 1; jk <= n; jk++) {
       jp = n*( jk-1);
       for ( js = 1; js <= n; js++) {
	  e[ js+ jp] = t[ js+ jp];  t[ js+ jp] = 0.0; }
       t[ jk+ jp] = 1.0; }
// ----------------  Проход по столбцам ----------
    for ( jk = 1; jk < n; jk++) {
//  ---------------  Обнуление столбца  ----------
       a1 = e[( jp = n*( jk-1))+ jk];  //  Диагональный элемент
       for ( js = jk+1; js <= n; js++) {
	    a2 = e[ jp+ js]/ a1;   e[ jp+ js] = 0.0;
	    for ( jj = jk+1; jj <= n; jj++)
	       e[ n*( jj-1)+ js] -= a2* e[ n*( jj-1)+ jk];
	    for ( jj = 1; jj <= n; jj++)
	       t[ n*( jj-1)+ js] -= a2* t[ n*( jj-1)+ jk]; }
    } //  END for (JK)
//  -------  Определение обратной матрицы  -------
    for ( js = n; js > 0; js--)
       for ( jk = 1; jk <= n; jk++) {
	  for ( a1 = 0.0, jj = js+1; jj <= n; jj++)
	     a1 += e[ n*( jj-1)+ js]* t[ n*( jk-1)+ jj];
	  t[ n*( jk-1)+ js] = ( t[ n*( jk-1)+ js]- a1)/ e[ n*( js-1)+ js]; }
    return 0;
}
/**********************************************************************/
 
Mathemat >> :

É claro, é um método lento. Como será que você conseguiu alguma coisa para uma matriz 100x100?

>> Eu participo. Eu também estou um pouco surpreso.

(ponderadamente) mostra a alta eficiência do compilador MQL4.

 

para Mathemat, AlexEro

Colegas, não sejam picuinhas, o primeiro algoritmo que vimos foi implementado. Vamos acelerá-lo, aprofundá-lo e melhorá-lo.

 
grasn >> :

PS: Uma correção. Se 1:1 e a linha de entrada for citada, é muito estranho. Se o quadro é estável, já é realmente estranho.

Sim, 1:1. encontrei uma gralha. Aqui está o resultado.


Infelizmente, ainda está muito longe de uma previsão confiável.

 
grasn >> :

para Mathemat, AlexEro

Colegas, não sejam picuinhas, o primeiro algoritmo que vimos foi implementado. Vamos acelerá-lo, aprofundá-lo e melhorá-lo.



Realmente, colega?! Nós não estamos nos metendo com você! Onde você viu isso? Estamos apenas apontando o ancinho que nós mesmos atingimos há muito tempo. E nós lhe mostramos como contorná-los. Você prefere não dizer nada?

 

para a equântida

Eu o adverti na página anterior em letras grandes. Você pode passar anos e anos e não encontrar nenhuma solução aceitável, ou pode descobrir tudo isso em 10 minutos. Mas eu ainda recomendo deixá-lo para a sobremesa :o).


para AlexEro

Só estou lembrando que até aquele momento não havia nenhuma biblioteca, exceto o trabalho da Ilnur:o)

 
grasn >>:А я предупреждал на прошлой странице крупными буквами. Можно годы потрать, но не найти приемлемого решения, а можно и за 10 мин во всем разобраться. Все же рекомендую оставить на десерт :о)

É isso mesmo, vale a pena manter...

Para encerrar a questão, gostaria de mostrar uma imagem com resultados típicos:

Azul - preço

Vermelho - previsão com transformação cosseno com início em 0

roxo - a mesma curva, mas calculada a partir do ponto de partida da previsão (100)

Verde - previsão simples baseada na curva de preços (usei a função de previsão integrada)

 
grasn >> :

para AlexEro

Só estou lembrando, que até este momento não havia nenhuma biblioteca, exceto o trabalho de Ilnur :o)

você não o tinha....

 
AlexEro >> :

você não o tinha....

Resta perguntar, e onde você esteve? :о))))))