본문 바로가기
Python/python 응용: 수학 및 과학

python에서 세 점으로 이뤄진 삼각형의 넓이 구하기

by 철이88 2023. 4. 14.
반응형

이번 포스팅은 세 점이 주어졌을 때, 그 세 점으로 이뤄진 삼각형의 넓이를 python에서 구해보겠습니다. 여기서는 NumPy 라이브러리의 행렬식을 구하는 함수를 이용할 것입니다. 

1. Numpy linalg.det() 함수를 이용해 행렬식 구하기

linalg.det()는 NumPy 라이브러리에서 제공하는 함수로, 인자로 받은 2차원 배열의 행렬식을 계산하여 반환합니다.

행렬식은 선형대수학에서 배우는 개념 중 하나로, 정방행렬(square matrix)에서 정의됩니다.

행렬 $A$가 $n {\times} n$ 이면, 행렬식 det($A$)는 다음과 같이 여인수(cofactor)를 이용하여 계산합니다.

det($A$) = $a_{11}C_{11}$ + $a_{12}C_{12}$ + ... + $a_{1n}C_{1n}$


더 자세한 내용은 아래 링크를 참조하세요.

5.2c 행렬식 계산: 여인수 이용

 

5.2c 행렬식 계산: 여인수 이용

마지막으로 알아볼 행렬식 계산 방법은 여인수(cofactor)를 이용합니다. i행 j열 여인수는 보통 $C_{ij}$로 쓰고, 소행렬식 $M_{ij}$에 부호를 붙여 $(-1)^{i+j}M_{ij}$로 정의됩니다. 소행렬식은 원래의 행렬

er5030000.tistory.com

 

NumPy의 np.linalg.det() 함수는 이러한 행렬식을 계산하여 반환합니다. 여기서 주의할 점은 2차원 배열을 인자로 해야 하고 정방행렬이어야 한다는 것입니다. 만약 아닐 경우에는 예외가 발생합니다.

 

2. 세 점으로 이뤄진 삼각형의 넓이 구하기

세 점으로 이루어진 삼각형의 넓이는 세 점의 좌표로 만들어진 행렬식을 이용해서 구할 수 있습니다.

세 점이  ($x_{1}$, $y_{1}$), ($x_{2}$, $y_{2}$), ($x_{3}$, $y_{3}$)라고 하면, 삼각형의 넓이는 다음과 같습니다.

A = $\begin{vmatrix} \begin{array}{r} x_{1} & y_{1} & 1 \\ x_{2} & y_{2} & 1 \\ x_{3} & y_{3} & 1 \end{array} \end{vmatrix}$

 

이에 대한 더 자세한 내용은 다음 링크를 참조하세요.

5.3c 삼각형의 넓이와 행렬식

 

5.3c 삼각형의 넓이와 행렬식

이번 포스팅은 삼각형의 넓이를 행렬식으로 표현하는 것을 알아보겠습니다. 원점을 포함하는 세 점을 이은 삼각형의 넓이 그림과 같이 세 점을 이은 삼각형이 있다고 하겠습니다. 세 점을 (0,0),

er5030000.tistory.com

 

위 식은 다음과 같이 python 코드로 만들 수 있습니다.

import numpy as np

# 세 점의 x, y좌표
x1, y1 = 0, 0
x2, y2 = 2, 0
x3, y3 = 1, 1

# 행렬 A
A = np.array([[x1, y1, 1], [x2, y2, 1], [x3, y3, 1]])

# 삼각형의 넓이 계산
area = abs(np.linalg.det(A)) / 2

print("The area is {}.".format(area))

위 코드는 세 점의 좌표를 각각 $x_{1}$, $y_{1}$, $x_{2}$, $y_{2}$, $x_{3}$, $y_{3}$ 변수에 저장하고, 이를 이용해 행렬 A를 생성합니다. 그리고 np.linalg.det() 함수를 사용하여 $A$의 행렬식을 계산합니다.

그리고 절댓값을 취한 뒤 2로 나누어 삼각형의 넓이를 구합니다.

마지막으로 print() 함수를 사용하여 삼각형의 넓이를 출력합니다.

반응형

댓글