푸리에 기반 가설 - 페이지 10

 

이것은 1995년 3월 3일의 제 C 코드입니다.


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 >> :

물론 느린 방법. 일반적으로 100 x 100 행렬에 대한 것을 어떻게 얻었는지 놀랍습니다.

나는 가입한다. 또한 조금 놀랐습니다.

(고려하여) 이것은 원칙적으로 MQL4 컴파일러의 높은 효율성을 나타냅니다.

 

Mathemat 에게, AlexEro

동료 여러분, 당신 의 잘못을 찾아도 괜찮습니다. 처음 만난 알고리즘이 구현 되었습니다. 시간이 지남에 따라 가속화하고 심화되고 개선됩니다.

 
grasn >> :

추신: 부록. 1:1이고 입력된 번호가 따옴표라면 오히려 이상합니다. 사진이 안정적이면 정말 이상합니다.

예, 1 in 1. 오타를 찾았습니다. 결과는 다음과 같습니다.


아아, 아직 신뢰할 수 있는 예측과는 거리가 멉니다...

 
grasn >> :

Mathemat에게, AlexEro

동료 여러분, 당신의 잘못을 찾아도 괜찮습니다. 가장 먼저 만난 알고리즘이 구현되었습니다. 시간이 지남에 따라 가속화하고 심화되고 개선됩니다.



뭐야, 동료?! 우리는 논쟁하지 않습니다! 어디서 봤어? 우리는 오래 전에 우리 자신이 쳤던 갈퀴를 즉시 가리 킵니다. 그리고 우리는 그들 주위를 돌아다니는 방법을 보여줍니다. 침묵을 유지하는 더 좋은 방법은 무엇입니까?

 

평등하다

그리고 나는 마지막 페이지에 큰 글자로 경고했습니다 . 몇 년을 보낼 수 있지만 수용 가능한 솔루션을 찾지 못하거나 10분 안에 모든 것을 알아낼 수 있습니다. 나는 여전히 디저트로 남겨 두는 것이 좋습니다 :o)


알렉스 에로에게

네, 이 시점까지는 Ilnur의 개발을 제외하고는 라이브러리가 전혀 없었다는 것을 상기시켜 드립니다 :o)

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

확실히 떠날 가치가 있습니다 ...

질문을 마무리하기 위해 다음은 일반적인 결과를 보여주는 그림입니다.

파란색 - 가격

빨간색 - 0에서 시작하는 코사인 변환이 있는 프로그램에 대한 예측

보라색 - 동일한 곡선이지만 예측 시작점(100)에서 계산됨

녹색 - 가격 곡선을 기반으로 한 예측일 뿐입니다(내장된 예측 기능을 사용했습니다).

 
grasn >> :

알렉스에로에게

네, 지금까지는 Ilnur의 개발을 제외하고는 라이브러리가 전혀 없었다는 것을 상기시켜 드립니다 :o)

당신 은 그것을 가지지 않았다 ...

 
AlexEro >> :

당신 은 그것을 가지지 않았다 ...

묻는 것만 남아 있으며, 당신은 어디에 있었습니까? :에 대한))))))