基于傅里叶的假说 - 页 10

 

这是我的C代码,日期是1995年3月(夹层里的灰尘真多!)如果它没有被擦掉,那它一定在工作。


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

当然,这是个缓慢的方法。我想知道你是如何得到100x100矩阵的东西的。

>> 我也加入进来。我也有点吃惊。

(深思熟虑地)显示了MQL4编译器的高效率。

 

Mathemat,AlexEro

同事们,不要挑剔,我们看到的第一个算法已经实施。我们将加快它的速度,深化它,并改进它。

 
grasn >> :

PS: 更正一下。如果是1:1,而且输入行是引用的,那就很奇怪了。如果图片是稳定的,那么它已经非常奇怪了。

是的,1比1,我发现一个错字。结果是这样的。


唉,这离可靠的预测还有一段距离......。

 
grasn >> :

给Mathemat, AlexEro

同事们,不要挑剔,我们看到的第一个算法已经实施。我们将加快它的速度,深化它,并改进它。



真的吗,同事们?我们不是在挑剔你!你在哪里看到的?我们只是指出了我们自己很久以前就打过的耙子。我们还告诉你如何绕过它们。你宁愿什么都不说吗?

 

赤城

在前一页用大字警告过 你。你可能会花上几年的时间而找不到任何可接受的解决方案,或者你可能在10分钟内就能解决所有问题。但我还是建议把它留给甜点 :o)。


AlexEro

我只是提醒你,到那一刻为止,除了伊尔努尔的 作品,根本没有图书馆 :o)

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

这是正确的,它值得保留...

为了解决这个问题,我想展示一张有典型结果的图片。

蓝色 - 价格

红色--用余弦变换预测,起点为0

紫色--同样的曲线,但从预测的起点开始计算(100)。

绿色--基于价格曲线的简单预测(我使用内置的预测功能)。

 
grasn >> :

对AlexEro

我只是提醒,到现在为止,除了伊尔努尔的作品外,根本就没有图书馆 :o)

没有....

 
AlexEro >> :

没有....

人们不禁要问,你又去哪里了?:о))))))