كـثـيـرات الـحـدود

كثيرات الحدود
مقدمة

يتم التعامل مع كثيرات الحدود في الماتلاب من خلال توابع خاصة أعدت لحل كثيرات الحدود ضمن هذا البرنامج , حيث يتم تحويل كثير الحدود إلى شعاع سطري , وتمثل الأعداد ضمن هذا النسق معاملات كثير الحدود , وترتب ضمن النسق بشكل تنازلي يوافق قوى المتحول في كثير الحدود بدءاً من القوة (n) وحتى القوة (0) بما في ذلك المعاملات المعدومة للمتحول , حيث (n) أعلى رتبة للمتحول في كثير الحدود وذلك للتوافق ما الأسلوب الذي يتعامل معه برنامج الماتلاب في حل كثيرات الحدود.

مثال بسيط :
f(t) = 7t^4 +6t^3+3t^2+t+5
يتم تمثيل كثير الحدود هذا بالمصفوفة :

العمليات الحسابية على كثير الحدود
·        إيجاد جذور كثير حدود :
إن التابع roots هو التابع الخاص في
الماتلاب الذي يمكن عن طريقه إيجاد جذور 
كثير حدود , حيث يعطي هذا التابع جذور
كثير الحدود على شكل شعاع عمود وعناصر 
هذا الشعاع هي جذور كثير الحدود.
  






  مثال (1) :
%f(t) = 7*t^4+6*t^3+3*t^2+t^1+5;
A = [7 6 3 1 5];
A_roots = roots(A)

 مثال (2) :
%f(t) = 7t^3+5t^2-3t^1+10
A = [7 5 -3 10];
A_roots = roots(A)

·        إيجاد كثير حدود انطلاقاً من جذوره :
باستخدام التابع الخاص poly يمكن إيجاد كثير حدود إنطلاقاً من جذوره , أي أن وظيفة هذا التابع 
معاكسة تماماً للتابع سابق الذكر.

 مثال (1) :
A = [1 3 4 5 6];
roots(A)
poly(ans)
مثال (2) :

A = [3 5 6 7 8 9];
roots(A)
poly(ans)
نلاحظ من المثال الثاني أن هناك كثير حدود غير كثير الحدود الذي ادخلناه أولاً له نفس الجذور , وبالتالي ليس بالضرورة الحصول على التابع المدخل مسبقاً عند استدعاء (إعادة توليد) كثير الحدود الجديد من التابع (poly) , كمال هو جدير بالذكر أنه هذا تابع فيه نسبة خطأ لا تتجاوز (1/1000000) قد تظهر في بعض الحالات.

·        حساب قيمة كثير حدود عند قيمة معينة :
تتم هذه العملية في الماتلاب باستخدام التابع الخاص polyval(p,x)  حيث يعبر p النسق (المصفوفة) 
الممثل لكثير الحدود , والرمز x يعبر عن قيمة المتحول المراد حساب كثير الحدود عنده.
 مثال (1) :
G(x) = t^2+t+1
p = [1 1 1];
x = 3;
gx = polyval(p,x)
                                                      gx= 13
كما يمكن بطريقة ثانية إيجاد قيمة كثير الحدود لأجل قيمة معينة باستخدام التابع الخاص subs وبالاستعانة بالتعليمة syms حيث يقوم هذا الأخير بتحويل قيمة المتحول x إلى رمز يمكن التعامل معه من قبل البرنامج والتعرف عليه , والأمر subs الذي يقوم بحساب القيمة لكثير الحدود عند قيمة المتحول المطلوبة (أي أن التعليمة syms وظيفتها تعريف المتغير x)

مثال (2) :
syms x
gx = x^2 + x + 1;
subs(gx,3)

ans = 13



مثال (3) :
المطلوب حساب قيم كثير الحدود من أجل عناصر المصفوفة x
p=[1 1 1]
x = [2 4 6]
gx = polyval(p,x)

