R语言 矢量的交叉积
在数学中, 交叉 积 或称为 矢量积 是 三维空间 中两个矢量的二元运算,用符号 “X “表示 。给定两个线性 独立的向量a和b,交叉积 a×b 是一个与a和b都垂直的向量,因此 是包含它们 的平面的法线 。
让我们给出两个矢量。
和。
其中
i: 沿x方向的单位向量
j: 沿y方向 的单位向量
k: 沿z方向 的单位向量
然后 ,交叉积的计算方法为 。
其中
是沿i、j和k方向的单位向量的系数。
例子
给出两个矢量A和B为。
A = 3i + 5j + 4k,
and
B = 2i + 7j + 5k
Cross Product = (5 ? 5 – 4 ? 7)i + (4 ? 2 – 3 ? 5)j + (3 ? 7 – 5 ? 2)k
= (?3)i + (?7)j + (11)k
在R语言中计算交叉乘积
R语言提供了一种非常有效的方法来计算两个向量的交叉积。通过使用 pracma 库中的 cross() 方法。这个函数可以计算3维向量的交叉或向量乘积。在 矩阵的情况 下,它只取长度为3的第一维,并计算相应列或行之间的交叉积 。
语法: cross(x, y)
参数
x: 数字向量或矩阵
y: 数字 向量或矩阵
# 以矢量形式输入
例1 :
# R Program illustrating
# cross product of two vectors
# Import the required library
library(pracma)
# Taking two vectors
a = c(3, 5, 4)
b = c(2, 7, 5)
# Calculating cross product using cross()
print(cross(a, b))
输出
[1] -3 -7 11
例2 :
# R Program illustrating
# cross product of two vectors
# Import the required library
library(pracma)
# Taking two vectors
a = c(23, 15, 49)
b = c(28, 17, 25)
# Calculating cross product using cross()
print(cross(a, b))
输出
[1] -458 797 -29
# 将输入作为矩阵
例1 :
# R Program illustrating
# cross product of two vectors
# Import the required library
library(pracma)
# Taking two matrices
a = matrix(
c(1, 2, 3, 4, 5, 6, 7, 8, 9),
nrow = 3,
ncol = 3,
byrow = TRUE
)
b = matrix(
c(5, 2, 1, 4, 6, 6, 3, 2, 9),
nrow = 3,
ncol = 3,
byrow = TRUE
)
# Calculating cross product using cross()
print(cross(a, b))
输出
[, 1] [, 2] [, 3]
[1, ] -4 14 -8
[2, ] -6 0 4
[3, ] 54 -36 -10
例2 :
# R Program illustrating
# cross product of two vectors
# Import the required library
library(pracma)
# Taking two matrices
a = matrix(
c(11, 2, 31, 4, 52, 64, 7, 8, 9),
nrow = 3,
ncol = 3,
byrow = TRUE
)
b = matrix(
c(85, 21, 1, 4, 61, 6, 32, 2, 9),
nrow = 3,
ncol = 3,
byrow = TRUE
)
# Calculating cross product using cross()
print(cross(a, b))
输出
[, 1] [, 2] [, 3]
[1, ] -649 2624 61
[2, ] -3592 232 36
[3, ] 54 225 -242