الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح إيجاد جذور كثير حدود من المرتبة N

بدأه kotaiba في 26 أبريل 2008 · 6 رد · 2,204 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

------------------------

الموضوع مفتوح والكمال لله وحده

وكما أوضحت في موضوع سابق عجز برنامج Microsoft_Math.3 عن إيجاد حل بعض كثيرات الحدود

فليس منطقيا أن يكون برنامجنا كاملا من المحاولة الأولى

وفي الحقيقة لم أكن متحمسا لبدء الموضوع خاصة مع نوعية الأشخاص التي سخرت من فكرة الموضوع

ومن قارن البرنامج بماتلاب أو مابل أو Math.3 ولم ينتبه أن الموضوع فكرة ناتجة عن مجهود فردي محدود مقارنة بتلك الأسماء

ولكن ما يهمني هو نقل العلم ولو كان مثقال ذرة وإن شاء الله أوفق في ذلك:

=======================================================================

نسخة البرنامج الأخيرة

http://www.raffe3.com/download.php?filename=9ed9cda600.rar

1- مجال الدراسة (مجال التجريب) :

--------------------------------------

أي كثير حدود ينتج عن جداء

(x-x1)*(x-x2)*(...

x-x1 الحل هو x=x1

x-x2 الحل هو x=x2

(x^2 +(-x1-x2)*x +x1*x2)*(....

بعد التأمل في الملاحظة السابقة:

نوجد أكبر أعداد المجموعة : {a0/an , a1/an , a2/an , … , an-1/an}

وليكن بالقيمة المطلقة x

نلاحظ أن الحلول محصورة بالمجال [-x,+x]

X^2 +2x -3

---------------

مجال الدراسة:

{ a0/an , a1/an }

{ -3/1 , 2/1 }

أكبر الأعداد بالقيمة المطلقة هو 3

فيكون مجال الدراسة [-3,3]

797019-28.jpg

وكما نلاحظ الحلول محصورة داخل المجال

وهي الفكرة الأولى

2- طريقة دراسة المجال:

--------------------------

-----------------------------------------------------------------------------------------

ملاحظة (الأكواد التالية هي أدوات شرح وليست حقيقية – سنبدأ بالأكواد الحقيقية لاحقا)

----------------------------------------------------------------------------------------

أي كثير حدود (بقاعدة ربط وحيدة) هو تابع مستمر وعندما يتحول التابع المستمر من القيمة السالبة إلى الموجبة أو العكس فقد مر بالقيمة صفر

797019-29.jpg

لو لم يكن وقت تنفيذ البرنامج بالحسبان لكان الحل بالشكل التالي

X0 = -x

1

F = F (x0

While x0 < +x

If F(x0) = 0 then wrilteln(x0)

X0 = x0 + 0.00001

Goto 1

End while

ولكن هذه الطريقة مستحيلة وسيتوقف معها الكومبيوتر خاصة مع توابع بأمثال كبيرة جدا

تعتمد فكرة الحل على طريقة العداد داخل عداد (Label)

X0 = -x

F = F(x0

If F > 0 Then GoTo 1

If F < 0 Then GoTo 2

1:

if x0 > +x then Exit Sub

While F >0 and x0 < +x

F = F(x0)

X0 = x0 +0.1

End while

If F <= 0 then

L1 = x0 – 0.1

L2 = x0

في Label 1 عند ملاحظة البرنامج تحول قيمة التابع بالشكل (موجب –سالب) سيتوقف ويضع المجال التالي قيد الدراسة

797019-30.jpg

أصبح مجال الدراسة هو [L1,L2]

(ما زلنا في Label 1 )

والآن نضع عداد جديد داخل المجال المذكور

S = L1

F = F(s

While F >0 and s<L2

S = s+ 0.00001

F = F(s

End while

ListBox1.Items.Add(s)

Goto 2

بعد أن تحول التابع للقيمة السالبة يتحول البرنامج إلى Label 2

ونضع عداد داخل عداد بشكل مشابه للحالة الأولى طبعا مع عكس متراجحة F

2:

if x0 > +x then Exit Sub

While F < 0 and x0 < +x

F = F(x0)

X0 = x0 +0.1

End while

If F >= 0 then

L1 = x0 – 0.1

L2 = x0

S = L1

F = F(s

While F < 0 and s < L2

S = s+ 0.00001

F = F(s)

End while

ListBox1.Items.Add(s)

Goto 1

797019-31.jpg

وبذلك نكون قد جمعنا الدقة والسرعة

كل ما سبق هو فكرة مبدئية للبرنامج تقع بالمشاكل التالية:

----------------------------------------------------------

1- نفاط التماس:

-------------------

عند وجود نقطة تماس بقيمة عشرية أصغر من عداد الدراسة ستنتج الحالة التالية

797019-32.jpg

البرنامج سيلاحظ أن قيمة التابع هي (سالب – سالب) وبذلك لن يتوقف وينشئ مجال دراسة صغير [L1,L2]

إلا إذا صادف العداد قيمة نقطة التماس

797019-33.jpg

وبذلك نكون قد ضيعنا أحد الحلول

2- تغير مكثف للتابع ضمن مجال الدراسة

-------------------------------------------

797019-34.jpg

وهنا كحالة مشابها للحالة الأولى لن يشعر البرنامج بتغير قيمة التابع بين الموجب والسالب والعكس

سأبدأ بالحديث عن عداد الدراسة قبل الوصول لحل المشاكل السابقة:

----------------------------------------------------------------

إن عداد الدراسة x0 يتزايد بقيمة يجب أن تكون تتبع لطول المجال وليست ثابتة كما في الأعلى

(x0 =x0 +0.1)

نلاحظ التابع

X^2 +2x -3

---------------

مجال الدراسة:

{ a0/an , a1/an }

{ -3/1 , 2/1 }

أكبر الأعداد بالقيمة المطلقة هو 3

فيكون مجال الدراسة [-3,3]

797019-28.jpg

وكما نلاحظ الحلول محصورة داخل المجال

مجال دراسة التابع السابق صغيرة جدا فيمكننا تصغير زيادة العداد

X0 = X0 +0.0001

أما مع توابع قد يصل مجال الدراسة إلى 100000 مثلا

فيجب تصغير الزيادة لعداد الدراسة

X0 = X0 +0.1

ولنشمل جميع الحالات

X0 = X0 +e

قيمة e تتبع لطول المجال

e = 1

IF X<100000

e = 0.1

IF X<10000

e = 0.01

IF X<1000

e = 0.001

IF X<100

e = 0.0001

IF X<10

e = 0.00001

عندما يكون مجال الدراسة صغير لن يقع البرنامج بالمشاكل السابقة

حل مشكلة نقاط التماس:

-------------------------

نقوم بدراسة مشتق التابع F بالطريقة السابقة وتحديد نقاط الإنعدام

إن نقاط إنعدام مشتق التابع هي النقط المسببة للمشاكل أثناء دراسة التابع

797019-36.jpg

نضع حلول معادلة المشتق بمصفوفة B(i)

بعد الإنتهاء من دراسة المشتق والبدء بدراسة التابع المطلوب:

نطبق التغيير التالي:

عند اقتراب عداد الدراسة من نقط إنعدام المشتق نزيد من دقة العداد بالشكل التالي

IF X0 >B(i)-2e AND X0 <B(i)+2e Then

X0 =X0 +0.00001

797019-37.jpg

هل سنقع بنفس الإشكال لنقاط التماس لمشتق التابع ؟

إن نقاط التماس لمشتق التابع لا تهمنا لأن نقطة التماس للمشتق لا يمكن أن تكون نقط تماس للتابع

797019-38.jpg

نستفيد من دراسة مشتق التابع بتحديد نقط الشك(التماس)

طبعا يكفي دراسة مشتق واحد ولكن سأذكر الملاحظة التالية للفائدة:

عندما نشتق التابع فإن مجال دراسة المشتق سيصغر

وإذا قمنا بالإشتقاق مرة أخرى فإن مجال دراسة المشتق الجديد سيصغر أيضا

وبالنسبة لدراسة التوابع بالطريقة الأولى (كلما صغر المجال زادت الدقة)

وأترك الإستفادة من الملاحظة لخيال المبرمج

خلاصة:

--------

1- دراسة مشتق التابع بالطريقة الأولى

2- تحديد نقاط إنعدام المشتق إن وجدت لأنها نقاط شك بالنسبة للتابع F

3- دراسة التابع المطلوب بالطريقة الأولى مع اختلاف بسيط بعداد الدراسة عند الإقتراب من نقط الشك

إن شاء الله أكون قدمت شيء مفيد وليس مضيعة للوقت

--------------------------------------------------

الشكر للأخ عماد والأخ أمين على تشجيعي لبدء الموضوع

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

تم تعديل هذه المشاركة بواسطة kotaiba في 26 أبريل 2008 في 15:39

#2

الحقيقة موقع رفع دمر الموضوع بتوقفو عن عرض الصور

ولم أعد قادرا على تعديل الموضوع

على كل حال لمن يريد البرنامج

http://www.zshare.net/download/113079102fbd044c/

#3

بارك الله فيك وزادك علما

منتظر موضوع الجذور التخيليه

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#4

السلام عليكم ورحمة الله

أخى الفاضل

بارك الله فيك , معلش انى اتاخرت عليك , لكن غصب عنى والله. عندى شغل كتير جدا ومش عارف اتفرغ.

عامة الموضوع والشرح يحتاج العديد من التعليقات. ولكن ليس الان , فقط اريدك ان ترسل لى نسخة من الصور الخاصة بالموضوع , وان شاء الله احاول اضعها تانى.

وبالنسبة للشرح والبرنامج يمكننا بالتعاون ان شاء الله وانتاج حاجه كويسه باذن الله.

بارك الله فيك , ونفع بك ,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#6

السلام عليكم

يا اخى قتيبه هذه نتيجة برنامجى

post-153585-1210241824_thumb.gif

والله بحاول افسر ظهور

X4

وعندك ايضا

http://up.raff3.com/download.php?filename=06f1f57227.rar

تم تعديل هذه المشاركة بواسطة amin_mu123 في 8 مايو 2008 في 13:34

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#7
802962-3.jpg

تم تعديل هذه المشاركة بواسطة kotaiba في 8 مايو 2008 في 13:55

مواضيع مشابهة