MetaTrader 5 / 程序库

矩阵运算库 - MetaTrader 5程序库

2183
(32)

该库提供了简单矩阵运算:加,减,乘,求逆矩阵。

文件matrix.mqh必须放在文件夹terminal_data_folder/MQL5/Include/下面。

简单例子:

求F3矩阵的逆矩阵: F3=((F1+F2)*F2)/10-F2.

F1 和 F2 是 3х3 矩阵.

#include <Matrix.mqh>  //+------------------------------------------------------------------+ //| Script program start function                                    | //+------------------------------------------------------------------+ void OnStart()   { //---    CMatrix          *F1;    CMatrix          *F2;    CMatrix          *F3;    F1=new CMatrix(3,3);    F2=new CMatrix(3,3);    F3=new CMatrix(3,3);    El(F1,0,0)=1;  El(F1,0,1)=4;  El(F1,0,2)=-2;    El(F1,1,0)=-3; El(F1,1,1)=2;  El(F1,1,2)=2;    El(F1,2,0)=1;  El(F1,2,1)=0;  El(F1,2,2)=-2;    El(F2,0,0)=2;  El(F2,0,1)=2;  El(F2,0,2)=-3;    El(F2,1,0)=-1; El(F2,1,1)=1;  El(F2,1,2)=7;    El(F2,2,0)=3;  El(F2,2,1)=2;  El(F2,2,2)=10;    F3.Add(F1,F2); // F3=F1+F2    F3.Mul(F2);    // F3=F3*F2    F3.Mul(1./10); // F3=F3/10    F3.Sub(F2);    // F3=F3-F2    double det=F3.Inv();  // Invert F3    printf("det=%5.3f   F3[2,2]=%5.3f",det,El(F3,2,2));    delete F1;    delete F2;    delete F3;   }

日志输出:

det=6.624   F3[2,2]=0.548

由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/601