الاعداد المركبة (العقدية) : Complex Numbers في برنامج ماتلاب MATLAB

الاعداد المركبة (العقدية) : Complex Numbers

تأخذ الأعداد المركبة Complex Numbers صيغة واحدة وهي تواجد جزء للأعداد الحقيقية Real Numbers وجزء للأعداد التخيلية Imaginary Numbers وتكون علي الصورة العامة التالية :

z = x + y*i

ويقوم برنامج MATLAB بالتعامل مع الأعداد المركبة (العقدية) بمرونة ويسر مما جعله واحدا من أقوي وأشهر البرامج الهندسية المتخصصة في حل المشكلات الرياضية المعقدة التي تظهر أمام الباحثين .

حيث يقوم برنامج MATLAB بإجراء العديد من العمليات علي الأعداد المركبة مثل :
1- اختيار العدد الحقيقي real part فقط .
2- اختيار العدد التخيلي Imaginary Part فقط .
3- إيجاد الزاوية Phase Angle ويتم الحصول عليها من خلال العلاقة التالية :

angle = tan -1 ( Imaginary Number / Real Number )

4- إيجاد القيمة المطلقة absolute value : ويتم الحصول عليها من خلال العلاقة التالية :

Absolute Value = √x2 + y2

5- إيجاد مرافق Conjugate العدد المركب : ويتم الحصول عليه من خلال العلاقة التالية :

conj(z) = real-i*imag(z)

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

دوال الاعداد المركبة

Imag(z)

تستخدم لإيجاد قيمة الجزء التخيلي من العدد المركب (z).

Real(z)

تستخدم لإيجاد قيمة الجزء الحقيقي من العدد المركب (z) .

Angle(z)

تستخدم لإيجاد زاوية phase angle العدد المركب (z)مقدرة بالراديان .

كما يمكننا تنفيذ نفس هذا الأمر بإستخدام صيغة الأمر atan2(image(z),real(z))

Abs(z)

تستخدم لإيجاد القيمة المطلقة magnitude للعدد المركب (z) .

Conj(z)

تستخدم لإيجاد مرافق conjugate العدد المركب (z) .

Complex(x,y)

تستخدم لتكوين أعداد مركبة (عقدية) من أعداد حقيقية وأعداد تخيلية يتم تمريرها لهذه الدالة .

مثال :
بإستخدام برنامج MATLAB أوجد ناتج العمليات الحسابية التالية علي المتغير z=3+4*i :

  • اوجد الجزء الحقيقي للعدد المركب (z) .

    % Defining z as a complex Number
    z=3+4i ;
    % other way to define z
    z=3+4
    sqrt (-1)
    z =
    3.0000 + 4.0000i
    % Getting the real part of z
    X=real (z)
    X =
    3

  • اوجد الجزء التخيلي للعدد المركب (z) .

    % Getting the imaginary part of z
    Y=imag (z)
    Y =
    4
    اوجد زاوية phase angle العدد المركب (z) .

    % Getting the phase angle of z
    P1 =ohase (z)
    P1 =
    0.9273
    % Comparing the result of angle (z)
    % with the value of atan2 (Y,X) atan2 (X,X)
    P2=atan2 (Y,X)
    P2 =
    0.9273

  • اوجد القيمة المطلقة magnitude value للعدد المركب (z)

    % Getting the absolute value of z
    a1=abs (z)
    a1 =
    5
    %Comparing the result of abs (z)
    % with the value of sqrt ( (X) ^2 + (Y)^2)
    a2=sqrt ( (X) ^2 + (Y) ^2)
    a2 =
    5

  • اوجد مرافق Conjugate العدد المركب (z) .

      >> % Getting the conjugate of   Z
      >> Z_Conj=conj (Z)
      Z_Conj =
           3.0000 – 4.0000i
    

إجراء عمليات ( الجمع والطرح والضرب والقسمة ) علي الأعداد المركبة

بعض لغات البرمجة تتطلب معالجة خاصة للأعداد المركبة عند التعامل معها لكن برنامج MATLAB لا يقوم بأي معالجة خاصة للأعداد المركبة حيث يمكننا برنامج MATLAB من إجراء كافة العمليات الرياضية الأساسية ( كاجمع والطرح والضرب والقسمة ) علي الأعداد المركبة وتكتب بنفس الطريقة المستخدمة سابقا مع الأعداد الحقيقة Real Number .
والجدول التالي يوضح كيفية إجراء العمليات الحسابية علي العددين المركبين Z1,Z2 .

Z1 = a1 + b1 * i
Z2 = a2 b2 * i

ناتج العملية الحسابية

العملية الحسابية

(a1 +a2 ) + i(b1 + b2)

Z1 + Z2

(a1 – a2 )+ i (b1-b2)

Z1 – Z2

(a1a2 – b1b2) + i(a1b2 + a2b1)

Z1 * Z2

(a1a2 – b1b2 )/(a22 + b22)

Z1/Z2

ملحوظة هامة :

