심볼릭 C++

SymbolicC++
심볼릭 C++
개발자요릭 하디, 빌리 한스 스티브, 탄 키아트 시
안정된 릴리스
3.35 / 2010년 9월 15일, 11년 전(2010-09-15)
기입처C++
운영 체제크로스 플랫폼
유형수학 소프트웨어
면허증.GPL
웹 사이트http://issc.uj.ac.za/symbolic/symbolic.html

SymbolicC++는 프로그래밍 언어 C++로 작성된 범용 컴퓨터 대수 시스템입니다.GNU General Public License의 조건에 따라 출시된 무료 소프트웨어입니다.SymbolicC++는 C++ 헤더 파일을 포함하거나 라이브러리에 링크하여 사용합니다.

#실패하다 <iostream> #실패하다 "1200c++"h" 사용. 네임스페이스 표준;  인트 주된(무효) {  심볼릭 x("x");  외치다 << > 통합하다(x+1, x);     // => 1/2*x^ (2)+x  심볼릭 y("y");  외치다 << > df(y, x);              // = > 0  외치다 << > df(y[x], x);           // => df(y[x],x)  외치다 << > df(exp(왜냐하면(y[x])), x); // => -sin(y[x])*df(y[x],x)*e^cos(y[x])  돌아가다 0; } 

다음 프로그램 fragmentcos sin를 심볼적으로 반전시킵니다

심볼릭 세타('세타'); 심볼릭 R = ( (  왜냐하면(세타), (세타) ),                ( -(세타), 왜냐하면(세타) ) ); 외치다 << > R(0,1); // sin(theta) 심볼릭  = R.역의(); 외치다 << > [ (왜냐하면(세타)^2) == 1 - ((세타)^2) ]; 

출력은

[ cos ( theta ) - sin ( theta ) ][ sin ( theta ) cos ( theta ) ]

다음 프로그램에서는 SymbolicC++의 비가환 기호를 보여 줍니다.여기서b보스 전멸 연산자이고bdBose 생성 연산자입니다.변수vs 진공상태 0(\ 0을 나타냅니다.~연산자는 변수의 교환성을 전환합니다. 즉, 다음과 같습니다.b가환성이 있다~b가환적이지 않은 경우b가환적이지 않다~b가환적입니다.

#실패하다 <iostream> #실패하다 "1200c++"h" 사용. 네임스페이스 표준;  인트 주된(무효) {  // 연산자 b는 소멸 연산자, bd는 생성 연산자  심볼릭 b("b"), bd("bd"), ("vs");   b = ~b; bd = ~bd;  = ~;   방정식 규칙. = (b*bd == bd*b + 1, b* == 0);   // 예 1  심볼릭 결과 1 = b*bd*b*bd;  외치다 << > "result1 = " << > 결과 1.subst_all(규칙.) << > ;  외치다 << > "result1*vs =" << > (결과 1*).subst_all(규칙.) << > ;   // 예 2  심볼릭 결과 2 = (b+bd)^4;  외치다 << > "result2 = " << > 결과 2.subst_all(규칙.) << > ;  외치다 << > "result2*vs =" << > (결과 2*).subst_all(규칙.) << > ;   돌아가다 0; } 

자세한 예는 아래 나열된 [1][2][3][4]책에서 찾을 수 있습니다.

역사

SymbolicC++는 컴퓨터 대수에 관한 일련의 책에 설명되어 있습니다.[5] 번째 책에서는 SymbolicC++의 첫 번째 버전에 대해 설명했습니다.이 버전에서 기호 계산을 위한 주요 데이터 유형은Sumclass. 사용 가능한 클래스 목록 포함

예:

#실패하다 <iostream> #실패하다 "그럴 수도 있어요.h" #실패하다 "msymbol.h" 사용. 네임스페이스 표준;  인트 주된(무효) {  < >인트> x("x",1);  < >합리적인< >인트> > y("y",1);  외치다 << > 내부(y, y);       // = > 1/2 y4402  y.의존하다(x);  외치다 << > df(y, x);        // => df(y,x)  돌아가다 0; } 

SymbolicC++의 두 번째[6] 버전은 다음과 같은 새로운 클래스를 특징으로 합니다.Polynomial간단한 통합을 위한 클래스 및 초기 지원.클리포드 대수의 대수 연산에 대한 [7]지원은 2002년 SymbolicC++ 사용에서 설명되었다.그 후, 그로브너 기지에 대한 지원이 [8]추가되었다.세 번째[4] 버전은 SymbolicC++의 완전한 개서를 특징으로 하며 2008년에 출시되었습니다.이 버전에서는 의 모든 심볼식을 캡슐화합니다.Symbolic학급.

최신 버전은 SymbolicC++ 사이트에서 구할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 스티브, W.-H. (2010년)컴퓨터 대수학을 이용한 양자역학, 제2판, 세계과학출판사, 싱가포르.
  2. ^ 스티브, W.-H. (2008년)비선형 워크북: 카오스, 프랙탈, 셀룰러 오토마타, 뉴럴 네트워크, 유전 알고리즘, 유전자 발현 프로그래밍, 웨이브릿, 퍼지 로직 with C++, Java and SymbolicC++ 프로그램, 제4판, 세계과학출판, 싱가포르.
  3. ^ 스티브, W.-H. (2007)연속 대칭, 대수, 미분 방정식과 컴퓨터 대수, 제2판, 세계과학출판, 싱가포르.
  4. ^ a b Hardy, Y, Tan Kiat Shi 및 Steeb, W.-H. (2008).SymbolicC++를 사용한 컴퓨터 대수학, 세계과학출판사, 싱가포르.
  5. ^ 탄키아트시앤스티브, W.-H. (1997년)SymbolicC++: 객체 지향 프로그래밍 Springer-Verlag(싱가포르)를 사용한 컴퓨터 대수학 소개.
  6. ^ Tan Kiat Shi, Steeb, W.-H. 및 Hardy, Y(2000).SymbolicC++: 객체 지향 프로그래밍을 사용한 컴퓨터 대수 입문, 런던 스프링거-벨라그, 제2차 확장 개정판.
  7. ^ 플레처, J.P. (2002)C++에서의 클리포드 번호의 심볼릭 처리
    도란 C., 도스트 L., 라센비 J. (eds)에 있습니다.Birkhauser, Basel 컴퓨터 공학 AGACSE 2001에서 Geometrical Algebras를 적용.
    http://www.ceac.aston.ac.uk/research/staff/jpf/papers/paper25/index.php
  8. ^ 크루거, P.J.M(2003)그뢰브너는 심볼릭 C++, M을 베이스로 한다.랜드 아프리칸스 대학 박사 학위 논문

외부 링크