الصنفComplex في روبي

من موسوعة حسوب

يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبة) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد i) ؛ وفق الشكل a+bi، حيث a هو الجزء الحقيقي، و b هو الجزء التخيلي و i هو الوحدة الخيالية.

العدد الحقيقي a يساوي رياضياتيًا العدد العقدي a+0i.

يمكن إنشاء الأعداد العقدية بطريقة حرفية، وأيضا باستخدام التوابع Kernel#Complex أو  ‏‎::rect أو  ‏‎::polar أو ‎#to_c. إليك الأمثلة التالية:

2+1i                 #=> (2+1i)
Complex(1)           #=> (1+0i)
Complex(2, 3)        #=> (2+3i)
Complex.polar(2, 3)  #=> (-1.9799849932008908+0.2822400161197344i)
3.to_c               #=> (3+0i)

يمكنك أيضا إنشاء الكائنات العقدية من الأعداد من النوع float أو من السلاسل النصية كما توضح الأمثلة التالية:

Complex(0.3)         #=> (0.3+0i)
Complex('0.3-0.5i')  #=> (0.3-0.5i)
Complex('2/3+3/4i')  #=> ((2/3)+(3/4)*i)
Complex('1@2')       #=> (-0.4161468365471424+0.9092974268256817i)

0.3.to_c             #=> (0.3+0i)
'0.3-0.5i'.to_c      #=> (0.3-0.5i)
'2/3+3/4i'.to_c      #=> ((2/3)+(3/4)*i)
'1@2'.to_c           #=> (-0.4161468365471424+0.9092974268256817i)

تُصنّف الأعداد العقدية إلى مضبوطة (exact) أو غير مضبوطة:

Complex(1, 1) / 2    #=> ((1/2)+(1/2)*i)
Complex(1, 1) / 2.0  #=> (0.5+0.5i)

الثوابت

الثابت التخيلي I

يمثل الثابت i العدد التخيلي للأعداد العقدية.

توابع الصنف العامة (Public Class Methods)

التابع polar

يعيد التابع ‎polar عددا عقديا وفق الشكل القطبي (polar form).

التابع rect

يعيد التابع ‎rect عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).

التابع rectangular 

يعيد التابع ‎rectangular عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).

توابع الكائن العامة (Public Instance Methods)

المعامل *

يؤدي المعامل ‎*عملية الضرب على الأعداد العقدية.

المعامل **

يؤدي المعامل ‎**عملية الأسّ (exponentiation) على الأعداد العقدية.

المعامل +

يؤدي المعامل ‎+عملية الجمع على الأعداد العقدية.

المعامل -

يؤدي المعامل ‎-عملية الطرح على الأعداد العقدية.

معامل النفي -

يعيد معامل النفي ‎- نفي (مقابل) العدد العقدي. 

المعامل /

يؤدي المعامل ‎/عملية القسمة على الأعداد العقدية.

المعامل ==

يتحقق المعامل ‎==من تساوي عددين عقديين.

التابع abs

يعيد التابع ‎abs منظم (القيمة المطلقة) للعدد العقدي الذي استدعي معه.

التابع abs2

يعيد التابع ‎abs2 مربع القيمة المطلقة للعدد العقدي الذي استدعي معه.

التابع ‎angle

يعيد التابع ‎angle الجزء الزاوري (angle part) للشكل القطبي للعدد العقدي الذي استدعي معه.

التابع arg

يعيد التابع ‎arg منظم (arg  part) العدد العقدي الذي استدعي معه وفق الشكل القطبي.

التابع arg

يعيد التابع ‎conj مرافق العدد العقدي.

التابع conjugate

يعيد التابع ‎conjugate مرافق العدد العقدي. 

التابع denominator

يعيد التابع ‎denominator قاسم (denominator) العدد العقدي، أي المضاعف المشترك الأصغر (lcm) للجزءين الحقيقي والتخيلي.

التابع fdiv

يقوم التابع ‎fdiv بعملية القسمة على العدد العقدي.

التابع finite?‎

يتحقق التابع ‎finite?‎ مما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي الذي استُدعي معه منتهيًا (finite). 

التابع imag

يعيد التابع ‎imag الجزء التخيلي للعدد العقدي. 

التابع imaginary

يعيد التابع ‎imaginary الجزء التخيلي (imaginary part) للعدد العقدي. 

التابع ‎infinite?‎

يعيد التابع ‎infinite?‎ قيمة بحسب ما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي منتهية أو غير منتهية (infinite).

التابع inspect

يعيد التابع ‎inspect العدد العقدي على شكل سلسلة نصية لأجل التفتيش (inspection). 

التابع magnitude

يعيد التابع ‎magnitude الجزء المطلق (absolute part) للشكل القطبي للعدد العقدي.

التابع ‎numerator‎

يعيد التابع ‎numerator مقام (numerator) العدد العقدي. 

التابع phase

 يعيد التابع ‎phase الجزء الزاوي (angle part) للشكل القطبي للعدد العقدي الذي استُدعي معه.

التابع quo

يؤدي التابع ‎quoعملية القسمة على الأعداد العقدية.

التابع real

يعيد التابع ‎real الجزء الحقيقي (real part) للعدد العقدي.

مصادر