1. 철수의 기여도 구하기 (각도=60, 철수가 끄는 힘 = 10)

1) 철수와 영희가 각각의 벡터로 어떤 물체를 당긴다고 할 때, 철수의 기여도를 알아보는 문제

(둘의 벡터의 방향이 다르기 때문에 단순히 더할 수 없음)

 

2) 

① import math ← 사칙연산 math 모듈을 불러오겠음

 

② 10 * math.cos(math.radians(60)) → 벡터 a는 힘 * 각도임 

 

③ 5.0 → 결국 철수는 10의 힘으로 끌었지만 영희를 도와주는데는 반 정도만 기여를 했음 

 

 

2. 두 직선이 이루는 각도 구하기 

1) 벡터의 내적 공식 이용하여 cos 각도 알기 

- 위 철수와 영희 그림에서 알 수 있듯이 벡터의 내적 공식은 

- 벡터 a ·b = 벡터a의 크기 * cos각도 * 벡터 b의 크기 

- 일의 양 = 힘의 크기 x 이동 거리 (벡터a의 크기 * cos각도 = 힘, 벡터b의 크기 = 이동거리)

 

 

2) 

① import math → math 모듈을 불러오겠음

    import numpy as np → numpy 모듈을 np로 불러오겠음

 

② a = np.array([2,7]) 

    b = np.array([6,1])

    c = np.array([2,3])

    d = np.array([6,5]) ← 각각 점의 좌표 입력

 

왜 벡터 구할땐 array로 표현하는지?

 

③ va = b - a

    vb = d - c

      → 각각의 a, b 벡터의 성분 표시

 

④ norm_a = np.linalg.norm(va)

    norm_b = np.linalg.norm(vb)

      → linalg.norm함수는 벡터의 크기를 구하라는 명령어

 

⑤ dot_ab = np.dot(va, vb) ← 벡터의 내적을 구하라 

 

⑥ cos_th = dot_ab / (norm_a * norm_b) ← cos각도 구하는 벡터의 내적 공식을 변형한 것  

    rad = math.acos(cos_th) → cos역함수의 각도를 라디안의 단위로 구하기 

    deg = math.degrees(rad) → 라디안값의 단위를 도수로 표현하기 

    print(deg) → 각도를 보여라 

+ Recent posts