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

حل معادلات بمجاهيل اكثر

بدأه fmgret12 في 18 سبتمبر 2010 · 6 رد · 10,828 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته وكل عام وانت بخير

سؤالى هو هل يمكن ايجاد خوارزمية تقوم بحل مجموعة من المعادلات M بعدد من المجاهيل N بحيث تكون N>M

بحيث ان يتضمن الحل المتغيرات الاختيارية ايضا والتى عددها (N - M)

و يفضل الحل باسلوب برمجى حتى يمكن وضع المتغيرات الاختيارية بصورة اسرع من تلك الصورة اليدوية

وهنا مثال على تلك المعادلات

1 0 0 0 0 1 1 0 0 0 = 4

1 1 0 0 0 1 1 1 1 0 = 6

1 1 1 0 0 0 0 1 1 1 = 6

1 1 1 1 0 0 0 0 0 1 = 8

0 1 1 1 1 0 0 0 0 0 = 8

0 0 1 1 1 1 0 1 0 0 = 9

0 0 0 1 1 1 1 1 1 1 = 12

0 0 0 0 1 0 1 0 1 1 = 7

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

برجاء المساعدة ان امكن فى حل هذا النوع من المعادلات التى يتيح للمستخدم وضع المتغيرات الاختيارية بصورة اوتوماتيكية من خلال خوارزمية برمجية .

ولكم جزيل الشكر

#2

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

أخى الفاضل

رغم اننى لم افهم سؤالك جيدا. الا انه بخصوص هذه الجزئية

fmgret12 كتب:

برجاء المساعدة ان امكن فى حل هذا النوع من المعادلات التى يتيح للمستخدم وضع المتغيرات الاختيارية بصورة اوتوماتيكية من خلال خوارزمية برمجية .

يمكنك ببساطه تضبيط البرنامج على وضع المتغيرات الإختيارية بـ صفر. وذلك بحذف عدد من الأعمده من مصفوفة المعاملات ، حتى يكون عدد الصفوف مساوي لعدد الأعمدة. وبالتالى يكون للنظام الناتج حل وحيد. وهناك العديد من الخوارزميات التى يمكنك استخدامها لحل نظام المعادلات الناتج بعد حذف الأعمدة.

وعند طباعة النتائج ، تضع قيمة المتغيرات الإختيارية - التى تم حذفها - اصفارا ، بالإضافة للحلول التى حصلت عليها من النظام المختصر.

هذا والله اعلى واعلم ،،،

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

bnr025.gif

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

#3

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

اخى الفاضل الدكتور / عماد

المقصود بسؤالى هو الحصول على الحل العام لكافة المتغيرات اى الحصول على الحلول اللانهائية للمعادلات

بان يكون الحل العام دالة فى عدد المتغيرات الزائدة والتى تزيد عن عدد المعادلات الموجودة فى ذلك النظام

اما بالنسبة للجزئية التى قمت بالاشارة اليها هل يمكنك او من احد الاخوة التوضيح اكثر ولو بمثال بسيط

اقتباس
يمكنك ببساطه تضبيط البرنامج على وضع المتغيرات الإختيارية بـ صفر. وذلك بحذف عدد من الأعمده من مصفوفة المعاملات ، حتى يكون عدد الصفوف مساوي لعدد الأعمدة. وبالتالى يكون للنظام الناتج حل وحيد

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

وهى بأن يكون قيم بعض المتغيرات صفرية وكيف سيتم اضافة تلك المتغيرات للحل المبدئى ؟؟؟

ارجو التوضيح ان امكن

و لكم جزيل الشكر

تم تعديل هذه المشاركة بواسطة fmgret12 في 19 سبتمبر 2010 في 18:50

#4

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

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#5

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

أخى الفاضل fmgret12

fmgret12 كتب:

المقصود بسؤالى هو الحصول على الحل العام لكافة المتغيرات اى الحصول على الحلول اللانهائية للمعادلات

بان يكون الحل العام دالة فى عدد المتغيرات الزائدة والتى تزيد عن عدد المعادلات الموجودة فى ذلك النظام

إذا كنت تقصد بـ"الحل العام دالة فى عدد المتغيرات الزائدة" هو ان يخرج لك البرنامج صيغة رياضيه يمكن استخدامها فى توليد بعض الحلول بتغيير قيم المتغير الزائد ، فأنت تطلب شئ صعب المنال أخى الفاضل اقرب ما يكون الى الخيال :)

إلا فى حالات نادرة ويكون فيها نظام المعادلات بسيط جدا وصغير الحجم. وعندها ستحتاج لمجهود جبار لعمل البرنامج بحيث يخرج لك صيغة رياضية.

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

أما إن كنت تقصد ان تجعل البرنامج نفسه متعدد المخرجات حسب متطلبات المستخدم. فهذه يمكن عملها ببساطه إن شاء الله.

