Hipótesis de Fourier - página 10

 

Este es mi código C, fechado el 03.1995 (¡qué desorden polvoriento en el entresuelo!) Si no se ha borrado, debe 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 >> :

Por supuesto, es un método lento. Me pregunto cómo has conseguido algo para una matriz de 100x100.

>> Me uno a ellos. A mí también me sorprende un poco.

(con mucho cuidado) muestra la alta eficiencia del compilador MQL4.

 

a Mathemat, AlexEro

Colegas, no seáis quisquillosos, el primer algoritmo que vimos fue implementado. Lo aceleraremos, lo profundizaremos y lo mejoraremos.

 
grasn >> :

PD: Una corrección. Si es 1:1 y la fila de entrada está citada, es bastante raro. Si la imagen es fija, entonces ya es muy raro.

Sí, 1 a 1. Encontré un error tipográfico. Este es el resultado.


Por desgracia, todavía está lejos de ser una predicción fiable...

 
grasn >> :

a Mathemat, AlexEro

Colegas, no sean quisquillosos, el primer algoritmo que vimos fue implementado. Lo aceleraremos, lo profundizaremos y lo mejoraremos.



¿De verdad, colega? ¡No nos estamos metiendo contigo! ¿Dónde has visto eso? Sólo estamos señalando el rastrillo que nosotros mismos golpeamos hace mucho tiempo. Y le mostramos cómo sortearlos. ¿Prefieres no decir nada?

 

a equantis

Te lo advertí en la página anterior en letras grandes. Puede pasar años y años y no encontrar ninguna solución aceptable, o puede resolverlo todo en 10 minutos. Pero sigo recomendando dejarlo para el postre :o).


a AlexEro

Sólo te recuerdo que hasta ese momento no había ninguna biblioteca, salvo la obra de Ilnur:o)

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

Así es, vale la pena mantener...

Para cerrar el tema me gustaría mostrar una imagen con resultados típicos:

Azul - precio

Rojo - previsión con transformación coseno con inicio en 0

púrpura - la misma curva, pero calculada a partir del punto de partida de la previsión (100)

Verde - previsión simple basada en la curva de precios (he utilizado la función de predicción incorporada)

 
grasn >> :

a AlexEro

Sólo estoy recordando, que hasta este momento no había ninguna biblioteca, excepto el trabajo de Ilnur :o)

no lo tenías....

 
AlexEro >> :

no lo tenías....

Uno se queda preguntando, ¿y dónde has estado? :о))))))

Razón de la queja: