프로그래밍 라이브러리를 사용하지 않고 두 벡터의 외적을 어떻게 계산할 수 있습니까?파이썬에서 두 벡터의 교차 곱
예컨대 주어진 벡터 a = (1, 2, 3)
및 b = (4, 5, 6)
프로그래밍 라이브러리를 사용하지 않고 두 벡터의 외적을 어떻게 계산할 수 있습니까?파이썬에서 두 벡터의 교차 곱
예컨대 주어진 벡터 a = (1, 2, 3)
및 b = (4, 5, 6)
import numpy as np
a = np.array([1,0,0])
b = np.array([0,1,0])
print np.cross(a,b)
'프로그래밍 라이브러리를 사용하지 않고 ... –
죄송합니다. – fulmicoton
요구 사항에 대한 대답이 아니지만 폴은 다음과 같은 점을 가지고 있습니다. 그런 종류가 필요한 경우 정말로 *해야합니다! 또한 연구에서 3D 벡터를 사용하고 있다면 VPython을 확인하십시오.이 기능을 사용하면 매우 쉽고 재미있게 시각화 할 수 있습니다. 정보를 주셔서 감사합니다. –
당신은 십자가 제품에 대한 공식에 대해 물어? 또는 파이썬에서 색인 생성 및 목록을 만드는 방법?
기본 아이디어는 a와 b의 요소를 [0], a [1], a [2] 등 (x, y, z의 경우)으로 액세스하고 새 목록을 작성한다는 것입니다 [element_0, element_1, ...]과 함께 또한 함수로 래핑 할 수도 있습니다.
벡터 측면에서 교차 곱은 요소의 반대쪽 대칭 곱이며 멋진 기하학적 해석을 제공합니다. 당신은 자신을 십자가 제품을 구현하려면 ...
def cross(a, b):
c = [a[1]*b[2] - a[2]*b[1],
a[2]*b[0] - a[0]*b[2],
a[0]*b[1] - a[1]*b[0]]
return c
태그를 주셔서 감사합니다! – blur959
당신은 환영합니다. (그러나 각자 개별적으로 감사 할 필요는 없습니다.) 그러나 힌트, 힌트, 대답 중 하나를 "받아 들일 수"있습니다 ... –
을
어쨌든, 당신에게 힌트를 줄 당신이 그것을 알아낼 수 있도록 더 나은 것,하지만 정말 SO의 방법이 아니다, 그래서 http://en.wikipedia.org/wiki/Vector_cross_product 또는 수학/물리 도서를 참조하십시오. 곧 (A1, A2, A3) X (B1, B2, B3) = (A2 * B3-A3의 *를 B2, A3 * B1-A1의 *의 B3, A1 * B2-A2의 *의 B1) 여러 치수
감사합니다. 고마워요! – blur959
, 이것은 작동 할 수 있습니다;
def crossProd(a,b):
dimension = len(a)
c = []
for i in range(dimension):
c.append(0)
for j in range(dimension):
if j <> i:
for k in range(dimension):
if k <> i:
if k > j:
c[i] += a[j]*b[k]
elif k < j:
c[i] -= a[j]*b[k]
return c
어때요? 이 재귀를 사용하여? ... 그것은 더 우아한 것입니다. – Sardathrion
오래된,하지만 어떤 하나가 지금 필요합니다 나는 이런 식으로했다 :
이데프 cross_product (U, V) :
dim = len(u)
s = []
for i in range(dim):
if i == 0:
j,k = 1,2
s.append(u[j]*v[k] - u[k]*v[j])
elif i == 1:
j,k = 2,0
s.append(u[j]*v[k] - u[k]*v[j])
else:
j,k = 0,1
s.append(u[j]*v[k] - u[k]*v[j])
return s
십자가 제품에 대한 공식 http://mathworld.wolfram.com/CrossProduct.html에서 확인할 수 있습니다. 프로그래밍 문제가있는 경우 읽은 후에 다시 오십시오. –