1. 程式人生 > 其它 >python numpy.cross函式計算出問題

python numpy.cross函式計算出問題

技術標籤:python計算pythonnumpy矩陣

我將向量裡的數值都乘以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] 執行結果為:

在這裡插入圖片描述

解決方案:

目前還沒找到問題在哪,請大家有時間幫忙分析一下。