4 August 2022
4 August 2022
Terminal
MQL5
//--- matrix a= {{1, 4}, {9, 16}}; Print("matrix a=\n",a); a=MathSqrt(a); Print("MatrSqrt(a)=\n",a); /* matrix a= [[1,4] [9,16]] MatrSqrt(a)= [[1,2] [3,4]] */Bei MathMod und MathPow kann das zweite Element entweder ein Skalar oder eine Matrix/ein Vektor mit der entsprechenden Größe sein.
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Use the initializing function to populate the vector vector r(10, ArrayRandom); // Array of random numbers from 0 to 1 //--- Calculate the average value double avr=r.Mean(); // Array mean value vector d=r-avr; // Calculate an array of deviations from the mean Print("avr(r)=", avr); Print("r=", r); Print("d=", d); vector s2=MathPow(d, 2); // Array of squared deviations double sum=s2.Sum(); // Sum of squared deviations //--- Calculate standard deviation in two ways double std=MathSqrt(sum/r.Size()); Print(" std(r)=", std); Print("r.Std()=", r.Std()); } /* avr(r)=0.5300302133243813 r=[0.8346201971495713,0.8031556138798182,0.6696676534318063,0.05386516922513505,0.5491195410016175,0.8224433118686484,... d=[0.30458998382519,0.2731254005554369,0.1396374401074251,-0.4761650440992462,0.01908932767723626,0.2924130985442671, ... std(r)=0.2838269732183663 r.Std()=0.2838269732183663 */ //+------------------------------------------------------------------+ //| Fills the vector with random values | //+------------------------------------------------------------------+ void ArrayRandom(vector& v) { for(ulong i=0; i<v.Size(); i++) v[i]=double(MathRand())/32767.; }
Verbesserte mathematische Funktionen für Operationen mit dem Typ float.
Die neu implementierte Möglichkeit, mathematische Funktionen auf
'float'-Matrizen und -Vektoren anzuwenden, hat eine Verbesserung der auf
'float'-Skalare angewandten mathematischen Funktionen ermöglicht. Zuvor
wurden diese Funktionsparameter bedingungslos in den Typ "double"
umgewandelt, dann wurde die entsprechende Implementierung der
mathematischen Funktion aufgerufen, und das Ergebnis wurde in den Typ
"float" zurückgewandelt. Jetzt werden die Operationen ohne zusätzliches
Typenumwandlung (Casting) implementiert.
Das folgende Beispiel zeigt den Unterschied in den mathematischen Sinusberechnungen:
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Array of random numbers from 0 to 1 vector d(10, ArrayRandom); for(ulong i=0; i<d.Size(); i++) { double delta=MathSin(d[i])-MathSin((float)d[i]); Print(i,". delta=",delta); } } /* 0. delta=5.198186103783087e-09 1. delta=8.927621308885136e-09 2. delta=2.131878673594656e-09 3. delta=1.0228555918923021e-09 4. delta=2.0585739779477308e-09 5. delta=-4.199390279957527e-09 6. delta=-1.3221741035351897e-08 7. delta=-1.742922250969059e-09 8. delta=-8.770715820283215e-10 9. delta=-1.2543186267421902e-08 */ //+------------------------------------------------------------------+ //| Fills the vector with random values | //+------------------------------------------------------------------+ void ArrayRandom(vector& v) { for(ulong i=0; i<v.Size(); i++) v[i]=double(MathRand())/32767.; }
AF_ELU | Exponential-Linear-Einheit |
AF_EXP | Exponential |
AF_GELU | Gaußscher Fehler Lineare Einheit |
AF_HARD_SIGMOID | Hartes Sigmoid |
AF_LINEAR | Linear |
AF_LRELU | Undichte rektifizierte Lineareinheit |
AF_RELU | Rektifizierte Lineareinheit |
AF_SELU | Skalierte Exponential-Linear-Einheit |
AF_SIGMOID | Sigmoid |
AF_SOFTMAX | Softmax |
AF_SOFTPLUS | Softplus |
AF_SOFTSIGN | Softsign |
AF_SWISH | Swish |
AF_TANH | Hyperbolischer Tangens |
AF_TRELU | Schwellenwerteinheit (Rectified Linear Unit) |
LOSS_MSE | Mittlerer quadratischer Fehler |
LOSS_MAE | Mittlerer absoluter Fehler |
LOSS_CCE | Kategoriale Kreuzentropie |
LOSS_BCE | Binäre Kreuzentropie |
LOSS_MAPE | Mittlerer absoluter prozentualer Fehler |
LOSS_MSLE | Mittlerer quadratischer logarithmischer Fehler |
LOSS_KLD | Kullback-Leibler Divergenz |
LOSS_COSINE | Kosinus-Ähnlichkeit/-Nähe |
LOSS_POISSON | Poisson |
LOSS_HINGE | Hinge-Verlustfunktion |
LOSS_SQ_HINGE | Quadratische Hinge-Verlustfunktion |
LOSS_CAT_HINGE | Kategoriale Hinge-Verlustfunktion |
LOSS_LOG_COSH | Logarithmus des Hyperbolischen Kosinus |
LOSS_HUBER | Huber-Verlustfunktion |
int cl_ctx; //--- Initializing the OpenCL context if((cl_ctx=CLContextCreate(CL_USE_GPU_DOUBLE_ONLY))==INVALID_HANDLE) { Print("OpenCL not found"); return; }
CalendarValueLast(change, result, "", "EUR")
MetaEditor
'levels.bmp' as 'uint levels[18990]'