مقالات

3.1E: طريقة أويلر (تمارين)


Q3.1.1

قد ترغب في حفظ نتائج هذه التمارين ، حيث سنعود إلى القسمين التاليين. في تمارين 3.1.1-3.1.5 استخدم طريقة أويلر لإيجاد القيم التقريبية لحل مشكلة القيمة الأولية المعطاة عند النقاط (x_i = x_0 + ih ) ، حيث (x_0 ) هي النقطة التي يتم فيها فرض الشرط الأولي و (i = 1 ) ، (2 ) ، (3 ). الغرض من هذه التمارين هو تعريفك بالإجراء الحسابي لطريقة أويلر.

1. (y '= 2x ^ 2 + 3y ^ 2-2، quad y (2) = 1؛ quad h = 0.05 )

2. (y '= y + sqrt {x ^ 2 + y ^ 2}، quad y (0) = 1؛ quad h = 0.1 )

3. (y '+ 3y = x ^ 2-3xy + y ^ 2، quad y (0) = 2؛ quad h = 0.05 )

4. (y '= {1 + x over1-y ^ 2}، quad y (2) = 3؛ quad h = 0.1 )

5. (y '+ x ^ 2y = sin xy، quad y (1) = pi؛ quad h = 0.2 )

Q3.1.2

6. استخدم طريقة أويلر مع أحجام الخطوات (h = 0.1 ) ، (h = 0.05 ) ، و (h = 0.025 ) للعثور على القيم التقريبية لحل مشكلة القيمة الأولية [y '+ 3y = 7e ^ {4x}، quad y (0) = 2 ] at (x = 0 )، (0.1 )، (0.2 )، (0.3 )،…، (1.0 ). قارن هذه القيم التقريبية بقيم الحل الدقيق (y = e ^ {4x} + e ^ {- 3x} ) ، والتي يمكن الحصول عليها بطريقة القسم 2.1. اعرض نتائجك في جدول مثل الجدول 3.1.1.

7. استخدم طريقة أويلر مع أحجام الخطوات (h = 0.1 ) ، (h = 0.05 ) ، و (h = 0.025 ) للعثور على القيم التقريبية لحل مشكلة القيمة الأولية [y '+ { 2 على x} y = {3 over x ^ 3} +1، quad y (1) = 1 ] at (x = 1.0 )، (1.1 )، (1.2 )، (1.3 ) ، ... ، (2.0 ). قارن هذه القيم التقريبية بقيم الحل الدقيق [y = {1 over3x ^ 2} (9 ln x + x ^ 3 + 2) ، ] التي يمكن الحصول عليها بطريقة القسم 2.1. اعرض نتائجك في جدول مثل الجدول 3.1.1.

8. استخدم طريقة أويلر مع أحجام الخطوات (h = 0.05 ) ، (h = 0.025 ) ، و (h = 0.0125 ) لإيجاد القيم التقريبية لحل مشكلة القيمة الأولية [y '= { y ^ 2 + xy-x ^ 2 over x ^ 2}، quad y (1) = 2 ] at (x = 1.0 )، (1.05 )، (1.10 )، (1.15 ) ... (1.5 ). قارن هذه القيم التقريبية مع قيم الحل الدقيق [y = {x (1 + x ^ 2/3) over1-x ^ 2/3} ] التي تم الحصول عليها في المثال [مثال: 2.4.3}. اعرض نتائجك في جدول مثل الجدول 3.1.1.

9. في المثال [example: 2.2.3} تبين أن [y ^ 5 + y = x ^ 2 + x-4 ] هو حل ضمني لمشكلة القيمة الأولية [y '= {2x + 1 over5y ^ 4 + 1}، quad y (2) = 1. tag {A} ] استخدم طريقة أويلر مع أحجام الخطوات (h = 0.1 ) ، (h = 0.05 ) ، و (h = 0.025 ) للعثور على القيم التقريبية لحل (A) عند (س = 2.0 ) ، (2.1 ) ، (2.2 ) ، (2.3 ) ، ... ، (3.0 ). قدم نتائجك في شكل جدول. للتحقق من الخطأ في هذه القيم التقريبية ، أنشئ جدولًا آخر لقيم القيم المتبقية [R (x، y) = y ^ 5 + yx ^ 2-x + 4 ] لكل قيمة ((x، y) ) التي تظهر في الجدول الأول.

10. يمكنك أن ترى من مثال 2.5.1 أن [x ^ 4y ^ 3 + x ^ 2y ^ 5 + 2xy = 4 ] هو حل ضمني لمشكلة القيمة الأولية [y '= - {4x ^ 3y ^ 3 + 2xy ^ 5 + 2y over3x ^ 4y ^ 2 + 5x ^ 2y ^ 4 + 2x} ، quad y (1) = 1. tag {A} ] استخدم طريقة أويلر مع أحجام الخطوات (h = 0.1 ) ، (h = 0.05 ) ، و (h = 0.025 ) للعثور على القيم التقريبية لحل (A) عند (س = 1.0 ) ، (1.1 ) ، (1.2 ) ، (1.3 ) ، ... ، (2.0 ). للتحقق من الخطأ في هذه القيم التقريبية ، أنشئ جدولاً آخر لقيم القيم المتبقية [R (x، y) = x ^ 4y ^ 3 + x ^ 2y ^ 5 + 2xy-4 ] لكل قيمة من (( x ، y) ) تظهر في الجدول الأول.

11. استخدم طريقة أويلر مع أحجام الخطوات (h = 0.1 ) ، (h = 0.05 ) ، و (h = 0.025 ) للعثور على القيم التقريبية لحل مشكلة القيمة الأولية [(3y ^ 2 + 4 ص) ص '+ 2 س + كوس س = 0 ، رباعي ص (0) = 1 ؛ رباعي نص {(تمرين 2.2.13)} ] في (س = 0 ) ، (0.1 ) ، (0.2 ) ، (0.3 ) ، ... ، (1.0 ).

12. استخدم طريقة أويلر مع أحجام الخطوات (h = 0.1 ) ، (h = 0.05 ) ، و (h = 0.025 ) للعثور على القيم التقريبية لحل مشكلة القيمة الأولية [y '+ { (y + 1) (y-1) (y-2) over x + 1} = 0، quad y (1) = 0 quad text {(التمرين 2.2.14)} ] في (x = 1.0 ) ، (1.1 ) ، (1.2 ) ، (1.3 ) ، ... ، (2.0 ).

13. استخدم طريقة أويلر وطريقة أويلر الخطية بأحجام الخطوات (ع = 0.1 ) ، (ع = 0.05 ) ، (ع = 0.025 ) لإيجاد القيم التقريبية لحل مشكلة القيمة الأولية [y '+ 3y = 7e ^ {- 3x}، quad y (0) = 6 ]

في (س = 0 ) ، (0.1 ) ، (0.2 ) ، (0.3 ) ، ... ، (1.0 ). قارن هذه القيم التقريبية بقيم الحل الدقيق (y = e ^ {- 3x} (7x + 6) ) ، والتي يمكن الحصول عليها بطريقة القسم 2.1. هل لاحظت أي شيء مميز بخصوص النتائج؟ يشرح.

Q3.1.3

مشاكل القيمة الأولية الخطية في تمارين 3.1.14 - 3.1.19 لا يمكن حلها بالضبط من حيث الوظائف الأولية المعروفة. في كل تمرين ، استخدم طريقة أويلر وطرق أويلر شبه الخطية مع أحجام الخطوات المشار إليها للعثور على القيم التقريبية لحل مشكلة القيمة الأولية المحددة عند 11 نقطة متباعدة بشكل متساوٍ (بما في ذلك نقاط النهاية) في الفاصل الزمني.

14. (y'-2y = {1 over1 + x ^ 2}، quad y (2) = 2 )؛ (ح = 0.1،0.05،0.025 ) في ([2،3] )

15. (y '+ 2xy = x ^ 2، quad y (0) = 3 quad text {(التمرين 2.1.38)} ؛ quad ) (h = 0.2،0.1،0.05 ) في ([0،2] )

16. ({y '+ {1 over x} y = { sin x over x ^ 2}، quad y (1) = 2}؛ quad text {(التمرين 2.1.39)}؛ رباعي ) (ع = 0.2،0.1،0.05 ) في ([1،3] )

17. ({y '+ y = {e ^ {- x} tan x over x}، quad y (1) = 0}؛ quad text {(التمرين 2.1.40)}؛ quad ) (h = 0.05،0.025،0.0125 ) على ([1،1.5] )

18. ({y '+ {2x over 1 + x ^ 2} y = {e ^ x over (1 + x ^ 2) ^ 2}، quad y (0) = 1}؛ quad نص {(التمرين 2.1.41)} ؛ quad ) (h = 0.2،0.1،0.05 ) في ([0،2] )

19. (xy '+ (x + 1) y = e ^ {x ^ 2}، quad y (1) = 2؛ quad text {(التمرين 2.1.42)}؛ quad ) ( ح = 0.05،0.025،0.0125 ) في ([1،1.5] )

Q3.1.4

في تمارين 3.1.20 - 3.1.22، استخدم طريقة أويلر وطريقة أويلر شبه الخطية بأحجام الخطوات المشار إليها للعثور على القيم التقريبية لحل مشكلة القيمة الأولية المحددة عند 11 نقطة متباعدة بشكل متساوٍ (بما في ذلك نقاط النهاية) في الفاصل الزمني.

20. (y '+ 3y = xy ^ 2 (y + 1) ، quad y (0) = 1 ) ؛ (ح = 0.1،0.05،0.025 ) في ([0،1] )

21. ({y'-4y = {x over y ^ 2 (y + 1)}، quad y (0) = 1} )؛ (ح = 0.1،0.05،0.025 ) في ([0،1] )

22. ({y '+ 2y = {x ^ 2 over1 + y ^ 2}، quad y (2) = 1} )؛ (ح = 0.1،0.05،0.025 ) في ([2،3] )

Q3.1.5

23. التربيع العددي. تقول النظرية الأساسية لحساب التفاضل والتكامل أنه إذا كان (f ) مستمرًا على فاصل مغلق ([a، b] ) فإنه يحتوي على مشتق عكسي (F ) بحيث يكون (F '(x) = f ( x) ) في ([a، b] ) و [ int_a ^ bf (x) ، dx = F (b) -F (a). tag {A} ] يحل هذا مشكلة تقييم تكامل محدد إذا كان للمتكامل (f ) مشتق عكسي يمكن إيجاده وتقييمه بسهولة. ومع ذلك ، إذا لم يكن لدى (f ) هذه الخاصية ، فإن (A) لا يوفر طريقة مفيدة لتقييم التكامل المحدد. في هذه الحالة يجب أن نلجأ إلى الأساليب التقريبية. هناك فئة من هذه الأساليب تسمى التربيع العددي، حيث يأخذ التقريب الشكل [ int_a ^ bf (x) ، dx almost sum_ {i = 0} ^ n c_if (x_i)، tag {B} ] حيث (a = x_0 صيغة التربيع.

  1. اشتق معادلة التربيع [ int_a ^ bf (x) ، dx almost h sum_ {i = 0} ^ {n-1} f (a + ih) tag {C} ] حيث (h = (ba) / n) ) من خلال تطبيق طريقة أويلر على مشكلة القيمة الأولية [y '= f (x)، quad y (a) = 0. ]
  2. تسمى الصيغة التربيعية (C) أحيانًا قاعدة المستطيل الأيسر. ارسم شكلاً يبرر هذا المصطلح.
  3. بالنسبة للعديد من الاختيارات من (a ) و (b ) و (A ) ، قم بتطبيق (C) على (f (x) = A ) مع (n = 10،20،40،80،160،320 ). قارن نتائجك بالإجابات الدقيقة واشرح ما تجده.
  4. للعديد من الاختيارات من (a ) و (b ) و (A ) و (B ) ، قم بتطبيق (C) على (f (x) = A + Bx ) مع (n = 10 ) ، (20 ) ، (40 ) ، (80 ) ، (160 ) ، (320 ). قارن نتائجك بالإجابات الدقيقة واشرح ما تجده.

طريقة هيون ولفرام

Stack Overflow for Teams هو مكان خاص وآمن بالنسبة لك وهل هناك حزم Mathematica لتقديم البراهين / الاشتقاقات؟ لنفترض أن C منحنى و O نقطة ثابتة.

آن. إذن من أين نبدأ؟ وتذكر أنه ليس لدينا أي ضمان على أن تقعر المنحنى يظل ثابتًا. باستخدام الفكرة الأولية القائلة بأن الميل = الارتفاع / الجري ، نشتق الصيغة التالية مباشرة من الصورة: والتي يمكن إعادة ترتيبها بسهولة لتزويدنا بصيغة Δy ، وهي: أخيرًا ، إذن ، يمكننا التنبؤ بإحداثيات النقطة التالية في منطقتنا الحل العددي. الامتداد الطبيعي لـ Riemann ، دع Q (x) عبارة عن دالة مستمرة متعددة العناصر حقيقية أو معقدة محددة لجميع قيم المتغير الحقيقي x وهذا دوري مع أدنى فترة زمنية pi بحيث Q (x + pi) = Q (x) .

(بالطبع ، عندما يكون منحنى الحل الفعلي مقعرًا لأسفل ، ينعكس الوضع ، وسيبالغ خط الظل في تقدير الإحداثي الرأسي للنقطة التالية). SIAM J. المعادلات البارامترية للجوانب الجانبية لـ. النقطة الثابتة الإهليلجية في المعادلة التفاضلية هي نقطة ثابتة يكون لمصفوفة الاستقرار الخاصة بها خيالية بحتة. النقطة التي نريدها حقًا ، أي لنبدأ بالسؤال عن ماهية طريقة أويلر التي تجعلها فقيرة جدًا في عملها. انظر م. هيث ، الحوسبة العلمية: مسح تمهيدي ، نيويورك: ماكجرو هيل ، 2002. كيف يمكنني التعرف على البراغي غير العادية واستبدالها؟ مشاكل وإجابات عشوائية غير محدودة مع حلول مدمجة خطوة بخطوة. بوابة ولفرام التعليمية »مجموعة من أدوات التدريس والتعلم التي صممها خبراء التعليم في ولفرام: الكتاب المدرسي الديناميكي ، وخطط الدروس ، والأدوات ، والعروض التوضيحية التفاعلية ، والمزيد.

سوف تجد الآلة الحاسبة الحل التقريبي للمعادلة التفاضلية من الدرجة الأولى باستخدام طريقة أويلر المحسنة (Heun's) ، مع الخطوات الموضحة. 97-162 ، 2000. لغة طبيعية قائمة على المعرفة منتشرة على نطاق واسع. © مشروع عروض Wolfram والمساهمين | شروط الاستخدام | نهج الخصوصية | RSS

النشر الفوري عبر السحابة وسطح المكتب والجوال والمزيد. قصة سفينة استعمار توقظ الأجنة مبكرًا. هل يمكنك معرفة سبب استخدامهم لهذا النوع من التسميات؟). (بعد كل شيء ، هذه هي النقطة التي تشكل المكون التالي لحلنا العددي المتطور.). وظائف التجاوزي ، المجلد.

de Bruxelles 92، 53-78، 1978.

كامبريدج ، إنجلترا: جامعة كامبريدج

(كملاحظة جانبية ، قد يشير المحللون العدديون إلى طريقة أويلر كخوارزمية توقع ، في حين أن طريقة Heun توصف بأنها خوارزمية توقع - مصحح. ربما حتى الثلاثة جميعها ، يمكنك النقر فوق زر البوصلة على اليسار من أجل

المؤتمر الروسي الافتراضي لتقنية Wolfram 2017 ، كيفية استخدام Mathematica في بيئة HPC ، الحلول التحليلية والرقمية للمعادلات الموجية غير الخطية في Wolfram Mathematica ، طرق طوبولوجيا لتحسين SIMP مع لغة Wolfram ، منتجات وخدمات جديدة من أبحاث Wolfram: جديد في 11.2 ، سحابة Wolfram لقوالب NURBS للمنحنيات التحليلية الجمالية.

Heun ، K. "Zur Theorie der Riemann'schen Functionen Zweiter Ordnung mit Verzweigungspunkten." الاسطوانة البيضاوية هي اسطوانة ذات مقطع عرضي بيضاوي. وظائف التجاوزي ، المجلد.

Valent ، G. "تحويل متكامل يشتمل على وظائف Heun وقيمة ذاتية ذات صلة بدلاً من التركيز على نقطة النهاية الأولية اليسرى حيث شكلنا خط الظل الخاص بنا ، ضع في اعتبارك الفاصل الزمني الممتد بواسطة مقطع الخط المماس ككل. طرق المعادلات التفاضلية: * طريقة أويلر هي أبسط طريقة للحل العددي لمعادلة تفاضلية عادية. الرياضيات. ولفرام ناتشورال ... هل من العيوب تقديم تبرعات للمرضى من غير البوذيين؟

زملائك في العمل للعثور على المعلومات ومشاركتها. ولفرام-ماثيماتيكا. آن. إذا كنت تتابع المناقشة السابقة حقًا ، فربما يمكنك الآن تخمين المنحدر الذي سنستخدمه. كيف يؤثر تغيير light.js على Stack Overflow على وجه التحديد؟ شكرا و . نسيت تحديد الوظيفة ، آسف - أنا جديد هنا! "النقطة المثالية" التي نوقشت سابقًا ، يبدو أنها تقع تقريبًا في منتصف المسافة بين هذه التقديرات الخاطئة المستندة إلى خطوط الظل.

من أجل الحصول عليها ، يكفي إيجاد قيمة Δy. https://mathworld.wolfram.com/HeunsDifferentialEquation.html.

بشكل عام ، يمكنك تخطي علامة الضرب ، لذا فإن "5x" تكافئ "5 * x". عد إلى الأعلى 3.1E: طريقة أويلر (تمارين) 3.2E: أسلوب أويلر المحسن والأساليب ذات الصلة (التمارين) المقالات الموصى بها. مشروع عروض Wolfram العب اللعبة الطويلة عند تعلم البرمجة. 1997. SystemModelSimulate [model، vars، ] يخزن فقط بيانات المحاكاة للمتغيرات vars. استخدم أشرطة التمرير لتغيير القيمة الأولية أو لتغيير عدد الخطوات أو الطريقة.


التمرين 1: طريقة أويلرز

طور أويلر طريقة لإيجاد الحل التقريبي لمشاكل القيمة الأولية. دع المعادلة التفاضلية المراد حلها لها شكل المعادلة 12.5 ودع القيمة الأولية لـ y تكون & gt & gt0.

دع الحل (أي تكامل المعادلة 12.5) له شكل المعادلة 12.6.

ضع في اعتبارك المنحنيين في الشكل I2.l. من المعادلة 12.5 ، يمكننا حساب أي قيمة y ، y'2، ■ ■ ■ • ■ & gty'n- نحن نعلم بالفعل قيمة y0 - القيمة الأولية. مهمتنا هي إيجاد قيم لـ „y2 ، • ■ ■ ، y„ - تكامل المعادلة 12.5 من إلى jc ، ينتج عنه المعادلة 12.7.

بعد أن وجدنا تقديرًا تقريبيًا ، فقد نجد الآن تقديرًا تقريبيًا لـ_ y2

بشكل عام ، يتم العثور على قيمة التقريب عند نقطة واحدة من القيمة السابقة باستخدام y ^ = y „+ hf

في هذا التمرين ، تُستخدم طريقة أويلر لإيجاد حل تقريبي للمعادلة التفاضلية dy / dx = xy ، مع القيمة الأولية = 1. تتم مقارنة التقريب مع الحل التحليلي y = ex p (x2 / 2).

المعادلة y-xy بشرط الحدود y (0) = 1

(أ) فتح مصنف جديد. أدخل النص الموضح على AI: E4 من الشكل 12.2.

(ب) أدخل سلسلة القيم في A5: A 10 و B5: B 10.

(ج) في C5 ، أدخل القيمة 1.0. هذا هو الشرط الأولي ^ (0) = l ويتوافق مع المصطلح الأول على يمين المعادلة 12.11 عندما يكون n = 0.

(د) في D5 أدخل = 0.1 * (B5 * C5). يتوافق هذا مع المصطلح الثاني على اليمين في المعادلة 12.11 عندما يكون n = 0. الأقواس ليست ضرورية هنا ولكنها تستخدم لتوضيح أننا نحسب القيمة h * وظيفة.

(هـ) في C6 أدخل = C5 + D5. يتوافق هذا مع الجانب الأيسر من المعادلة I2.l l ويحسب القيمة التقريبية الأولى forjy.

(و) انسخ الصيغة من D5 إلى D6.

(ز) انسخ الخلايا C6: D6 وصولاً إلى الصف 10. وهذا يحسب ^ التقريبات المتتالية. نظرًا لأننا لن نستخدم القيمة الأخيرة لـ h * f

(ح) حتى نتمكن من مقارنة تقديراتنا التقريبية في العمود C مع الحل الدقيق ، في E5 أدخل = EXP (B5A2 / 2) وانسخ هذا إلى E10.

(ط) احفظ المصنف باسم CHAPl2.XLS.

من الواضح أن إجابتنا في العمود C لا تتفق جيدًا مع القيم الدقيقة في العمود E. يمكن الحصول على تقريب أفضل عن طريق تقليل حجم /؟ ، الزيادة في قيم x. يوضح الشكل 12.3 الحل الدقيق والتقريب مع h = 0.1 والتقديرات مع h = 0.05. يوضح هذا (1) أن الانحراف عن القيم الدقيقة يزداد مع كل تكرار للمعادلة 12.11 كما هو متوقع ، و (2) تقليل حجم h يحسن قيم الحل بشكل كبير.

(ي) قم بتعديل ورقة العمل الخاصة بك للعثور على تقديرات تقريبية لهذه المعادلة التفاضلية لقيم x من 0 إلى 0.5 بخطوات 0.025. احفظ المصنف.

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

الشكل 12.3

تتشابه طرق Runge-Kutta من حيث المفهوم مع طريقة Euler من حيث أن كل تقريب لـ y يعتمد على القيمة السابقة. طور علماء الرياضيات هؤلاء عددًا من الخوارزميات لحل المعادلات التفاضلية. سنستخدم طريقة Runge-Kutta من الدرجة الرابعة ، والتي يكون اشتقاقها خارج نطاق هذا الكتاب. يتم إعطاء الصيغة التكرارية في المعادلة 12.12. يُطلق على هذا أحيانًا معادلة كوتا-سيمبسون ، لأنه عندما يكون الجانب الأيمن من المعادلة التفاضلية دالة في x وحده ، فإنه يختزل إلى قاعدة الثلث لسيمبسون.

قد يبدو هذا هائلاً إلى حد ما ، لذا دعونا نرى كيف يمكننا وضعه في ورقة عمل. لقد رأينا في التمرين 1 كيفية تقييم ما يعادل هذا هو قيمة الدالة التفاضلية لقيم x و y المختلفة. المعلمة الثانية ، k2 ، متشابهة فيما عدا أن قيمة x تزداد بمقدار h بينما تزداد قيمة y بمقدار kt. كل معلمة تزيد y بمضاعفات المعلمة التي تسبقها.

في التمرين السابق ، حللنا dy / dx = xy بالقيمة الأولية ^ (0) = 1 باستخدام طريقة أويلر. هنا نحل نفس المشكلة باستخدام طريقة Runge-Kutta حتى نتمكن من مقارنة النتائج.

(أ) افتح المصنف CHAP12.XLS وقم بتنشيط الورقة 2. أدخل النص الموضح في A1: H5 من الشكل 12.4.

(ج) أدخل سلسلة القيم في A6: A11 و B6: B 11.

(د) في C6 ، أدخل القيمة 1.0. هذا هو الشرط الأولي y (0) = 1 ويتوافق مع المصطلح الأول على اليمين في المعادلة 12.12 لـ n = 0.

(هـ) أدخل هذه الصيغ لحساب معلمات k: D6: = h * (B6 * C6) E6: = h * ((B6 + h / 2) * (C6 + D6 / 2)) F6: = h * ( (B6 + h / 2) * (C6 + E6 / 2)) G6: = h * ((B6 + h) * (C6 + F6))


ملاحظات حول Diffy Qs: المعادلات التفاضلية للمهندسين

إذا كان من الممكن حل المعادلة في شكل مغلق ، فعلينا فعل ذلك. ولكن ماذا لو كان لدينا معادلة لا يمكن حلها في شكل مغلق؟ ماذا لو أردنا إيجاد قيمة الحل عند (x text <؟> ) معين أو ربما نريد إنتاج رسم بياني للحل لفحص السلوك. في هذا القسم سنتعرف على أساسيات التقريب العددي للحلول.

أبسط طريقة لتقريب الحل هي طريقة أويلر 1 . يعمل على النحو التالي: خذ (x_0 ) واحسب الميل (k = f (x_0، y_0) text <.> ) الميل هو التغيير في (y ) لكل وحدة تغيير في (x text <.> ) اتبع السطر للحصول على فاصل من الطول (h ) على (x ) - المحور. ومن ثم إذا (y = y_0 ) في (x_0 text <،> ) فإننا نقول ذلك (y_1 ) (القيمة التقريبية لـ (y ) في (x_1 = x_0 + h )) هو (y_1 = y_0 + hk text <.> ) اشطف ، كرر! دع (k = f (x_1، y_1) text <،> ) ثم احسب (x_2 = x_1 + h text <،> ) و (y_2 = y_1 + hk text <.> ) الآن احسب (x_3 ) و (y_3 ) باستخدام (x_2 ) و (y_2 text <،> ) إلخ. ضع في اعتبارك المعادلة (y '= nicefrac<3> text <،> ) (y (0) = 1 text <،> ) و (h = 1 text <.> ) ثم (x_0 = 0 ) و (y_0 = 1 نص <.> ) نحسب

ثم نرسم رسمًا بيانيًا تقريبيًا للحل عن طريق توصيل النقاط ((x_0، y_0) text <،> ) ((x_1، y_1) text <،> ) ((x_2، y_2) text <.> ) لأول خطوتين من الطريقة ، انظر الشكل 1.16.

بشكل أكثر تجريدية ، لأي (i = 0،1،2،3 ، ldots text <،> ) نحسب

الأجزاء المستقيمة التي نحصل عليها هي رسم بياني تقريبي للحل. بشكل عام ليس هذا هو الحل بالضبط. انظر الشكل 1.17 لمؤامرة الحل الحقيقي والتقريب.

الشكل 1.17. خطوتان لطريقة أويلر (حجم الخطوة 1) والحل الدقيق للمعادلة (y '= frac<3> ) بالشروط الأولية (y (0) = 1 text <.> )

نواصل المعادلة (y '= nicefrac<3> text <،> ) (y (0) = 1 text <.> ) دعونا نحاول تقريب (y (2) ) باستخدام طريقة أويلر. في الشكل 1.16 والشكل 1.17 ، قمنا بتقريب (y (2) ) بيانياً بحجم الخطوة 1. مع حجم الخطوة 1 ، لدينا (y (2) حوالي 1.926 نص <.> ) الإجابة الحقيقية هو 3. نحن تقريبا 1.074 قبالة. دعونا نخفض حجم الخطوة إلى النصف. عند حساب (y_4 ) باستخدام (h = 0.5 text <،> ) نجد أن (y (2) حوالي 2.209 text <،> ) لذلك خطأ يبلغ حوالي 0.791. يعطي الجدول 2.7.3 القيم المحسوبة للمعلمات المختلفة.

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

الجدول 2.7.3. تقريب طريقة أويلر لـ (y (2) ) حيث (y '= nicefrac<3> text <،> ) (y (0) = 1 text <.> )

(ح ) تقريبي (ص (2) ) خطأ ( فارك < text> < نص>)
1 1.92593 1.07407
0.5 2.20861 0.79139 0.73681
0.25 2.47250 0.52751 0.66656
0.125 2.68034 0.31966 0.60599
0.0625 2.82040 0.17960 0.56184
0.03125 2.90412 0.09588 0.53385
0.015625 2.95035 0.04965 0.51779
0.0078125 2.97472 0.02528 0.50913

لاحظ أنه باستثناء المرات القليلة الأولى ، في كل مرة قمنا فيها بتقليص الفاصل الزمني إلى النصف ، ينخفض ​​الخطأ إلى النصف تقريبًا. هذا التقليل من الخطأ إلى النصف هو سمة عامة لطريقة أويلر حيث إنها طريقة الترتيب الأول. توجد طريقة أويلر محسّنة ، راجع التمارين ، وهي طريقة من الدرجة الثانية. تعمل طريقة الترتيب الثاني على تقليل الخطأ إلى الربع تقريبًا في كل مرة نقوم فيها بتقسيم الفاصل الزمني إلى النصف. معنى الترتيب "الثاني" هو التربيع في ( nicefrac <1> <4> = nicefrac <1> <2> times nicefrac <1> <2> = <( nicefrac <1> <2 >)> ^ 2 text <.> )

للحصول على الخطأ في حدود 0.1 من الإجابة ، كان علينا بالفعل القيام بـ 64 خطوة. للحصول عليها في حدود 0.01 ، علينا أن نخفض إلى النصف ثلاث أو أربع مرات أخرى ، مما يعني القيام بـ 512 إلى 1024 خطوة. هذا قليل جدًا للقيام به يدويًا. يجب أن تكون طريقة أويلر المحسّنة من التمارين ربع الخطأ في كل مرة نقوم فيها بخفض الفاصل الزمني إلى النصف ، لذلك سيتعين علينا عمل نصف عدد "الهالفنج" تقريبًا للحصول على نفس الخطأ. يمكن أن يكون هذا التخفيض مشكلة كبيرة. مع 10 هالفنج (بدءًا من (h = 1 )) لدينا 1024 خطوة ، بينما مع 5 هالفنج علينا فقط القيام بـ 32 خطوة ، بافتراض أن الخطأ كان قابلاً للمقارنة في البداية. قد لا يهتم الكمبيوتر بهذا الاختلاف لمشكلة بهذه البساطة ، لكن افترض أن حساب كل خطوة سيستغرق ثانية (قد يكون حساب الوظيفة أصعب بكثير من ( nicefrac<3> )). ثم يكون الفارق 32 ثانية مقابل حوالي 17 دقيقة. نحن لسنا عادلين تمامًا ، فمن المحتمل أن تضاعف طريقة الترتيب الثاني وقت القيام بكل خطوة. ومع ذلك ، فهي دقيقة واحدة مقابل 17 دقيقة. بعد ذلك ، افترض أنه يتعين علينا تكرار مثل هذا الحساب لمعلمات مختلفة ألف مرة. انت وجدت الفكرة.

لاحظ أنه من الناحية العملية لا نعرف حجم الخطأ! كيف نعرف ما هو حجم الخطوة الصحيح؟ حسنًا ، نحافظ بشكل أساسي على خفض الفاصل الزمني إلى النصف ، وإذا كنا محظوظين ، فيمكننا تقدير الخطأ من عدد قليل من هذه الحسابات وافتراض أن الخطأ ينخفض ​​بمقدار النصف في كل مرة (إذا كنا نستخدم معيار أويلر) .

دعونا نتحدث أكثر قليلاً عن المثال (y '= nicefrac<3> text <،> ) (y (0) = 1 text <.> ) افترض أنه بدلاً من القيمة (y (2) ) نرغب في العثور على (y (3) ) text <.> ) تم سرد نتائج هذا الجهد في الجدول 2.7.4 للنصف المتتالية من (h text <.> ) ما الذي يحدث هنا؟ حسنًا ، يجب أن تحل المعادلة تمامًا وستلاحظ أن الحل غير موجود عند (x = 3 text <.> ) في الواقع ، ينتقل الحل إلى ما لا نهاية عندما تقترب من (x = 3 text < .> )

الجدول 2.7.4. محاولات لاستخدام أويلر لتقريب (y (3) ) حيث (y '= nicefrac<3> text <،> ) (y (0) = 1 text <.> )

(ح ) تقريبي (ص (3) )
1 3.16232
0.5 4.54329
0.25 6.86079
0.125 10.80321
0.0625 17.59893
0.03125 29.46004
0.015625 50.40121
0.0078125 87.75769

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

في التطبيقات الحقيقية ، لن نستخدم طريقة بسيطة مثل طريقة أويلر. إن أبسط طريقة يمكن استخدامها على الأرجح في تطبيق حقيقي هي طريقة Runge – Kutta القياسية (انظر التمارين). هذه طريقة من الدرجة الرابعة ، مما يعني أنه إذا قمنا بتقسيم الفاصل الزمني إلى النصف ، فإن الخطأ ينخفض ​​عمومًا بمعامل 16 (إنه الترتيب الرابع كـ ( nicefrac <1> <16> = nicefrac <1> <2> مرات nicefrac <1> <2> times nicefrac <1> <2> times nicefrac <1> <2> )).

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

الوقت الحسابي: كل خطوة تستغرق وقت الكمبيوتر. حتى لو كانت الدالة (f ) سهلة الحساب ، فإننا نقوم بها عدة مرات. حجم الخطوة الكبير يعني حسابًا أسرع ، ولكن ربما لا يكون الدقة الصحيحة.

أخطاء التقريب: أجهزة الكمبيوتر تحسب فقط بعدد معين من الأرقام المهمة. تصبح الأخطاء التي يتم إدخالها عن طريق تقريب الأرقام أثناء حساباتنا ملحوظة عندما يصبح حجم الخطوة صغيرًا جدًا بالنسبة للكميات التي نعمل بها. لذا فإن تقليل حجم الخطوة قد يؤدي في الواقع إلى تفاقم الأخطاء. هناك حجم خطوة مثالي معين بحيث تزداد الدقة كلما اقتربنا منه ، ولكن بعد ذلك يبدأ في التدهور حيث نجعل حجم خطوتنا أصغر. المشكلة هي: قد يكون من الصعب العثور على هذا الأمثل.

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

لقد رأينا فقط بدايات التحديات التي تظهر في التطبيقات الحقيقية. التقريب العددي لحلول المعادلات التفاضلية هو مجال بحث نشط للمهندسين وعلماء الرياضيات. على سبيل المثال ، طريقة الأغراض العامة المستخدمة في حل ODE في Matlab و Octave (حتى كتابة هذه السطور) هي طريقة ظهرت في الأدبيات فقط في الثمانينيات.

القسم الفرعي 1.7.1 تمارين

تمرين 1.7.3.

ضع في اعتبارك ( dfrac

= <(2t-x)> ^ 2 text <،> ) (x (0) = 2 text <.> ) استخدم طريقة أويلر مع حجم الخطوة (h = 0.5 ) لتقريب (x (1) نص <.> )

تمرين 1.7.4.

استخدم طريقة أويلر مع أحجام الخطوة (h = 1، nicefrac <1> <2>، nicefrac <1> <4>، nicefrac <1> <8> ) لتقريب (x (1) text <.> )

حل المعادلة بالضبط.

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

تمرين 1.7.5.

تقريب قيمة (e ) بالنظر إلى مشكلة القيمة الأولية (y '= y ) مع (y (0) = 1 ) وتقريب (y (1) ) باستخدام طريقة أويلر مع حجم الخطوة (0.2 نص <.> )

تمرين 1.7.6.

مثال على عدم الاستقرار العددي: خذ (y '= -5y text <،> ) (y (0) = 1 text <.> ) نحن نعلم أن الحل يجب أن يتحلل إلى الصفر مثل (x ) ينمو. باستخدام طريقة أويلر ، ابدأ بـ (h = 1 ) واحسب (y_1، y_2، y_3، y_4 ) لمحاولة تقريب (y (4) text <.> ) ماذا حدث؟ الآن اقتطع النصف إلى النصف. استمر في خفض الفترة الزمنية إلى النصف وتقريب (y (4) ) حتى تبدأ الأرقام التي ستبدأ في الاستقرار (أي حتى تبدأ في التحرك باتجاه الصفر). ملاحظة: قد ترغب في استخدام الآلة الحاسبة.

أبسط طريقة مستخدمة في الممارسة هي طريقة Runge – Kutta. ضع في اعتبارك ( frac= f (x، y) text <،> ) (y (x_0) = y_0 text <،> ) وحجم الخطوة (h text <.> ) كل شيء هو نفسه في أويلر طريقة ، باستثناء حساب (y_) و (x_ نص <.> )

تمرين 1.7.7.

استخدم Runge – Kutta (انظر أعلاه) بأحجام الخطوات (h = 1 ) و (h = nicefrac <1> <2> ) لتقريب (y (1) text <.> )

استخدم طريقة أويلر مع (h = 1 ) و (h = nicefrac <1> <2> text <.> )

حل بالضبط ، ابحث عن القيمة الدقيقة لـ (y (1) text <،> ) وقارن.

تمرين 1.7.101.

لنفترض (x '= sin (xt) text <،> ) و (x (0) = 1 text <.> ) التقريبي (x (1) ) باستخدام طريقة أويلر بأحجام الخطوة 1 ، 0.5 ، 0.25. استخدم آلة حاسبة واحسب ما يصل إلى 4 أرقام عشرية.

تقريبًا: 1.0000 ، 1.2397 ، 1.3829

تمرين 1.7.102.

دع (x '= 2t text <،> ) و (x (0) = 0 text <.> )

تقريبي (x (4) ) باستخدام طريقة أويلر بأحجام الخطوات 4 و 2 و 1.

قم بحل الأخطاء بدقة وحسابها.

احسب العامل الذي تغيرت به الأخطاء.

أ) 0 ، 8 ، 12 ب) (س (4) = 16 نص <،> ) لذا فإن الأخطاء هي: 16 ، 8 ، 4. ج) العوامل هي 0.5 ، 0.5 ، 0.5.

تمرين 1.7.103.

تقريبي (x (4) ) باستخدام طريقة أويلر بأحجام الخطوات 4 و 2 و 1.

خمن حلاً دقيقًا بناءً على الجزء أ) واحسب الأخطاء.

أ) 0 ، 0 ، 0 ب) (س = 0 ) حل لذا فإن الأخطاء هي: 0 ، 0 ، 0.

هناك طريقة بسيطة لتحسين طريقة أويلر لجعلها طريقة من الدرجة الثانية عن طريق القيام بخطوة إضافية واحدة فقط. ضع في اعتبارك ( frac= f (x، y) text <،> ) (y (x_0) = y_0 text <،> ) وحجم الخطوة (h text <.> ) ما نفعله هو التظاهر بأننا احسب الخطوة التالية كما في أويلر ، أي أننا نبدأ بـ ((x_i، y_i) text <،> ) نحسب منحدرًا (k_1 = f (x_i، y_i) text <،> ) و ثم انظر إلى النقطة ((x_i + h، y_i + k_1h) text <.> ) بدلاً من ترك نقطتنا الجديدة ((x_i + h، y_i + k_1h) text <،> ) نحسب المنحدر عند هذه النقطة ، أطلق عليه (k_2 text <،> ) ثم خذ متوسط ​​ (k_1 ) و (k_2 text <،> ) على أمل أن يكون المتوسط ​​أقرب إلى الميل الفعلي على الفاصل الزمني من (x_i ) إلى (x_i + h text <.> ) ونحن على صواب ، إذا قلصنا الخطوة إلى النصف ، يجب أن ينخفض ​​الخطأ بمعامل (2 ^ 2) = 4 نص <.> ) للتلخيص ، الإعداد هو نفسه بالنسبة لأويلر العادي ، باستثناء حساب (y_) و (x_ نص <.> )

تمرين 1.7.104.

استخدم طريقة أويلر المحسّنة (انظر أعلاه) بأحجام الخطوات (h = nicefrac <1> <4> ) و (h = nicefrac <1> <8> ) لتقريب (y (1) ) نص <.> )

استخدم طريقة أويلر مع (h = nicefrac <1> <4> ) و (h = nicefrac <1> <8> text <.> )

حل بالضبط ، أوجد القيمة الدقيقة لـ (y (1) text <.> )

احسب الأخطاء والعوامل التي تغيرت الأخطاء بواسطتها.

أ) أويلر المُحسَّن: (y (1) تقريبًا 3.3897 ) لـ (h = nicefrac <1> <4> text <،> ) (y (1) حوالي 3.4237 ) لـ ( h = nicefrac <1> <8> text <،> ) b) Standard Euler: (y (1) حوالي 2.8828 ) لـ (h = nicefrac <1> <4> text <، > ) (y (1) حوالي 3.1316 ) لـ (h = nicefrac <1> <8> text <،> ) c) (y = 2e ^ xx-1 text <،> ) لذلك (y (2) ) تقريبًا (3.4366 text <.> ) د) الأخطاء التقريبية لتحسين أويلر: (0.046852 ) لـ (h = nicefrac <1> <4> text <،> ) و (0.012881 ) لـ (h = nicefrac <1> <8> text <.> ) لأويلر القياسي: (0.55375 ) لـ (h = nicefrac <1 > <4> text <،> ) و (0.30499 ) لـ (h = nicefrac <1> <8> text <.> ) العامل تقريبًا (0.27 ) لتحسين أويلر ، و (0.55 ) لأويلر القياسي.


جامعة ولاية كانساس

يحاول كل من طريقة أويلر وطريقة أويلر المحسّنة تقريب $ y (x_0 + h) $ بتقريب ميل $ m $ لخط القاطع من $ (x_0، y (x_0)) $ إلى $ (x_0 + h، y ( x_0 + h)) $ وباستخدام الصيغة $ y (x_0 + h) = y (x_0) + mh $ (انظر الشكل 1). تقارب طريقة أويلر ميل الخط القاطع بميل خط المماس عند نقطة النهاية اليسرى $ (x_0، y (x_0)) $. تستخدم طريقة أويلر المحسّنة متوسط ​​المنحدرات عند نقطة النهاية اليسرى ونقطة النهاية اليمنى التقريبية (وهي نقطة النهاية اليمنى كما تم حسابها بواسطة طريقة أويلر) لتقريب ميل الخط القاطع. ليس علينا التوقف عند هذا الحد أيضًا. يمكننا الاستمرار في إيجاد المنحدرات عند نقاط مختلفة وحساب المتوسطات الموزونة لتقريب ميل خط المماس. تسمى الطرق العددية لتقريب حل المعادلات التفاضلية بهذه الطريقة طرق Runge-Kutta (بعد علماء الرياضيات Runge و Kutta).

طريقة رونج-كوتا من الرتبة الثالثة

لتقريب حل $ frac= f (x، y)، qquad y (x_0) = y_0 $ حساب $ start x_1 & = x_0 + h k_1 & = f (x_0، y_0) k_2 & = f (x_0 + h، y_0 + hk_1) k_3 & = f (x_0 + h / 2، y_0 + (h / 2) (k_1 + k_2) / 2) y_1 & = y_0 + frac<6> ح نهاية $ ثم $ y (x_1) تقريبًا y_1 $.

تستخدم هذه الطريقة طريقة أويلر المحسّنة للعثور على نقطة وسط تقريبية للخط القاطع ثم تأخذ متوسطًا مرجحًا للمنحدرات عند نقاط النهاية اليمنى واليسرى ونقطة المنتصف. لاحظ أنه إذا كان $ f (x، y) $ هو $ f (x) $ فقط ، دالة $ x $ وحدها ، ثم حل المعادلة التفاضلية $ displaystyle frac= f (x) $ تقوم فقط بتقييم التكامل $ displaystyle int_^ f (x) quad dx $. In this case, the third order Runge-Kutta method is the same as Simpson's rule for numerical approximation of integrals from Calculus 2. Just as for Euler's method and the improved Euler's method, the RK3 method can be easily put in a spreadsheet. The first part of a spreadsheet for the RK3 method applied to $displaystylefrac=2xy$, $y(0)=1$ is shown below. Note that this is the problem for exercise 1, so you can use this spreadsheet to check your work.

Fourth Order Runge-Kutta method

Just as with Euler's method and the improved Euler's method, we can repeat the process to find an $x_2=x_1+h=x_0+2h$ and $y_2approx y(x_2)=y(x_0+2h)$ and so on. The fourth order Runge-Kutta method listed above is powerful enough that it was a popular technique for practical computation (and not just for educational purposes). The steps are well suited to programming into a computer, just loop through the basic algorithm as many times as needed to get to the values you are interested in. The first part of a spreadsheet for the RK4 method applied to $displaystylefrac=2xy$, $y(0)=1$ is shown below. Note that this is the problem for exercise 2, so you can use this spreadsheet to check your work.

تمارين

  1. Use the third order Runge-Kutta method with step sizes $h=0.1$ and $h=0.05$ to approximate $y(2)$ for the initial value problem $displaystylefrac=2xy$, $y(0)=1$. Find the error in both approximations.

Runge-Kutta-Fehlberg Methods

مناقشة

  1. The error in a single step of the improved Euler's method is about $C'h^3$ and the error in a single step of the third order Runge-Kutta method is about $C''h^4$ where $C'$ and $C''$ are constants that depend on the problem but not the step size. (The error in a single step is the error in $y(x_0+h)$ computed with a step-size of $h$. It is also called the local error.)
  2. $C''h^4$ is much smaller than $C'h^3$.

To see how Fehlberg used these assumptions to compute a good step-size, consider the following equations where $y_1'$ is the approximation from the improved Euler's method, $y_1''$ is the approximation from the third order Runge-Kutta method, and $y(h)$ is the true value. $ تبدأ y_1'&approx y(h)+C'h^3 y_1''&approx y(h)+C''h^4 |y_1'-y_1''|&approx|C'h^3-C''h^4|approx |C'|h^3 end $ where the last line uses the assumption that $C''h^4$ is very small compared to $C'h^3$. Now we can solve this last line for the constant $C'$ to get $ |C'|approx frac<|y_1'-y_1''|> $ Once we have this approximation for $C'$, we can pick a step-size $h_1$ to get the local error of the size we want. If we want the local error to be about size $T$, we just take a step-size $h_< ext>$ where $ h_< ext>=hleft(frac<|y_1'-y_1''|> ight)^ <1/3>$ and then the error should be about $ egin | ext|&approx |C'h_< ext>^3| &approxfrac<|y_1'-y_1''|>h^3frac <|y_1'-y_1''|> &approx T end $ You might be a little worried about how all the errors in the different approximations mount up as we carry out all these computations to get our new step-size $h_< ext>$. This is a serious consideration and is dealt with by introducing a chicken factor, usually taken to be 0.9. We actually use a step-size $ h_1=0.9hleft(frac<|y_1'-y_1''|> ight)^<1/3>. $ This is a bit smaller than the approximation we computed above, and thus a bit safer too.

The Runge-Kutta-Fehlberg 2(3) method uses exactly this technique to pick the right step-size. Suppose the initial value problem we want to solve is $ frac=f(x,y),qquad y(x_0)=y_0 $ We have an initial step-size $h$ (taken to be whatever value you fancy, we will update it automatically as needed). We compute the improved Euler's and RK3 estimates in the usual fashion. $ تبدأ k1&=f(x_0,y_0) k2&=f(x_0+h,y_0+h*k_1) k3&=f(x_0+h/2,y_0+h*(k1+k2)/4) y_1'&=y_0+h*(k1+k2)/2 y_1''&=y_0+hfrac <6>end $ Next we compute the estimated error $ | ext|approx|y_1'-y_1''| $ If this error is small enough, say within a tolerance of $T=.001*max(|y_0|,1)$ (which is the tolerance used by the matlab program ode23), then we accept this step-size for the current step and let $egin x_1&=x_0+h y_1&=y_1'' end$ If the error is greater than $T$, we reject this step-size for the current step and leave $x_0$ and $y_0$ as they are. In either case, we choose a new step-size $ h_< ext>=.9hleft(frac<|y_1'-y_1''|> ight)^ <1/3>$ We then either compute the next step with the new step-size (if our error was less than $T$) or we repeat the current step with the new step-size $h_< ext>$ (if the error was greater than $T$) and try again to find $x_1$ and $y_1$.


Download Now!

We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer, you have convenient answers with Chapter 6 Differential Equations And Mathematical Modeling . To get started finding Chapter 6 Differential Equations And Mathematical Modeling , you are right to find our website which has a comprehensive collection of manuals listed.
Our library is the biggest of these that have literally hundreds of thousands of different products represented.

Finally I get this ebook, thanks for all these Chapter 6 Differential Equations And Mathematical Modeling I can get now!

I did not think that this would work, my best friend showed me this website, and it does! I get my most wanted eBook

wtf this great ebook for free?!

My friends are so mad that they do not know how I have all the high quality ebook which they do not!

It's very easy to get quality ebooks )

so many fake sites. this is the first one which worked! Many thanks

wtffff i do not understand this!

Just select your click then download button, and complete an offer to start downloading the ebook. If there is a survey it only takes 5 minutes, try any survey which works for you.


3.1E: Euler’s Method (Exercises)

Euler's Method for Solving Ordinary Differential Equations

Suppose that $ extrm(t) = 0.05 t$, a line, and f(0) = 1. Then, if $h=0.001$, we have
egin
extrm(t+h) approx extrm(t) + (0.001) (0.05) extrm(t) .
نهاية

ر 0 0.001 0.002 0.998 0.999 1.000
Approximate f(ر)
1.0000000000 1.0000500000 1.0001000025 1.0511646632 1.0512172215 1.0512697823
Exact f(ر) 1.0000000000 1.0000500013 1.0001000050 1.0511659745 1.0512185341 1.0512710964
Error 0.0000000000 0.0000000013 0.0000000025 0.0000013113 0.0000013127 0.0000013140


For this example, we can evaluate f($cdot$) analytically, in that
egin
frac extrm(t) = 0.05 extrm(t) Rightarrow frac ln extrm(t) = 0.05 ,
نهاية
and so that, with f(0) = 1, we have $ extrm(t) = e^<0.05 t>$.


Partnership for Integration of Computation into Undergraduate Physics

Developed by David Marasco - Published February 3, 2019

Login or register as a verified educator for free to access instructor-only material.

Login or register as a verified educator for free to access instructor-only material.

These exercises are not tied to a specific programming language. Example implementations are provided under the Code tab, but the Exercises can be implemented in whatever platform you wish to use (e.g., Excel, Python, MATLAB, etc.).

Login or register as a verified educator for free to access instructor-only material.

Solutions

Login or register as a verified educator for free to access instructor-only material.

Login or register as a verified educator in order to comment.

Login or register as a verified educator in order to add errata.

Download Options

Share a Variation

Credits and Licensing

David Marasco, "Computing the 1-D Motion of a V2 Rocket," Published in the PICUP Collection, February 2019.


محتويات

Git repositories

Web host Browse files Download package Numerical answers
GitHub (primary) Browse files Download ZIP Answers.txt
GitLab (mirror) Browse files Download ZIP Answers.txt

Individual files

Every Java solution depends on these shared classes: EulerSolution.java, Library.java.
Many Python solutions depend on my shared math library module: eulerlib.py.
Many Haskell solutions depend on my shared math library module: EulerLib.hs.
Some solution code contains a detailed mathematical proof of correctness.

Problem Java Python Mathematica Haskell تفسير
Problem 1 p001.java p001.py p001. mathematica p001.hs نعم
المشكلة 2 p002.java p002.py p002. mathematica p002.hs نعم
مشكلة 3 p003.java p003.py p003. mathematica p003.hs نعم
المشكلة 4 p004.java p004.py p004. mathematica p004.hs نعم
المشكلة 5 p005.java p005.py p005. mathematica p005.hs نعم
المشكلة 6 p006.java p006.py p006. mathematica p006.hs نعم
المشكلة 7 p007.java p007.py p007. mathematica p007.hs نعم
المشكلة 8 p008.java p008.py p008. mathematica p008.hs نعم
المشكلة 9 p009.java p009.py p009. mathematica p009.hs نعم
المشكلة 10 p010.java p010.py p010. mathematica p010.hs نعم
المشكلة 11 p011.java p011.py p011. mathematica p011.hs نعم
المشكلة 12 p012.java p012.py p012. mathematica p012.hs نعم
المشكلة 13 p013.java p013.py p013. mathematica p013.hs نعم
المشكلة 14 p014.java p014.py p014. mathematica p014.hs نعم
المشكلة 15 p015.java p015.py p015. mathematica p015.hs نعم
المشكلة 16 p016.java p016.py p016. mathematica p016.hs نعم
المشكلة 17 p017.java p017.py p017. mathematica p017.hs نعم
المشكلة 18 p018.java p018.py p018. mathematica p018.hs نعم
المشكلة 19 p019.java p019.py p019. mathematica p019.hs نعم
المشكلة 20 p020.java p020.py p020. mathematica p020.hs نعم
المشكلة 21 p021.java p021.py p021. mathematica p021.hs نعم
المشكلة 22 p022.java p022.py p022. mathematica p022.hs نعم
المشكلة 23 p023.java p023.py p023. mathematica p023.hs
المشكلة 24 p024.java p024.py p024. mathematica p024.hs نعم
المشكلة 25 p025.java p025.py p025. mathematica p025.hs نعم
المشكلة 26 p026.java p026.py p026. mathematica p026.hs
المشكلة 27 p027.java p027.py p027. mathematica
المشكلة 28 p028.java p028.py p028. mathematica p028.hs نعم
المشكلة 29 p029.java p029.py p029. mathematica p029.hs نعم
مشكلة 30 p030.java p030.py p030. mathematica p030.hs نعم
المشكلة 31 p031.java p031.py p031. mathematica p031.hs نعم
مشكلة 32 p032.java p032.py p032. mathematica p032.hs نعم
مشكلة 33 p033.java p033.py p033. mathematica p033.hs نعم
مشكلة 34 p034.java p034.py p034. mathematica p034.hs نعم
المشكلة 35 p035.java p035.py p035. mathematica
المشكلة 36 p036.java p036.py p036. mathematica p036.hs
المشكلة 37 p037.java p037.py p037. mathematica
مشكلة 38 p038.java p038.py p038. mathematica p038.hs
مشكلة 39 p039.java p039.py p039. mathematica p039.hs
المشكلة 40 p040.java p040.py p040. mathematica p040.hs
المشكلة 41 p041.java p041.py p041. mathematica
مشكلة 42 p042.java p042.py p042. mathematica p042.hs نعم
مشكلة 43 p043.java p043.py p043. mathematica
مشكلة 44 p044.java p044.py p044. mathematica نعم
المشكلة 45 p045.java p045.py p045. mathematica p045.hs
المشكلة 46 p046.java p046.py p046. mathematica p046.hs
مشكلة 47 p047.java p047.py p047. mathematica
مشكلة 48 p048.java p048.py p048. mathematica p048.hs
Problem 49 p049.java p049.py p049. mathematica
Problem 50 p050.java p050.py p050. mathematica
Problem 51 p051.java p051.py
Problem 52 p052.java p052.py p052. mathematica p052.hs
Problem 53 p053.java p053.py p053. mathematica p053.hs
Problem 54 p054.java p054.py
Problem 55 p055.java p055.py p055. mathematica p055.hs
Problem 56 p056.java p056.py p056. mathematica p056.hs
Problem 57 p057.java p057.py p057. mathematica p057.hs
Problem 58 p058.java p058.py p058. mathematica p058.hs نعم
Problem 59 p059.java p059.py
Problem 60 p060.java p060.py p060.hs نعم
Problem 61 p061.java p061.py
Problem 62 p062.java p062.py
Problem 63 p063.java p063.py p063. mathematica p063.hs نعم
Problem 64 p064.java p064.py p064. mathematica
Problem 65 p065.java p065.py p065. mathematica p065.hs
Problem 66 p066.java p066.py p066. mathematica نعم
Problem 67 p067.java p067.py p067. mathematica p067.hs نعم
Problem 68 p068.java p068.py
Problem 69 p069.java p069.py p069. mathematica
Problem 70 p070.java p070.py p070. mathematica
Problem 71 p071.java p071.py p071. mathematica p071.hs نعم
Problem 72 p072.java p072.py p072. mathematica
Problem 73 p073.java p073.py p073.hs نعم
Problem 74 p074.java p074.py
Problem 75 p075.java p075.py نعم
Problem 76 p076.java p076.py p076. mathematica p076.hs
Problem 77 p077.java p077.py p077. mathematica p077.hs نعم
Problem 78 p078.java p078.py نعم
Problem 79 p079.java p079.py
Problem 80 p080.java p080.py p080. mathematica نعم
Problem 81 p081.java p081.py p081. mathematica p081.hs
Problem 82 p082.java p082.py p082. mathematica
Problem 83 p083.java p083.py p083. mathematica
Problem 84 p084.java p084.py
Problem 85 p085.java p085.py p085. mathematica p085.hs
Problem 86 p086.java p086.py
Problem 87 p087.java p087.py
Problem 88 p088.java p088.py نعم
Problem 89 p089.java p089.py p089. mathematica p089.hs
Problem 90 p090.java p090.py
Problem 91 p091.java p091.py p091. mathematica p091.hs
Problem 92 p092.java p092.py p092. mathematica p092.hs
Problem 93 p093.java p093.py
Problem 94 p094.java p094.py نعم
Problem 95 p095.java p095.py
Problem 96 p096.java p096.py
Problem 97 p097.java p097.py p097. mathematica p097.hs
Problem 98 p098.java p098.py
Problem 99 p099.java p099.py p099. mathematica
Problem 100 p100.java p100.py p100. mathematica p100.hs نعم
Problem 101 p101.java p101.py p101. mathematica نعم
Problem 102 p102.java p102.py p102. mathematica p102.hs
Problem 103 p103.java p103.py نعم
Problem 104 p104.java p104.py p104. mathematica نعم
Problem 105 p105.java p105.py p105. mathematica
Problem 106 p106.java p106.py p106. mathematica p106.hs نعم
Problem 107 p107.java p107.py نعم
Problem 108 p108.java p108.py p108. mathematica نعم
Problem 109 p109.java p109.py p109. mathematica
Problem 111 p111.java p111.py نعم
Problem 112 p112.java p112.py p112. mathematica p112.hs
Problem 113 p113.java p113.py p113. mathematica p113.hs نعم
Problem 114 p114.java p114.py p114. mathematica p114.hs نعم
Problem 115 p115.java p115.py p115. mathematica p115.hs نعم
Problem 116 p116.java p116.py p116. mathematica p116.hs نعم
Problem 117 p117.java p117.py p117. mathematica p117.hs نعم
Problem 118 p118.java p118.py
Problem 119 p119.java p119.py نعم
Problem 120 p120.java p120.py p120. mathematica p120.hs نعم
Problem 121 p121.java p121.py p121. mathematica p121.hs نعم
Problem 122 p122.java p122.py نعم
Problem 123 p123.java p123.py p123. mathematica p123.hs نعم
Problem 124 p124.java p124.py
Problem 125 p125.java p125.py
Problem 127 p127.java p127.py نعم
Problem 128 p128.java p128.py p128. mathematica p128.hs نعم
Problem 129 p129.java p129.py p129. mathematica p129.hs
Problem 130 p130.java p130.py p130.hs
Problem 132 p132.java p132.py p132. mathematica p132.hs
Problem 133 p133.java p133.py p133. mathematica نعم
Problem 134 p134.java p134.py p134. mathematica نعم
Problem 135 p135.java p135.py نعم
Problem 139 p139.java p139.py p139.hs
Problem 142 p142.java p142.py نعم
Problem 145 p145.java p145.py p145. mathematica p145.hs نعم
Problem 146 p146.java p146.py نعم
Problem 149 p149.java p149.py
Problem 150 p150.java p150.py
Problem 151 p151.java p151.py
Problem 155 p155.java p155.py
Problem 160 p160.java p160.py p160. mathematica p160.hs نعم
Problem 162 p162.java p162.py p162. mathematica p162.hs نعم
Problem 164 p164.java p164.py p164. mathematica p164.hs نعم
Problem 164 p165.java p165.py
Problem 166 p166.java p166.py p166.hs نعم
Problem 169 p169.java p169.py p169. mathematica
Problem 171 p171.java p171.py p171. mathematica نعم
Problem 172 p172.java p172.py p172. mathematica نعم
Problem 173 p173.java p173.py p173. mathematica p173.hs نعم
Problem 174 p174.java p174.py p174. mathematica
Problem 178 p178.java p178.py p178. mathematica
Problem 179 p179.java p179.py p179. mathematica
Problem 182 p182.java p182.py p182.hs
Problem 186 p186.java p186.py
Problem 187 p187.java p187.py p187. mathematica نعم
Problem 188 p188.java p188.py p188. mathematica p188.hs
Problem 191 p191.java p191.py p191. mathematica p191.hs
Problem 197 p197.java p197.py p197. mathematica نعم
Problem 203 p203.java p203.py p203. mathematica
Problem 204 p204.java p204.py
Problem 205 p205.java p205.py p205. mathematica p205.hs
Problem 206 p206.java p206.py نعم
Problem 208 p208.java p208.py نعم
Problem 211 p211.java p211.py
Problem 214 p214.java p214.py
Problem 215 p215.java p215.py
Problem 216 p216.java p216.py نعم
Problem 218 p218.java p218.py p218. mathematica p218.hs نعم
Problem 222 p222.java p222.py
Problem 225 p225.java p225.py p225.hs
Problem 231 p231.java p231.py p231. mathematica
Problem 243 p243.java p243.py p243. mathematica نعم
Problem 249 p249.java p249.py
Problem 250 p250.java p250.py p250. mathematica
Problem 265 p265.java p265.py p265.hs
Problem 267 p267.java p267.py نعم
Problem 271 p271.java p271.py نعم
Problem 280 p280.java p280.py
Problem 287 p287.java p287.py p287.hs نعم
Problem 301 p301.java p301.py p301. mathematica p301.hs نعم
Problem 303 p303.java p303.py نعم
Problem 304 p304.java p304.py
Problem 315 p315.java p315.py
Problem 323 p323.java p323.py p323. mathematica p323.hs نعم
Problem 329 p329.java p329.py نعم
Problem 345 p345.java p345.py
Problem 346 p346.java p346.py نعم
Problem 347 p347.java p347.py
Problem 348 p348.java p348.py نعم
Problem 357 p357.java p357.py نعم
Problem 381 p381.java p381.py p381. mathematica نعم
Problem 387 p387.java p387.py
Problem 401 p401.java p401.py p401. mathematica نعم
Problem 407 p407.java p407.py نعم
Problem 417 p417.java نعم
Problem 425 p425.java p425.py نعم
Problem 429 p429.java p429.py p429. mathematica نعم
Problem 431 p431.java
Problem 433 p433.java نعم
Problem 451 p451.java p451.py نعم
Problem 493 p493.java p493.py
Problem 500 p500.java p500.py نعم
Problem 518 p518.java p518.py نعم
Problem 549 p549.java p549.py نعم
Problem 587 p587.java p587.py p587. mathematica p587.hs نعم


3.1E: Euler’s Method (Exercises)

The proof to follow requires the integrand F ( x , y , y' ) to be twice differentiable with respect to each argument. What's more, the methods that we use in this module to solve problems in the calculus of variations will only find those solutions which are in C 2 [ a , b ] . More advanced techniques (i.e. beyond MATH0043) are designed to overcome this last restriction. This isn't just a technicality: discontinuous extremal functions are very important in optimal control problems, which arise in engineering applications.

defined on all functions y ∈ C 2 [ a , b ] such that y ( a ) = A , y ( b ) = B , then Y ( x ) satisfies the second order ordinary differential equation

Equally, there's an important difference between and . The former is the derivative of F with respect to x , taking into account the fact that y = y ( x ) and y' = y' ( x ) are functions of x too. The latter is the partial derivative of F with respect to its first variable, so it's found by differentiating F with respect to x and pretending that y and y' are just variables and do not depend on x . Hopefully the next example makes this clear:

and the Euler-Lagrange equation is

where η ( x )∈ C 2 [ a , b ] satisfies η ( a ) = η ( b ) = 0 , so that Y ε ( a ) = A and Y ε ( b ) = B , i.e. Y ε still satisfies the boundary conditions. Informally, Y ε is a function which satisfies our boundary conditions and which is `near to' Y when ε is small. 1 I ( Y ε ) depends on the value of ε , and we write I [ ε ] for the value of I ( Y ε ) :

When ε = 0 , the function I [ ε ] has an extremum and so

We can compute the derivative by differentiating under the integral sign:

We now use the multivariable chain rule to differentiate F with respect to ε . For a general three-variable function F ( u ( ε ), v ( ε ), w ( ε )) whose three arguments depend on ε , the chain rule tells us that

In our case, the first argument x is independent of ε , so = 0 , and since Y ε = Y + εη we have = η and = η ' . لذلك

Recall that = 0 when ε = 0 . Since Y 0 = Y and Y 0 ' = Y' ,

Integrating the second term in ( ) by parts

The first term on the right hand side vanishes because η ( a ) = η ( b ) = 0 . Substituting the second term into ( ),

The equation above holds for any η ( x )∈ C 2 [ a , b ] satisfying η ( a ) = η ( b ) = 0 , so the fundamental lemma of calculus of variations (explained on the next page) tells us that Y ( x ) satisfies


5.7 Exercises 2 (Optional)

This set of exercises is designed to give you familiarity with the numerical methods used to solve first-order ODEs. Hints and solutions are available.

Hint based problems 6

Write a Matlab script to solve

subject to y ( 0 ) = 1 on the domain 0 ≤ x ≤ 5 , using both forward and backward Euler methods.

Hint reveal

The forward Euler formula gives, on rearrangement

In MATLAB, this can be implemented as

for suitably defined variables in an appropriate loop.

Similarly, the backward Euler formula gives, on rearrangement

In MATLAB, this can be implemented as

for suitably defined variables in an appropriate loop.

  1. How do the approximations compare to the exact solution?
  2. What happens as you increase the number of points in your approximation n ?

حل

Code to solve this equation numerically is given below.

Running this code, by copying the file to your working directory and using the command

produces the following figure.

For this problem, the forward Euler method always underestimates the solution, while the backward Euler method always overestimates it. This is because the gradient of the solution is always increasing.

By running the script and varying n we see that as n increases, the accuracy of the approximations also increases.