يمكنك ببساطه جعل المستخدم يدخل قيم المتغيرات الزائدة يدويا -كجملة إدخال- ومنها يقوم البرنامج بحل النظام الجديد بعد التعديل.

fmgret12 كتب:

اما بالنسبة للجزئية التى قمت بالاشارة اليها هل يمكنك او من احد الاخوة التوضيح اكثر ولو بمثال بسيط

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

وهى بأن يكون قيم بعض المتغيرات صفرية وكيف سيتم اضافة تلك المتغيرات للحل المبدئى ؟؟؟

أخى الفاضل ، الفكرة تمكن فى اعتبار قيم المتغيرات الزائده اصفارا (على اساس ان الصفر من قيم النطاق الخاص بها)

وحيث ان كل عمود يمثل معاملات احد المتغيرات -متغير واحد- ، وحيث ان العلاقة بين المتغيرات والمعاملات علاقة ضرب. فإننا لو اعتبرنا ان هذا المتغير يساوى صفرا ، فطبيعى ان حاصل ضربه فى عمود المعاملات الخاص به سيكون صفرا ايضا (متجه صفرى). وبالتالى سيختفى هذا العمود مع متغيره ولن يؤثر على الحدود المطلقه.

أما لو كانت قيمة المتغير الزائد مخالفه للصفر ، بالتأكيد عندها ستتغير قيمة الحدود المطلقه بعد التعويض عن هذا المتغير الزائد بالقيمة الغير صفرية.

اتمنى يكون الأمر واضح ، ولو هناك اى اسئلة اهلا وسهلا بها :)

أخى الفاضل محمد علاء الدين

محمد علاء الدين كتب:

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

بالضبط أخى الفاضل

حيث ان النظام الناتج بعد التخلص من المتغيرات الزائدة سيكون فيه عدد المعادلات مساوى لعدد المجاهيل (المتغيرات) ، فيمكننا استخدام الطريقه التى اشرت اليها حضرتك ، او طريقة معكوس المصفوفه او غيره.

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

اما فى حالة ان النظام يحتوى عدد كبير من المعادلات ، فاستخدام مثل هذه الطرق سيكون شاق جدا وربما جدا جدا

وعندها لابد من اللجوء الى احدى الطرق التقريبية

هذا وبالله التوفيق ،،،

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

bnr025.gif

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

#6

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

اخى الفاضل الدكتور / عماد

جزاك الله خيرا على التوضيح ولكن يتبقى الجزء الاخر وهو كيف يمكننى اضافة تلك المتغيرات الاختيارية للحل المبدئى حيث اننى فعلا احتاج للحل العام وتوليد الحلول الصحيحة الموجبه على الرغم من انها صعبه المنال كما قلت

ولكنى اعتقد من انك تستطيع عمل ذلك او من احد الاخوة الزملاء

وجزاكم الله خيرا

#7

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

fmgret12 كتب:

جزاك الله خيرا على التوضيح ولكن يتبقى الجزء الاخر وهو كيف يمكننى اضافة تلك المتغيرات الاختيارية للحل المبدئى حيث اننى فعلا احتاج للحل العام وتوليد الحلول الصحيحة الموجبه على الرغم من انها صعبه المنال كما قلت

بارك الله فيك اخى الكريم. اخشى انك فهمت كلامى على غير ما اقصده :). على كل سأشرح لك كلامى مرة اخرى

بفرض ان نظام المعادلات هو

1	0	0	1	2	=	4
1	1	1	2	0	=	6
2	0	1	1	1	=	6

واضح ان النظام هو 3 معادلات فى 5 متغيرات ولتكن x1, x2, x3, x4, x5. لنعتبر الأن ان x2, x5 هى المتغيرات الإختيارية (الزائدة). بوضع قيمة x2=0 , x5=0 سيختفى العمود الثانى وكذلك العمود الخامس من النظام السابق وسيتحول الى 3 معادلات فى 3 متغيرات x1, x3, x4 بالشكل التالى

1	0	1	=	4
1	1	2	=	6
2	1	1	=	6

بحل هذا النظام بأى طريقة معروفه ، سيمكننا ايجاد قيم x1, x3, x4 بسهولة. ولتكن قيمهم -مثلا- هى x1=2, x3=1, x4=5.

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

(2,1,5)

وبإضافة المتغيرات الإختيارية (المحذوفه) لمتجه الحل. سيكون المخرج النهائى للبرنامج فى الصورة

(2,0,1,5,0)

هذا ما اردت قوله فى المشاركات السابقة :)

fmgret12 كتب:

ولكنى اعتقد من انك تستطيع عمل ذلك او من احد الاخوة الزملاء

للأسف الشديد أخى الفاضل ، انت تتكلم عن مشكلة اكبر من امكانياتى ولا يمكننى -ولا احد من الإخوة- حلها.

القضية ليست قضية برمجه

القضية انه علميا لا توجد خوارزمية رياضية لعمل ما تطلبه حضرتك.

بالله التوفيق ،،،

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

bnr025.gif

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…