심볼릭 C++
SymbolicC++개발자 | 요릭 하디, 빌리 한스 스티브, 탄 키아트 시 |
---|---|
안정된 릴리스 | 3.35 / 2010년 9월 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; }
다음 프로그램 fragment는 cos sin를 심볼적으로 반전시킵니다
심볼릭 세타('세타'); 심볼릭 R = ( ( 왜냐하면(세타), 죄(세타) ), ( -죄(세타), 왜냐하면(세타) ) ); 외치다 << > R(0,1); // sin(theta) 심볼릭 리 = R.역의(); 외치다 << > 리[ (왜냐하면(세타)^2) == 1 - (죄(세타)^2) ];
출력은
[ cos ( theta ) - sin ( theta ) ][ sin ( theta ) cos ( theta ) ]
다음 프로그램에서는 SymbolicC++의 비가환 기호를 보여 줍니다.여기서b
보스 전멸 연산자이고bd
Bose 생성 연산자입니다.변수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++의 첫 번째 버전에 대해 설명했습니다.이 버전에서 기호 계산을 위한 주요 데이터 유형은Sum
class. 사용 가능한 클래스 목록 포함
Verylong
: 무제한 정수 구현Rational
: 유리번호 템플릿클래스Quaternion
: 4분의 1 템플릿클래스Derive
: 자동미분을 위한 템플릿클래스Vector
: 벡터의 템플릿클래스(벡터 공간 참조)Matrix
: 행렬의 템플릿 클래스(행렬(수학) 참조)Sum
: 심볼식을 위한 템플릿클래스
예:
#실패하다 <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++ 웹 사이트에서 구할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 스티브, W.-H. (2010년)컴퓨터 대수학을 이용한 양자역학, 제2판, 세계과학출판사, 싱가포르.
- ^ 스티브, W.-H. (2008년)비선형 워크북: 카오스, 프랙탈, 셀룰러 오토마타, 뉴럴 네트워크, 유전 알고리즘, 유전자 발현 프로그래밍, 웨이브릿, 퍼지 로직 with C++, Java and SymbolicC++ 프로그램, 제4판, 세계과학출판, 싱가포르.
- ^ 스티브, W.-H. (2007)연속 대칭, 리 대수, 미분 방정식과 컴퓨터 대수, 제2판, 세계과학출판, 싱가포르.
- ^ a b Hardy, Y, Tan Kiat Shi 및 Steeb, W.-H. (2008).SymbolicC++를 사용한 컴퓨터 대수학, 세계과학출판사, 싱가포르.
- ^ 탄키아트시앤스티브, W.-H. (1997년)SymbolicC++: 객체 지향 프로그래밍 Springer-Verlag(싱가포르)를 사용한 컴퓨터 대수학 소개.
- ^ Tan Kiat Shi, Steeb, W.-H. 및 Hardy, Y(2000).SymbolicC++: 객체 지향 프로그래밍을 사용한 컴퓨터 대수 입문, 런던 스프링거-벨라그, 제2차 확장 개정판.
- ^ 플레처, 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 - ^ 크루거, P.J.M(2003)그뢰브너는 심볼릭 C++, M을 베이스로 한다.랜드 아프리칸스 대학 박사 학위 논문