ادامه ی مطلب رو ملاحظه بفرمایید
دانلود برنامه (با عرض پوزش فایل این برنامه موجود نیست ، امیدوارم از روی توضیحات ، نکات و یه سری دستورات اصل کاری بتونید برنامه شو بنویسید)
اول ببینیم این روش اویلر چیه :
این روش برای معادلات دیفرانسیل درجه اول بکار میره که دارای حداقل یک نقطهی معلوم از تابع اولیه هستند، این مثالهارو ببینید:
y' + y + x y^2 = 0 , y(0)=1
Sin(3 x) y' + e^y =5 x y , y(7)=3
روش اویلر به این صورت هست که مهادلهی دیفرانسیلی رو طوری مینوسیم که یه طرف فقط y' باشه و طرف دیگه تابعی از x و y ، یعنی:
y' = f(x,y)
ادامهی توضیح این روش رو از کتاب های معادلات دیفرانسیل ببینید ، لطفاَ اسم این کار منم سمبل کردن نذارید چون ادامه این واقعاَ آسونه .
حالا بریم سراغ کدنویسیش ، فایلها رو که ببینید مخصوصاَ به ترتیب شماره اسم فایلها متوجه میشید که اصل برنامه نویسی ما فقط با دستور Table هستش ، مستحزر هستید که هرچه قدر step رو عدد بزرگتری بدیم دقت حل ما بالاتر میره ، البته اینم بگم که روش اویلر بیشتر از اینکه حل معادله باشه رسم معادله هست، بیاید دستور Table رو بررسی کنیم:
Table[x n+1 = x n +h ;
{ x n+1 , y[x n+1] = h f[x n , y[x n]] + y[x n] } ,
{n , 0 , step} ]
توجه کنید که کاراکترهای قرمز رنگ اندیس x هستند . این دستور به ما یه سری نقطه میده که این نقاط x و y ای هستند که داخل آکولاد { } هستند ، xو y اولیه (x صفر و y صفر) و h و f[x,y[x]] از قبل تعریف شده و معلوم هستند . توجه کنید داخل آکولاد رو به چند روش میتونید بنویسید ، اینجا من زابته x رو بیرون آکولاد و y رو داخل آکولاد تعریف کردم ، شما میتونید هر دو رو بیرون ویا هر دو رو داخل تعریف کنید ، اما چیزی که خیلی مهمه اینکه آکولاد آخرین عبارت آرگومان دستور Table باشه ، مثلاَ اگه x n+1 = x n +h بعد از آکولاد بیاد x ها فقط محاسبه میشن و زوج نقاط رو به ما نمیده.
دقت کنید حلی که با DSolve توی فایلها شده صرفاَ برای مقایسهی دقت روش اویلر با مقدار اصلی تابع هس و نیازی به نوشتنش نیس و دیگه اینکه شما جای تابع f هر تابع دلخواهی بزارید (البته برای توابع نمایی یکم خاطاش زیاده ! ) .
توجه کنید که این روش رو فقط به خاطر آموزش روش حل اویلری گذاشتم والا متمتیکا اصلاَ نیازی به حل با این روشها نداره و همون معادله رو با DSolve ویا NDSolve حل میکنه .
ضمناَ به همراه فایلهای متمتیکا یه فایل pdf که این روش توضیح داده قرار دادم که اگه حوصلهی سر زدن به کتاب رو ندارید از این فایل استفاده کنید .