python numpy.cross函式計算出問題
阿新 • • 發佈:2021-01-25
我將向量裡的數值都乘以1000後,原始數值用cross函式計算的值和乘以1000過後用cross計算的值不相同,不知道問題出在哪?
問題描述:
當用numpy.cross函式做兩個向量的叉乘的時候,對內部數值進行擴大發現計算的結果是不同的,用自己寫的函式計算是正常的。
數值乘了1000,計算就出錯了。
import numpy as np
x = [-6045000, -3490000, 2500000]
y = [-3457, 6618, 2533]
# x = [-6045, -3490, 2500]
# y = [-3.457, 6.618, 2.533]
def cross(R,V):
h = [R[1] * V[2] - R[2] * V[1],
R[2] * V[0] - R[0] * V[2],
R[0] * V[1] - R[1] * V[0]]
return h
h2 = np.cross(x, y)
print(h2)
print(cross(x,y))
兩種結果:
1、以x = [-6045000, -3490000, 2500000] y = [-3457, 6618, 2533] 執行結果為:
注:上面的結果是用numpy.cross函式計算,下面的結果是按照計算公式自編函式計算!
2、以x = [-6045, -3490, 2500] y = [-3.457, 6.618, 2.533] 執行結果為:
解決方案:
目前還沒找到問題在哪,請大家有時間幫忙分析一下。