SymbolicC ++ - SymbolicC++

SymbolicC ++
Geliştirici (ler)Yorick Hardy, Willi-Hans Steeb ve Tan Kiat Shi
Kararlı sürüm
3.35 / 15 Eylül 2010; 10 yıl önce (2010-09-15)
YazılmışC ++
İşletim sistemiÇapraz platform
TürMatematiksel yazılım
LisansGPL
İnternet sitesihttp://issc.uj.ac.za/symbolic/symbolic.html

SymbolicC ++ genel bir amaçtır bilgisayar cebir sistemi programlama dilinde yazılmış C ++. Bu ücretsiz yazılım şartları altında yayınlandı GNU Genel Kamu Lisansı. SymbolicC ++, bir C ++ başlık dosyası ekleyerek veya bir kitaplığa bağlanarak kullanılır.

Örnekler

#Dahil etmek <iostream>#Dahil etmek "symbolicc ++. h"kullanma ad alanı std;int ana(geçersiz){ Simgesel x("x"); cout << birleştirmek(x+1, x);     // => 1/2 * x ^ (2) + x Simgesel y("y"); cout << df(y, x);              // => 0 cout << df(y[x], x);           // => df (y [x], x) cout << df(tecrübe(çünkü(y[x])), x); // => -sin (y [x]) * df (y [x], x) * e ^ cos (y [x]) dönüş 0;}

Aşağıdaki program parçası ters çevirir matrissembolik.

Simgesel teta("teta");Simgesel R = ( (  çünkü(teta), günah(teta) ),               ( -günah(teta), çünkü(teta) ) );cout << R(0,1); // günah (teta)Simgesel ri = R.ters();cout << ri[ (çünkü(teta)^2) == 1 - (günah(teta)^2) ];

Çıktı

[cos (teta) −sin (teta)] [günah (teta) cos (teta)]

Sonraki program, SymbolicC ++ 'daki değişmeli olmayan sembolleri göstermektedir. Buraya b bir Bose imha operatörü ve bd bir Bose oluşturma operatörü. Değişken vs gösterir vakum durumu . ~ operatör bir değişkenin değişme özelliğini değiştirir, yani b değişmeli mi ~ b değişmeli değildir ve eğer b değişmeli değil ~ b değişmeli.

#Dahil etmek <iostream>#Dahil etmek "symbolicc ++. h"kullanma ad alanı std;int ana(geçersiz){ // b operatörü, yok etme operatörü ve bd, oluşturma operatörüdür Simgesel b("b"), bd("bd"), vs("vs"); b = ~b; bd = ~bd; vs = ~vs; Denklemler kurallar = (b*bd == bd*b + 1, b*vs == 0); // Örnek 1 Simgesel sonuç1 = b*bd*b*bd; cout << "sonuç1 =" << sonuç1.subst_all(kurallar) << son; cout << "sonuç1 * vs =" << (sonuç1*vs).subst_all(kurallar) << son; // Örnek 2 Simgesel sonuç2 = (b+bd)^4; cout << "result2 =" << sonuç2.subst_all(kurallar) << son; cout << "sonuç2 * vs =" << (sonuç2*vs).subst_all(kurallar) << son; dönüş 0;}

Aşağıda listelenen kitaplarda daha fazla örnek bulunabilir.[1][2][3][4]

Tarih

SymbolicC ++, bir dizi kitapta anlatılmıştır. bilgisayar cebiri. İlk kitap[5] SymbolicC ++ ilk sürümünü açıkladı. Bu versiyonda sembolik hesaplama için ana veri türü, Toplam sınıf. Dahil edilen mevcut sınıfların listesi

Misal:

#Dahil etmek <iostream>#Dahil etmek "rational.h"#Dahil etmek "msymbol.h"kullanma ad alanı std;int ana(geçersiz){ Toplam<int> x("x",1); Toplam<Akılcı<int> > y("y",1); cout << Int(y, y);       // => 1/2 yˆ2 y.bağımlı(x); cout << df(y, x);        // => df (y, x) dönüş 0;}

İkinci versiyon[6] SymbolicC ++, yeni sınıflar içeriyordu. Polinom basit entegrasyon için sınıf ve ilk destek. Cebirsel hesaplama desteği Clifford cebirleri 2002 yılında SymbolicC ++ kullanılarak açıklanmıştır.[7] Ardından Gröbner üsleri için destek eklendi.[8]Üçüncü versiyon[4] SymbolicC ++ 'nın tam bir yeniden yazımını içerir ve 2008'de piyasaya sürülmüştür. Bu sürüm, içindeki tüm sembolik ifadeleri kapsar. Simgesel sınıf.

Daha yeni sürümler SymbolicC ++ 'dan edinilebilir İnternet sitesi.

Ayrıca bakınız

Referanslar

  1. ^ Steeb, W.-H. (2010).Bilgisayar Cebirini Kullanan Kuantum Mekaniği, ikinci baskı,World Scientific Publishing, Singapur.
  2. ^ Steeb, W.-H. (2008).Doğrusal Olmayan Çalışma Kitabı: Kaos, Fraktallar, Hücresel Otomata, Sinir Ağları, Genetik Algoritma, Gen İfadesi Programlama, Dalgacıklar, C ++ ile Bulanık Mantık, Java ve SymbolicC ++ Programları, dördüncü baskı,World Scientific Publishing, Singapur.
  3. ^ Steeb, W.-H. (2007).Sürekli Simetriler, Lie Cebirleri, Diferansiyel Denklemler ve Bilgisayar Cebiri, ikinci baskı,World Scientific Publishing, Singapur.
  4. ^ a b Hardy, Y, Tan Kiat Shi ve Steeb, W.-H. (2008). SymbolicC ++ ile Bilgisayar Cebiri, World Scientific Publishing, Singapur.
  5. ^ Tan Kiat Shi ve Steeb, W.-H. (1997). SymbolicC ++: Nesne Tabanlı Programlama Kullanan Bilgisayar Cebirine Giriş Springer-Verlag, Singapur.
  6. ^ Tan Kiat Shi, Steeb, W.-H. ve Hardy, Y (2000). SymbolicC ++: Nesne Tabanlı Programlama kullanarak Bilgisayar Cebirine Giriş, 2. genişletilmiş ve gözden geçirilmiş baskı, Springer-Verlag, Londra.
  7. ^ Fletcher, J.P. (2002). Clifford Numaralarının C ++ ile Sembolik İşlenmesi
    Doran C., Dorst L. ve Lasenby J. (editörler) Bilgisayar Bilimi ve Mühendisliğinde Uygulamalı Geometrik Cebirler AGACSE 2001, Birkhauser, Basel.
    http://www.ceac.aston.ac.uk/research/staff/jpf/papers/paper25/index.php
  8. ^ Kruger, P.J.M (2003). Sembolik C ++ ile Gröbner tabanları, M. Sc. Tez, Rand Afrikaans Üniversitesi.

Dış bağlantılar