كيفية حساب المنتج المتقاطع في r
بافتراض أن لدينا المتجه A مع العناصر (A 1 , A 2 , A 3 ) والمتجه B مع العناصر (B 1 , B 2 , B 3 )، يمكننا حساب حاصل الضرب الاتجاهي لهذين المتجهين كما يلي:
حاصل الضرب الاتجاهي = [(أ 2 *ب 3 ) – (أ 3 *ب 2 )، (أ 3 *ب 1 ) – (أ 1 *ب 3 )، (أ 1 *ب 2 ) – (أ 2 *ب 1) )]
على سبيل المثال، لنفترض أن لدينا المتجهات التالية:
- المتجه أ: (1، 2، 3)
- المتجه ب: (4، 5، 6)
يمكننا حساب المنتج الاتجاهي لهذه المتجهات على النحو التالي:
- حاصل الضرب الاتجاهي = [(أ 2 *ب 3 ) – (أ 3 *ب 2 )، (أ 3 *ب 1 ) – (أ 1 *ب 3 )، (أ 1 *ب 2 ) – (أ 2 *ب 1) )]
- حاصل الضرب الاتجاهي = [(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