Kitaplıklar: ALGLIB - Sayısal Analiz Kütüphanesi - sayfa 2

 
Yazımı yazarken ALGLIB kullanmıştım. Hatta kütüphanenin yazarına o zaman anlamadığım bir şeyi forumda sormayı başardım. Yazar çok nazikti ve bana ayrıntılı olarak cevap verdi. Ona özel bir saygı ve hürmet duyuyorum. Bochkanov S.A.'nın çalışmalarının MQ Co tarafından fark edilmesine sevindim....
 
Bu kütüphanenin gelişi için çok heyecanlıyım. Teşekkür ederim!
 
MQ güzellikleri! Ciddi bir çalışma!

Kütüphanenin kullanımına örnek olarak MLP sinir ağına çarpım tablosunu öğretmek verilebilir.

#include <Math\Alglib\dataanalysis.mqh>
//+------------------------------------------------------------------+
#define _rand(min,max) ((rand()/(double)SHORT_MAX)*((max)-(min))+min)
//+------------------------------------------------------------------+
void OnStart()
{
   CMultilayerPerceptron net;
   CMLPReport rep;
   CMatrixDouble patterns;
   double vector[2], out[1];
   int info;
   // veri hazırlama
   patterns.Resize(100,3);
   int m=0;     // ilk kalıp
   for(int i=1; i<=10; i++)
      for(int j=1; j<=10; j++)
      {
         patterns[m].Set(0,i/10.0);       // giriş 1
         patterns[m].Set(1,j/10.0);       // giriş 2
         patterns[m].Set(2,(i*j)/100.0);  // hedef
         m++; //next pattern
      }
   // tek gizli katmanlı bir ağ oluşturma (5 nöron)
   CMLPBase::MLPCreate1(2,5,1,net);
   // ağ eğitimi
   CMLPTrain::MLPTrainLM(net,patterns,100,1 e-3,5,info,rep);     //Levenberg-Marquardt
   //CMLPTrain::MLPTrainLBFGS(net,paterns,100,1e-3,10,0.001,1000,info,rep);//L-BFGS
   Print("Info=",info,"  Error=",CMLPBase::MLPError(net,patterns,100)); 
   // tamsayı verilerinde ağı kontrol edin
   string s="Test 1 >> ";
   for(int i=1; i<=10; i++)
   {
      int d1=(int)_rand(1,10), d2=(int)_rand(1,10);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CMLPBase::MLPProcess(net,vector,out);
      s+=(string)d1+"*"+(string)d2+"="+DoubleToString(out[0]*100,0)+" // ";
   }
   Print(s);
   // kesirli veriler üzerinde ağı kontrol edin
   s="Test 2 >> ";
   for(int i=1; i<=5; i++)
   {
      double d1=NormalizeDouble(_rand(1,10),1), d2=NormalizeDouble(_rand(1,10),1);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CMLPBase::MLPProcess(net,vector,out);
      s+=DoubleToString(d1,1)+"*"+DoubleToString(d2,1)+"="+DoubleToString(out[0]*100,2)+
         "("+DoubleToString(d1*d2,2)+") // ";
   }
   Print(s);
}
2012.10.13 12:44:31     Test_MLP(Alglib) (EURUSD,M30)   Info=2  Error=0.0005349624857861839
2012.10.13 12:44:31     Test_MLP(Alglib) (EURUSD,M30)   Тест 1 >> 3*6=18 // 1*1=0 // 7*8=56 // 1*5=5 // 4*6=24 // 7*6=42 // 8*2=16 // 1*5=5 // 3*2=6 // 6*7=42 // 
2012.10.13 12:44:31     Test_MLP(Alglib) (EURUSD,M30)   Тест 2 >> 6.3*8.2=51.83(51.66) // 7.0*8.1=57.04(56.70) // 9.0*8.1=73.36(72.90) // 4.1*9.6=39.05(39.36) // 6.3*8.8=55.63(55.44) // 

:( Kullanıcılar kütüphaneyi uzmanlarında aktif olarak kullanmaya başladıklarında buluta ne olacağını düşünmekten korkuyorum.
Bu basit komut dosyası bir megabaytın altında.
Dosyalar:
 
Yurich: Kütüphaneyi kullanmanın bir örneği, MLP sinir ağına çarpım tablosunu öğretmektir.

Bu örneği nereden aldınız? ))))))))))))))

teşekkürler, aynı örneği kendim için çalışacaktım, ancak çarpım tablosunu öğretmek için kimin kodunun daha hızlı olduğunu bulabilir misiniz, sizinki https://www.mql5.com/tr/code/596 veya taşınan ALGLIB?

 
Yenilik için teşekkürler.
Atılım OpenCL kullanarak uygulama olacaktır.

Metaquotes'un bu projeyi uygularken genç öleceği dışında.

Bu kütüphane için tam destek planlanıyor mu?

Evet ise, ikili formda sağlanabilir mi?

İkili olarak teslim ederseniz, Terminal ayarlarına "MetaQuotes DLL çağrısına izin ver" seçeneğini işaretlemenin zamanı geldi :0)

 
MetaEditor aracılığıyla yalnızca 11 mqh dosyası yüklendi
 

Merhaba,

Aşağıdaki matrisin özdeğerlerini bulmam gerekiyor:


2 3 2

10 3 4

3 6 1


bu kütüphaneyi bu matris üzerinde nasıl uygulayabilirim? (simetrik olmayan matris)

 

Bu harika makale ve ekli kod için çok ama çok teşekkür ederim! Bu kesinlikle planladığım MQL5 kodlarım için ana araç olacak ve C++'dan DLL'ye-MQL5 yoluna gitmemi engelleyecek.

Önceki soruyla ilgili olarak: linalg.mqh dosyasında metinde referans verilmeyen"NonSymmetricEVD" adlı bir fonksiyon vardır. Sadece bu rutini kullanın.

Best, David

 

Başka bir sorum daha var: alglib'in en yeni sürümü 3.8.2 gibi görünüyor, oysa metne göre taşınan sürüm 3.5.0.

Taşınan kodu güncellemek için planlar var mı?

Şimdiden teşekkürler,

David

 
Kaynak en son 3.8.2 sürümüne güncellenebilir.