--------------------------------------------------------------------------------
المقدمة
بسم الله الرحمن الرحيم
ربما لا يبدو هذا الموضوع للبعض من الذين اعتادوا شروح التطبيقات البرمجية فقط، ذات أهمية تذكر، و ربما من وجهة نظره كمستخدم محق، لان الأمور الأساسية التي تهم الشخص ، تتوقف على نوع المجال الذي يحبه، و المسلك الذي يسلمه، الشائع عندنا في كل المنتديات الرغبة الجامحة إلى فهم كيفية التعامل مع التطبيقات المختلفة للبرامج software , و هذا لا يعني التقليل من أهمية هذا الميل، لكن ما أحاول طرحه في هذا الكتاب هو أساسيات الرياضيات , التي يعلم الجميع انه من غير الممكن التعامل المفاهيم الفيزيائية من غيرها, أو بتعبير آخر تدخل في تصميم كل التطبيقات الميكانيكية و الكهربائية و الأهم الحاسوبية – إن صح هذا التعبير – و لندلل على صحة ما نقول, فان أراد مهندس او متخصص تصميم دائرة كهربائية معينة تحتوي على مكثف , ملف و مقاومة، وا راد حساب الجهد الذي يجب ان يستهلكه كل واحد من هذه العناصر, يصبح من البديهي تعامله مع معدلات الدرجة الثانية, و بالأخص المعادلات التفاضيلة , ويصبح من المستحيل إجراء أي تصميم دقيق من غير فهم هذه المعدلات, و نفس الأمر يتعلق بمبرمج النظم، الأمثلة تتعدد و لا أريد ان أطيل الشرح أكتر.
لمن هذه الصفحات ؟
كما قلت سابقا, قد يبدو من المرهق على غير المتخصص التعامل مع هذه الصفحات, لكن المكتبات العربية الالكترونية تفتقر إلى هذا النوع من الكتب الذي يحتاجه طالب الكومبيوتر و بقية التطبيقات, و لا يخفى على الجميع أن كسب رهان الرفع من مستوى الطلاب , بتزويدهم بالمراجع السهلة و الواضحة يشكل عاملا مهمة في تنمية قدراتهم, و لا يضير أن يستفيد غير الطلاب من هذه الوريقات التي أتمنى أن تجد القبول و الاستحسان لدى الجميع.
محتويات الدروس content
1. المعادلات التفاضلية الاعتياديةordering differential equation
2. المعادلات التفاضلية ذات المرتبة الأولى ( المتجانسة)
Homogeneous
3. المعادلات التفاضلية ذات المرتبة الأولى ( الخطية)
Linear differential equation
4. المعادلات التفاضلية ذات المرتبة الأولى ( التامة)
Exact differential equations
5. المعادلات التفاضلية يمكن تحويلها إلى الصيغ المفصولة
Equations reducible separable form
6. المعادلات التفاضلية يمكن تحويلها إلى الصيغ المتجانسة
Equations reducible homogeneous form
7. المعادلات التفاضلية يمكن تحويلها إلى الصيغ التامة
Equations reducible exact form
8. الحل العام و الحل الخاص
General and particular solution
9. المعادلات التفاضلية ذات الحد المفقود
Differential equations with one variable missing
10. المعادلات التفاضلية ذات المعاملات الثابتة
Linear differential equations with constant coefficients
11. المعادلات التفاضلية من المرتبة الثانية الخطية غير المتجانسة
Non homogeneous second order linear differential equation
12. تحويل لبلاس
Laplace transform
13. معكوس تحويل لبلاس
Inverse laplace transform
14. حل المعادلات التفاضلية باستخدام تحويل لبلاس
Solution of deferential equation using laplace transforms
15. حل المعدلات باستخدام المتسلسلات ( الحل التقريبي )
Solution of deferential equation using by series (approximate solution)
16. دالة بسيل
Bessel's function
17. تطبيقات المعدلات التفاضلية
Application of deferential equation
فهذه أهم المعدلات التفاضلية و التي يمكن اعتبارها المدخل , و الملاحظ أننا ابتدأ بأبسط أنواعها ثم التدرج فيها , وصولا إلى بعض تطبيقاتها العملية و المتعلقة بالكومبيوتر من اجل توضيح أهمية المادة التي تدرس حاليا.
و هذا الجانب العلمي تم إهماله كثيرا من جانب الدارسين و المشتغلين العرب في مجال الحاسب. علما أنه للتوصل لتطبيقات و برامج صناعية و علمية كالتحكم في الجودة و المحاكاة الميكانيكية و الكهربائية فالسبيل الوحيد هو تعلم رياضيات الحاسوب.
و هذا الموضوع إن شاء الله سيكون مقدمة لتحقيق هذا الهدف و الإرتفاع إلى مستوى جديد في البرمجة و استغلال حواسيبنا للأفضل. فبارك الله فيك و أعانك على هذا الهدف النبيل.
أريد هنا أن أشدد على أهمية هذه الدروس لماذا ؟ لن أدخل هنا في فوائد التحليل العددي لدراسة العلوم كافة و دعمها و لكن فقط أشير إلى أن هذا الجانب هو ما ينقص مناهجنا التعليمية.
عندما يحصل فني أو مهندس على وظيفة معينة، مثلا في الصيانة أو الإنتاج أو الجودة أو تدبير المواد الأولية، يتوقع أنه سيفتح جهاز الحاسوب ليجد أمامه أحد برامج SAP أو Baan أو PeopleSoft أو Oracle أو JDEdwards و كل ما عليه هو الضغط على بضعة أزرار هنا و هناك ليعرف حالة المخزون و الطلبيات و موعد تسليمها و نتائج اختبارات الجودة و كمية المواد الأولية التي يجب شراؤها و عدد الـ lots في خطوط الإنتاج و أسماء العمال الذين عملوا في تجميع منتج معين و عدد ساعات غياب عامل ما و الإقتراحات التي قدمها العمال و عدد توقفات آلة ما ...
لكن هذا غير موجود على أرض الواقع، واقعنا العربي...
و حتى الشركات الغنية كشركات البترول و الصلب، التي استثمرت في هذه الحلول و ركبتها، لا تستفيد منها كاملا و أغلب الموظفين يعتبرونها عبئا إضافيا على و اجباتهم اليومية و قد يستعملونها فقط عند قدوم زوار خارجيين.
أما في الشركات المتوسطة و الصغيرة، فمن الصعب على الفني أو المهندس إقناع المدراء بالفائدة الملموسة لمثل هذه الأدوات خصوصا أن ثمن تملكها السنوي Total Cost of Ownership مرتفع مقارنة بميزانية الشركة السنوية، لذلك فالحل الوحيد الذي يجده المهندس لتدبير أموره اليومية هو ابتكار حلول برمجية على مقاس الشركة .
و لن يتأتى له ذلك إلا بمعرفة مسبقة بطرق التحليل العددي و استعمال الحاسوب في حل معادلات رياضية. و هذا يدرس في الجامعات و مراكز التكوين (و منتدانا الحبيب) و ليس في مكان العمل. لأن وقت العمل ضيق و محسوب.
كما أنه لا مجال لاستعمال برامج مقرصنة تحت طائلة تعريض الشركة لغرامات مالية في حال قيام مايكروسوفت و أخواتها بالتحقق من برمجيات الشركة (إثر مكالمة هاتفية من عامل لم يستفد من العلاوة السنوية ).
قد تكون الصورة التي رسمتها قاتمة لكنها واقعية و تبين أن البرمجيات التي تستعملها في حاسوب المنزل لا تستطيع تثبيتها كلها في حاسوب العمل دون رخص.
في النهاية، أقول اني لا أقصد أن يكون المهندس مبرمجا محترفا زيادة على التخصص الذي درسه، لكن وضع برنامج صغير لتتبع مؤشر ما او ورقة excel ببعض المعادلات الرياضية أسرع و أنجع من تعلم برامج من العيار الكبير في حالات كثيرة.
=============================================
رياضيات الحاسب الآلي
الدرس الأول
التسمية الدقيقة لهذا التخصص هو التحليل العددي( numerical analyses) يستخدم التحليل العددي في حل المعادلات الرياضية التي يصعب حلها أو يستلزم وقت طويلا في الحل، فإذا كانت لدينا معادلة رياضية من الدرجة الرابعة أو الخامسة فان من الممكن حلها بالطرق التقليدية، و حتى هذه الطرق تاخد وقتا، إما إذا كانت المعادلة من الدرجة السادسة و أكثر يكون من الصعب دائما التعامل مع المعادلة تقليديا، و مع ظهور الحاسب الآلي ( الكومبيوتر) اتضحت أهميته البالغة في حل هكذا معادلات، و ذلك لتوفيره الوقت و الجهد. و بالأخص في المعادلات التي تحتاج إلى تكرار كبير من اجل الوصول إلى النتيجة أو الحل.
في حقيقة الأمر يوجد الكثير من البرامج يمكن استخدامها في هذا المجال مثل برنامج MATHCAD , MATHLABو حتى برنامج EXCEL المرافق لحزمة OFFECE يمكن أجراءه في حل الكثير من المعدلات و إجراء العديد من الصغير الرياضية المفيدة ، لكن في هذه السلسلة سنقوم باستخدام إحدى لغات البرمجة في التعامل مع المعادلات الرياضية ، سنتعامل مع لغة FORTRAN لما تمتاز به هذه اللغة من استقرار عال و دقة في المعادلات و تحديد دقيق لنوع المتغيرات مع سعة كبيرة في نوع المتغيرات، من الممكن أنها ليست على درجة كبيرة من الانتشار و الاستخدام ، غير أن المتخصصين في مجال التحليل العددي و الرياضيات بصفة عامة يعترفون لها بالفضل، سنستخدم الإصدار الرابع منها و هي
MICROSOF DEVELOPER STUDIO 0.4
و هو إصدار يعمل تحت بيئة الويندوزWINDOWS) ) و لست في معرض الدعاية لهذه اللغة و لا أحب المقارنة بين اللغات المختلفة غير أن FORTRAN LANGUAGE هي لغة المهندسين بكل كفاءة
لمن هذه الدروس؟؟
أصارحكم القول إن مثل هذه الدروس لا يمكن أن تفيد غير المتخصص او الطالب الذي يبحث عن المعرفة الرياضية آو البرمجية، حيث سنعتمد برنامج لكل مسالة رياضية و لا يكمن أن يتفاعل معنا غير من يمتلك أساسيات البرمجة و بناء البرامج، و لمن لا يفضل استخدام لغة FORTRAN سنضع خوارزمية لكل برنامج من أجل كتابته بأي لغة يفضلها، و لمن لا يمتلك أساسيات البرمجة أنصحه بقراءة المقال الذي كتبت في(شرح البرامج) بعنوان(الطرق إلى البرمجة 2) و بامكانه التوسع أكثر في هذا المجال عن طريق أي كتاب يراه مناسب.
قبل التعامل مع المعدلات الرياضية لا بد أن نقدم أساسيات لغة FORTRAN من التواب و المتغيرات.
أساسيات لغة فورتران FORTRAN
1 الرموز CHARACTERS
تستخدم مجموعة من الرموز الأساسية في لغة FORTRAN و تتكون من الأتي :
1.1 الأرقام NUMBERS CHARACTERS
و هي 0 1 2 3 4 5 6 7 8 9
1.2 الحروف ALPHABATIC CHARACTERS
تشمل الحروف المستخدمة في لغة الإنجليزية و هي :
A B C ………………………..X Y Z
1.3 رموز خاصة SPECIEL CHARACTERS
و هي :
المساواة الفارزة
النقطة العشرية
القوس الأيمن )
القوس الأيسر (
الفاصلة العليا ( القسمة ) ÷ /
النجمة ( الضرب) *
الزائد +
الناقص –
2.1 أنواع البيانات في لغة FORTRAN
تمثل البيانات لفي لغة الفورتران FORTRAN بإحدى الأساليب الآتية :
2.2 صحيحة INTEGAR
و تشمل جميع الأعداد
حقيقية RAEL الأعداد التي تحتوي على العلامة العشرية
2.3 مزدوجة الدقة DOUBEL PRECESION
أعداد صحيحة آو حقيقة تخزن بدقة كبيرة
2.4 مركبة COMPLEX
أعداد تحتوي على كل من الجزء الحقيقي و التخيلي RAEL AND IMAGE
2.5 منطقية LOGICAL
القيم المنطقية أو الصادقة
2.6 الحروف الرقمية ALPHANUMERIC
المعلومات اللفظية LITERL INFORNATION الأنواع الربعة الأولى تستخدم لتمثيل القيم العددية خلال العمليات الحسابية ، و الأسلوب المنطقي يمثل القيم الصادقة او الكاذبة (TRUE OR FULSE)
الدرس الأول LESSON ONE
طرق حل العادلات ذات المجهول الواحد
SOLUTION OF EQUATION IN ONE VARIABLE
طرقة المقاطع
BISECTION METHOD
استهلال INTRODUTION
لنفرض أن لدينا المعالة الرياضية التالية :
X^2 + 4 = 0
مع ملاحظة أن الرمز(^) يعني أس أي مربع القيمة X )) و X^5 يعني الأس الخامس للمتغير X.
سيكون الحل المثالي لهذه المعادلة هو كالأتي:
X^2=4 X=±√4 X=-2 X=-2
وهو حل دقيق تماما بمجرد إتباع الخطوات السابقة, نحصل على الحل.
و إذا كانت لدينا المعادلة الرياضية التالية :
X^3+4X^2-10=0
فحلها يرهق قليلا و لا يعطي قيم دقيقة ، و لهذا نلجأ إلى طريقة المقاطع BISECTION METHOD التي تتلخص فيما يأتي :
لنفرض أن لدينا دالة F(X) معرفة و مستمرة خلال الفترة { A , B } مع الدالتين F(A) , F(B) فهنالك قيمة X0 تنتمي إلى الفترة
{A,B} كالدالة F(X0)=0.0 ، و التي تكون حلا للمعادلة F(X)
بما أن القيمتين A B تنتمي إلى نفس الفترة فهذا يعني ان الدالتين
F(A) , F(B) تنتمي إلى نفس النطاق
و حل المعادلة يكون هو النقطة X0 (PIONT SOLUTION ) و بما أن أساس الحل تقريبي فتكون الطريقة المثالية لخطوات الحل هي اخذ مجموعة من النقاط التقريبية المقربة للقيمة الصفرية كالقيمة 0.00001
و اختبارها فهي لا تساوي صفر لكنها دقيقة جدا و مقربة جدا من الصفر حيث يصعب الحصول على الحل الصفري في التحليل العددي مباشرة و هذه القيمة سنفرضها ليحملها المتغير P و يقترب كل مرة بقيمة دقيقة من الحل الصفري و تعتمد طريقة المقاطع (BISECTION METHOD) على نفس الفكرة في التعامل مع المسائل الرياضية و خوارزمية البرنامج هي كالآتي :
START RAED ( A , B ) DO P=(A +B ) / 2 Y1= A^3 + 4*A^2 – 10 Y2= B^3 + 4*B^2 -10 Y0=P^3 + 4*P^2 – 10 IF ( Y0 < 0.00001 ) GOTO STEP 100 IF (Y0*Y1 > 0.0 ) GOTO STEP 10 A=A B=B GOTO STEP 20 DO A=-P B=B GOTO STEP 20 WRITE Y0 , P STOP
شرح الخوارزمية :
نبدأ بقراءة القيمتين A B ثم نقوم بتطبيق القيمة المتوسطة للقيمتان من اجل تسريع الوصول للقيمة الصفرية و ذلك بأخذ المتوسط لهما و هي القيمة P)) ثم نقوم بتطبيق الدوال السابقة من اجل اختبارها و يتم ذلك باختبارين
الاختبار الأول يسأل هل قيمة Y0< 0.00001 بمعنى أن الحل قد تحقق اذا كانت الإجابة بنعم و الا فيتم الانتقال إلى الاختبار الثاني الذي يسال هل قيمة مضروب الدالتين Y0,Y1 اكبر من الصفر إذا كانت الإجابة بنعم فتأتي خطوة التقريب الأولى التي تضع قيمة P مكان قيمة B و تثبت قيمة A فيكون الاقتراب من جانب الدالة F(B) نحو القيمة الصفرية التقريبية و الا فيتم الانتقال الى الخطوة التالية التي تقوم بالتعويض عن قيمة A = P و تطبق ذلك على الدوال و تختبر القيم و هكذا يستمر الحل حتى يتحقق الشرط و تقترب الدالة من القيمة الصفرية و يتم طباعة القيمتين P , Y0
البرنامج بلغة FORTRAN
بعد تنصيب البرنامج تقوم بفتحه و تتبع الخطوات التالية:
1. من القائمة المنسدلة FILE تختار NEW
2. تظهر لك نافذة تختار منها الاختيار الأول TEXT ثم تقوم بالضغط على موافق
3. تأخذ مسافة قيمتها تاب واحد بالضغط على المفتاح TAB و قبلها تضع في بداية السطر الحرف C
4. تكتب البرنامج التالي :
C THIS PROGRAM TO CALCOLATE SOLUTION OF EQUATION BY USED BISECTION METHOD RAED ( *,* ) A , B P=(A +B ) / 2 Y1= A^3 + 4*A^2 – 10 Y2= B^3 + 4*B^2 -10 Y0=P^3 + 4*P^2 – 10 IF ( ASB( Y0) .LT. 0.00001 ) GOTO 100 IF (Y0*Y1 .GT. 0.0 ) GOTO 10 A=A B=B GOTO 20 A=-P B=B GOTO 20 WRITE(*,*) Y0 , P STOP END
5. تحفظ البرنامج باسم BISECTION.FOR ثم و هذه الخطوة مهمة جدا حيث يتحول البرنامج من مجرد ملف نصي TEXT إلى لغة FORTRAN و تظهر علامات معالج اللغة أي الكلمات المحجوزة للغة بخط ازرق و خط اخضر يحتوي البرنامج كله دليل على أن هذه الكلمات تحتوي على نص بلغة الفورتران
6. من القائمة المنسدلة BUILD اختر COMPILE BISECTION.FOR
7. تظهر لك نافذة في أسفل البرنامج إن كان البرنامج يحتوي على أخطاء فتبين لك الأخطاء و عليك المراجعة و التحقق و إلا فتكون النتيجة هي : (ERROR(S 0 WARING(S) 0
8. من القائمة المنسدلة BUILD اختر BUILD BISECTION.EXE
9. من نفس القائمة المنسدلة السابقة اختر الأمرEXECUTE BISECTION.EXE
10. تظهر لك نافذة ضع بها القيمة 1 و اضغط ENTER و القيمة 2 ثم اضغط ENTER
================================================
هذا الدرس نستعرض سويا احد الطرق المتبعة في التحليل العددي بعد أن تكلمنا عن مفهوم التحليل العددي و أهميته و الطريقة الثانية المتبعة في التحليلي العددي هي طريقة نيوتن newten method)) و لا أود أن أتطرق إلى الاستنتاج الرياضي لهذه الطريقة بالقدر الذي ارغب فيه في التركيز على البرامج الرياضية لها, تعتبر هذه الطريقة من الطرق السهلة في إيجاد القيم التقريبية للمعدلات الرياضية و الاختلاف الأساسي بيناه و بين الطريقة السابقة ( طريقة المقاطع) (bisection method) هو سهولة استخدام طريقة نيوتن و سرعتها في إيجاد الحل التقريبي للمعادلة.
المفهوم الرياضي لنيوتن
اذا كانت لدينا دالة حقيقية f(x) و كان x0 هو الجدر للمعادلة المطلوب الحصول عليه ( الحل التقريبي للمعادلة) فيمكن إيجاده عن طريق الآتي:
X2=x1*f(x)/f '(x)
حيث :
X2 هي القيمة التي نبحث عنها أي نفس قيمة الجدر ( قيمة x0 )
X1 هي القيمة المدخلة عند القراء
F(x) هي قيمة المعادلة بعد تعويض بي قيمة x1 في المعادلة
F ' (x) هي قيمة المشتقة الأولى للمعادلة بعد.
و تكتب خوارزمية البرنامج كالأتي:
1. Read x1 2. f(x1)=x1^3+4*x1^2-10 3. f ' (x1) = 3*x1^2 +8*x1 4. if f(x1) > 0.00001 write x2,f(x1) 5. x2=x1-( f(x1)/ f ' (x1) ,x1=x2 goto step (2) 6. write x2 ,p 7. stop
شرح الخوارزمية
يبدأ البرنامج بقراءة قيمة الدالة عند النقطة (x1 ) ثم تتم عملية تعويض من اجل إيجاد القيمة الفعلية للدالة عند نفس النقطة، تعوض قيمة x1) ) في مشتقة الدالة و كأننا أوجدنا الميل في هذه الحالة، تتم اختبار قيمة الدالة f (x1) فإذا كانت أصغر من 0.00001 فتتم طباعة القيمة مباشرة و إلا ننتج قيمة جديدة هي x2 من طرح قيمة x1 من مقسوم الدالتين f ( x) , f ' ( x) و هي قيمة أو نقطة تقاطع المماس مع محور السينات و عندما نجعل قيمة x1=x2 فإننا نقترب من الحل أكتر أي من النقطة الصفرية التي تحقق الحل.
و هذا هو البرنامج بلغة FORTRAN :-
----------------------------------------------
Read(*,*) x1 f(x1)=x1^3+4*x1^2-10 10 f ' (x1) = 3*x1^2 +8*x1 if f(x1) > 0.00001) goto 20 x2=x1-(f(x)/f ' (x)) x1=x2 goto 10 Write(*,*) x2 ,p 20 stop end
-----------------------------------------------
و يمكن استخدام جملة DO بدلا من جملة GOTO لأداء نفس المهمة على النحو الآتي:
Read(*,*) x1 DO 500,I=1,N f(x1)=x1^3+4*x1^2-10 f ' (x1) = 3*x1^2 +8*x1 if f(x1) > 0.00001) GOTO 20 x2=x1-(f(x)/f ' (x)) x1=x2 GOTO 500 continue 5000 Write(*,*) x2 ,p 20 stop end


