2013-10-04 2 views
2

나는 연속체 역학을 다루었으며, 다른 텐서와 관련하여 텐서의 파생물을 얻을 필요가있는 많은 작업이 있습니다. 컴퓨터에서 상징적으로 그렇게하려고 노력하고 싶습니다.다른 텐서와 다른 텐서를 구별하는 도구는 무엇입니까?

예를 들어, 2 차 PK 응력 텐서와 변형 텐서가 모두 3x3 행렬이며 탄성 텐서는 3x3x3x3 4 차 텐서입니다.

나는 sympy를 사용하려고 시도했지만, 지원하는 것이 가장 많은 것은 행렬 (텐서 순서 2) 인 것으로 보인다. numpy의 ndarray는 간단히 sympy가 아닙니다.

나는 matlab을 사용하는 데 익숙해졌으며, 이제는 matlab에서도 사용할 수있는 방법을 알고있다.

따라서 이러한 목적으로 사용할 수있는 도구가 있는지 궁금합니다. 수학자가 그렇게 할 수 있습니까?

미리 감사드립니다.

-Shawn

+0

숫자 적으로 또는 상징적으로? 그 차이는 아주 중요합니다. 또한, "텐서의 파생어가 또 다른 텐서"라는 뜻이 아니기 때문에 정확하게 연산을 정의하십시오. – Krastanov

+1

@Krastanov 응답 해 주셔서 감사합니다! 제가 질문의 첫 번째 단락에서 지적했듯이, 나는 상징적으로 의미합니다. 이 연산은 "하나의 텐서의 모든 구성 요소가 다른 텐서의 모든 구성 요소로 구별됩니다"라고 대략 이해할 수 있습니다. 이것은 모든 텐서 분석 책에서보다 정확하게 정의됩니다. 또한 제 질문의 두 번째 단락에 간단한 예를 들어 봤습니다. –

답변

2

그래서 당신은 sympy 표현 대신 숫자를 채울 수 있다는 dtype=object를 사용하여 NumPy와 배열을 사용하는 것입니다 파이썬에서이 작업을 수행 할 수있는 방법. 그러나 당신은 모든 편의 메소드를 직접 작성해야 할 것입니다 (그러나 그들은 매우 간단 할 것입니다, 그냥 numpy 배열을 통해 이미 구현 된 sympy 함수를 루핑하는 것입니다).

이것은 필수 기호 패키지를 설치하면 Mathematica 나 Matlab에서 분명히 할 수 있습니다.

또한 Mathematica에는 텐서 분석을위한 패키지가 있지만, 설명하는 문제는 지나치게 많을 것입니다. 같은 방식으로, SymPy에는 차동 기하학 및 텐서 분석을위한 다양한 패키지가 있지만 과도한 공격이 될 수 있습니다.

관련 문제