كيفية حساب المنتج المتقاطع في r


بافتراض أن لدينا المتجه A مع العناصر (A 1 , A 2 , A 3 ) والمتجه B مع العناصر (B 1 , B 2 , B 3 )، يمكننا حساب حاصل الضرب الاتجاهي لهذين المتجهين كما يلي:

حاصل الضرب الاتجاهي = [(أ 23 ) – (أ 32 )، (أ 31 ) – (أ 13 )، (أ 12 ) – (أ 21) )]

على سبيل المثال، لنفترض أن لدينا المتجهات التالية:

  • المتجه أ: (1، 2، 3)
  • المتجه ب: (4، 5، 6)

يمكننا حساب المنتج الاتجاهي لهذه المتجهات على النحو التالي:

  • حاصل الضرب الاتجاهي = [(أ 23 ) – (أ 32 )، (أ 31 ) – (أ 13 )، (أ 12 ) – (أ 21) )]
  • حاصل الضرب الاتجاهي = [(2*6) – (3*5)، (3*4) – (1*6)، (1*5) – (2*4)]
  • حاصل الضرب الاتجاهي = (-3، 6، -3)

يمكنك استخدام إحدى الطريقتين لحساب المنتج المتقاطع لمتجهين في R:

الطريقة الأولى: استخدم الدالة cross()‎ لحزمة pracma

 library (pracma)
  
#calculate cross product of vectors A and B
cross(A, B)

الطريقة الثانية: تحديد وظيفتك الخاصة

 #define function to calculate cross product 
cross <- function (x, y, i=1:3) {
  create3D <- function (x) head (c(x, rep (0, 3)), 3)
  x <- create3D(x)
  y <- create3D(y)
  j <- function (i) (i-1) %% 3+1
  return (x[j(i+1)]*y[j(i+2)] - x[j(i+2)]*y[j(i+1)])
}

#calculate cross product
cross(A, B)

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا.

مثال 1: استخدم الدالة cross()‎ لحزمة pracma

يوضح التعليمة البرمجية التالية كيفية استخدام الدالة cross() من حزمة pracma لحساب حاصل الضرب الاتجاهي بين متجهين:

 library (pracma)
  
#definevectors
A <- c(1, 2, 3)
B <- c(4, 5, 6)
  
#calculate cross product
cross(A, B)

[1] -3 6 -3

يصبح حاصل الضرب الاتجاهي (-3، 6، -3) .

وهذا يتوافق مع المنتج الاتجاهي الذي حسبناه يدويًا سابقًا.

مثال 2: حدد وظيفتك الخاصة

يوضح التعليمة البرمجية التالية كيفية تحديد الدالة الخاصة بك لحساب المنتج الاتجاهي بين متجهين:

 #define function to calculate cross product 
cross <- function (x, y, i=1:3) {
  create3D <- function (x) head (c(x, rep (0, 3)), 3)
  x <- create3D(x)
  y <- create3D(y)
  j <- function (i) (i-1) %% 3+1
  return (x[j(i+1)]*y[j(i+2)] - x[j(i+2)]*y[j(i+1)])
}

#definevectors
A <- c(1, 2, 3)
B <- c(4, 5, 6)

#calculate cross product
cross(A, B)

[1] -3 6 -3

يصبح حاصل الضرب الاتجاهي (-3، 6، -3) .

وهذا يتوافق مع المنتج الاتجاهي الذي حسبناه في المثال السابق.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:

كيفية حساب منتج النقطة في R
كيفية إنشاء مصفوفة الهوية في R
كيفية إنشاء مصفوفة فارغة في R

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *