使用jupyter notebook,numpy,(不使用回圈)验证随机(np.random.random)的 n 组 4 维向量 v1,v2,w1,w2满足内积的分配律,即 (v1+v2,w1+w2)=(v1,w1)+(v2,w1)+(v1,w2)+(v2,w2)
时间: 2024-05-19 07:12:58 浏览: 10
首先,我们来解释一下内积的分配律:
对于任意的四维向量 v1、v2、w1 和 w2,它们的内积可以写成:
(v1 v2, w1 w2) = v1w1 + v2w2 + v1w2 + v2w1
而内积的分配律指的是,上式右边的四项分别可以表示为:
(v1, w1) (v2, w2) + (v1, w2) (v2, w1)
也就是说,对于任意的四维向量 v1、v2、w1 和 w2,都有:
(v1 v2, w1 w2) = (v1, w1) (v2, w2) + (v1, w2) (v2, w1)
下面,我们使用 numpy 来验证这个性质。首先,我们生成 n 组随机的四维向量:
import numpy as np
n = 10 # 生成 10 组向量
v1 = np.random.random((n, 4))
v2 = np.random.random((n, 4))
w1 = np.random.random((n, 4))
w2 = np.random.random((n, 4))
接下来,我们计算左边的内积值:
left = np.sum(v1*v2*w1*w2, axis=1)
然后,我们计算右边的内积值:
right = np.sum((v1*w1)*(v2*w2), axis=1) + np.sum((v1*w2)*(v2*w1), axis=1)
最后,我们比较左右两边的值是否相等:
np.allclose(left, right)
如果返回 True,则说明验证通过。完整代码如下:
import numpy as np
n = 10 # 生成 10 组向量
v1 = np.random.random((n, 4))
v2 = np.random.random((n, 4))
w1 = np.random.random((n, 4))
w2 = np.random.random((n, 4))
left = np.sum(v1*v2*w1*w2, axis=1)
right = np.sum((v1*w1)*(v2*w2), axis=1) + np.sum((v1*w2)*(v2*w1), axis=1)
np.allclose(left, right)