عند القيام بتعريف الأعداد المركبة ( العقدية ) فإننا نستخدم i أة j للإشارة لمعاملات الأجزاء التخيلية ولكن إذا كان الرمز المستخدم ( i أو j ) معرف مسبقا كمتغير فإن التعريف سيكون خاطئا لذا فيجب توخي الحذر عند تعريف أي متغير علي أنه ( i أو j ) وذلك تجنبا لحدوث أي مشكلة عند ظهور أعداد مركبة ( عقدية ) في البرنامج لأن هذا سيؤدي إلي وضع قيم اخري عوضا عن القيمة √-1 في المتغيرات ( i,j ) وبالتالي نحصل علي إجابات خاطئة .

كما هو مبين في المثال التالي :

>> i=4 ;
>> z=2+3*i
z =
        14
>> clear i ;
>> z=2+3*i
z =
        2.0000 + 3.0000i

العمليات التقريبية للأعداد العشرية ( أعداد واقعة بين عددين صحيحين ) :

يمتاز أي رقم عشري بأنه واقع بين رقمين صحيحين وبرنامج MATLAB له القدرة علي اختيار احد هذين الرقمين بإستخدام الأمرين Ceil لاختيار الرقم الأكبر ( أي بإتجاه اللانهاية الموجبة “∞+” )والامر Floor لاختيار الرقم الاصغر ( أي بإتجاه اللانهاية السالبة “∞-” ) .
ولمزيد من الإيضاح يمكننا تلخيص أهم دوال التقريب في الجدول التالي :

دوال التقريب Rounding Functions

Fix(x)

تستخدم في تقريب القيم الموجودة في المتغير xسواء كانت (قيم عددية مفردة أو عناصر في متجه أو عناصر في مصفوفة ) إلي أقرب رقم صحيح من الصفر .

Round(x)

تستخدم في تقريب القيم الموجودة في المتغير x  سواء كانت ( قيم عددية مفردة أو عناصر في متجه أو مصفوفة ) الي اقرب رقم صحيح .

Floor(x)

تستخدم في تقريب القيم الموجودة في المتغير x سواء كانت ( قيم عددية مفردة أو عناصر في متجه أو مصفوفة ) بإتجاه اللانهاية السالبة (-∞) .

Ceil(x)

تستخدم في تقريب القيم الموجودة في المتغير x سواء كانت ( قيم عددية مفردة أو عناصر في متجه أو مصفوفة ) بإتجاه اللانهاية الموجبة (+∞) .

مثال توضيحي :

-4.1+4.6i

-4.6

-4.1

4.6

4.1

A

-4+5i

4-

4-

4

4

Fix(a)

-4+5i

5-

-4

5

4

Round(a)

-5+4i

5-

5-

4

4

Floor(a)

-4+5i

4-

4-

5

5

Ceil(a)

مثال دوال التقريب :

استخدام دوال التقريب المختلفة في برنامج MATLAB لتقريب قيم المتغيرات التالية :

* a=[4.6  0.4   -3.5  0.8]
>> a = [4.6      0.4   -3.5          0.8] ;
>> a1=fix (a)
a1 =
        4      0      -3     0
>> a2=round (a)
a2 =
        5      0      -4     1
>> a3=floor (a)
a3 =
        4      0      -4     0
>> a4=ceil (a)
a4 =
    5      1      -3     1

دوال بواقي القسمة Remainders :

تستخدم دوال بواقي القسمة في الحصول علي باقي القسمة الصحيح مثل الدالتين rem,mod .
ويمكننا تلخيص أهم دوال بواقي القسمة في الجدول التالي

دوال بواقي القسمة Remainders

Rem(x,y)

تستخدم في إيجاد الباقي الصحيح لعملية خارج قسمة المتغير x علي المتغير y ( إعتمادا علي التقريب إلي الصفر )

Mod(x,y)

تستخدم في إيجاد الباقي الصحيح لعملية خارج قسمة المتغير x علي المتغير y (إعتمادا علي التقريب إلي سالب مالانهاية ∞- ) .

حيث أن :

x : تمثل المقسوم وهي عبارة عن قيمة عددية حقيقية مفردة Scalar أو عناصر في متجه أو مصفوفة .
y : تمثل المقسوم عليه وهي عبارة عن قيمة عددية حقيقية مفردة Scalar أو عناصر في متجه أو مصفوفة لها نفس أبعاد المقسوم .

مثال توضيحي :

-12

12

3

15

15

-5

5

X

4

5

0

-4

4

2

2

Y

0

2

NaN

3

3

-1

1

Rem(x,y)

0

2

3

-1

3

1

1

Mod(x,y)

مثال دوال بواقي القسمة :

أوجد باقي خارج القسمة الصحيح للعملية (x/y) بإستخدام دوال التقريب المختلفة :

* x=[13   -12   7      5      -2] , y = -3
>> X = [13      -12   7      5      -2]   ;       y = -3 ;
>> R1=rem (x,y)
R1 =
        1      0      1      2      -2
>> M1=mod (x,y)
M1 =
        -2     0      -2     -1     -2
إعجاب واحد (1)