Python 수학 시리즈 ③ 행렬식 (치환)

이 시리즈 정보



수학의 이해를 높이기 위해 파이썬으로 구현하면서 이해를 추진하고 있습니다. 당분간은 선형 대수 하려고 합니다. 수학은 그렇게 좋아하지 않았지만 최근에 좋아졌을지도 모릅니다. 시리즈의 목차는 여기 .

행렬식과 대체



행렬식은 다음 식으로 정의됩니다. 참조원

갑자기 행렬식을 구현하려고 해도 여러 가지 지식이 부족했기 때문에 우선 대체를 먼저 해 나가려고 생각합니다.
대체는 다음과 같이 정의됩니다. 참조원

(1, 2, 3)라든가 (3, 1, 2)라든지가 치환된 것의 예가 됩니다. n문자의 치환은 전부 n!대로 있는 것이 됩니다. 이번에는 치환의 곱을 구현해 나가려고 생각합니다.
치환의 곱은 다음과 같이 표현됩니다. 추천 소스

여기 의 기사 말하자면, 2개의 치환의 대응 관계(「A→B」와「B→C」)를 3단론법적인 느낌으로 1개에 꽉 정리한다(「A→C」) 느낌이라고 한다 입니다. 자세하게 밀어 넣으면, 자신의 경우 늪에 빠질 것 같기 때문에 이 이미지로 남아 둡니다. 이번에는 이 치환의 곱을 구현해 나가려고 합니다.

대체 곱



대체 곱을 할 수있는 파이썬 라이브러리를 찾을 수 없었기 때문에 자신의 구현이 맞는지 불안합니다. 라이브러리가 있으면 알려주세요. 아래와 같은 느낌으로 구현해 보았습니다. 간단하게 정의대로 해 보았습니다.
def permutation(list1, list2):
    list_len = len(list2[1])
    final_list = []
    first_list = []
    ans_list = []
    for i in range(list_len):
        a = list2[1][i]
        ans = list1[1][a - 1]
        if list1[0][i] != ans:
            first_list.append(list1[0][i])
            ans_list.append(ans)
    final_list.append(first_list)
    final_list.append(ans_list)
    return final_list

def main():
    print("~~permutation_test~~")
    pm1 = [[1, 2, 3], [2, 3, 1]]
    pm2 = [[1, 2, 3], [3, 2, 1]]
    print("my_answer:", permutation(pm1, pm2))
    # 出力結果
    # ~~permutation_test~~
    # my_answer: [[2, 3], [3, 2]]

이것은 개선의 여지가 매우 있을 것 같습니다만, 우선 이런 느낌으로 이번은 해 보았습니다.

요약



대학의 수학 수업, 예비 느긋한 동영상으로 좋은 설.

실수나 질문, 의견등 있으면 부담없이 코멘트해 주세요. 열심히 대답하니까(웃음).

좋은 웹페이지 즐겨찾기