·        اشتقاق كثيرات الحدود : 
يمكن إيجاد مشتق كثير حدود باستخدام التابع polyder وتكون النتيجة عبارة عن كثير حدود يمثل 
مشتق كثير الحدود الأصل.

مثال (1) :
gx = [2 5 -6 -5];
a = polyder(gx)

لمقارنة التابع مع مشتقه بيانياً , يمكن رسمهما معاً على نفس المحاور (محاور الاحداثيات) بالتعليمات التالية :

x=-10:0.5:10;
gx=[2 5 -6 -5];
a = polyder(gx)
plot(x,polyval(gx,x),'-*r',x,polyval(a,x),'-og')



كما يمكن استخدام مشتق كثير الحدود بطريقة أخرى وذلك باستخدام الأمر syms والأمر diff(function name


 مثال (2) :
syms x
gx = 2*x^3 + 5*x^2 - 6*x - 5;
diff(gx)
ans = 6*x^2 + 10*x -6 

في هذا المثال نلاحظ أن التابع diff يمكنه أيضاً حساب المشتق بالنسبة لأحد المتحولات (في حال وجود أكثر من متحول في التابع , في مثالنا هذا قمنا بإيجاد مشتق التابع بالنسبة للمتحول (x).
كما يمكن أيضاً من خلال هذا التابع إيجاد المشتقات من المرتبة الثانية والثالثة ومافوق وذلك كما يلي 

diff(gx,x,2)
diff(gx,x,3)


أي إيجاد المشتق (الثاني أو الثالث) بالنسبة للمتحول x....


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

مثال :
المطوب إيجاد تكامل كثير الحدود (6x2+10x-6) من أجل ثابت تكامل k = -5
p =[6 10 -6];
k = -5;
gx = polyint(p,k)

              
كما يمكن إيجاد تكامل كثير الحدود باستخدام syms والتابع int وذلك بشكل يماثل التابع diff لإيجاد المشتق.
int(gx) 

·        إيجاد معادلة كثير الحدود الملائم :
إذا كان لديك مجموعة نقاط من  منحني لا تعرف معادلته وتريد ان تشكل معادلة لهذا المنحني , 
فيمكن الاستعانة بالتابع polyfit للقيام بهذه العملية , حيث أنه يعطيك معادلة كثير الحدود الملائم 
للمنحني بحيث أنك تختار درجة كثير الحدود الذي تريد الحصول عليه.
مثال :
x=[0:0.2:1.2];
y=[1 2 4 7 8 5 2];
u=polyfit(x,y,3)

t=polyval(u,x)
plot(x,y,'-or',x,t,'-*')



·        العمليات الرياضية على كثيرات الحدود :
يمكن جمع وطرح كثيرات الحدود من خلال التعامل مع المصفوفات الممثلة لها مع ملاحظة ان تكون كلا المصفوفتين من نفس الدرجة والمثال التالي يوضح ذلك ....
مثال :
A = 2x4 + x3 + 3x2 + x + 1
B = 4x2 - x -1
        الحل :
A = [2 1 3 1 1];
B = [4 -1 -1];
C = A + [0,0,B]
D = A - [0,0,B]
   
 , (Convolution مختصر كلمة (conv اما عملية الجداء فيمكن القيام بها بالاستعانة بالتابع
حيث باستخدام هذا التابع يتم الحصول على جداء كثيرات الحدود بشرط أن تعرف كثيرات الحدود بأنساق موافقة ومعبرة عن معاملاتها. 
conv(A,B)       %conv(B,A)


الجدول التالي يبين أهم التوابع المستخدمة وحسب الترتيب الأبجدي
ضرب كثير الحدود
قسمة كثير الحدود
اكتشاف معادلة كثير حدود جذورها معلومة
مشتق كثير حدود
إيجاد كثير الحدود الملائم
تكامل كثير الحدود
حساب قيمة كثير الحدود عند قيمة معينة
إيجاد جذور كثير الحدود




وأخيراً : نتمنى لكم المتعة و الفائدة