تبلیغات
وبلاگ مهندسی عمران (مهندسی آب)
وبلاگ مهندسی عمران (مهندسی آب)
زَکاةُ العلم پَخْشُه!! البته‌با‌‌دانش‌‌وبیان‌مناسب‌و‌به‌دور‌از‌هرگونه Copy&Paste!
پاسخ به سؤال فرترن
نوشته‌شده در تاریخ چهارشنبه 14 فروردین 1392 توسط محمدصادق عباسیان | نظرات ()
برچسب‌ها: فرترن، مثال، تابع نمایی، بسط مک لورن، حلقه و شرط،  

سلام!
یکی از دوستان سؤالی پرسیده که جواب اون رو گذاشتم.
لطفاً‌ از این به بعد اگر سؤال می‌پرسید و پیگیر جواب اون هستید خودتون رو معرفی بفرمایید، بگید از کدوم دانشگاه هستید و ایمیلتون رو هم بذارید. ممنونم.
سؤال: برنامه‌ای بنویسید که مقدار exp(x) را با مقدار تقریبی آن که برابر است با sigma{x^n/n!} مقایسه کرده و مقدار آن‌را چاپ نماید. برنامه را طوری بنویسید که در ورودی x و n را دریافت نماید.
پاسخ: بنده توضیح بدم که منظور ایشون از sigma{x^n/n!} در واقع بسط مک‌لورن تابع نمایی به‌صورت

 e^{x} = \sum^{\infin}_{n=0} \frac{x^n}{n!} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots\quad\text{ for all } x\!

و منظور از خطا اختلاف نسبی مقدار سری با مقدار واقعی تابع هست.
ابتدا توضیحات رو بخونید و بعد کدها رو در ادامه مطلب ببینید. ضمناً در ادامه مطلب کدهای یک الگوریتم دیگه هم آورده شده.

توضیحات:
1- سؤالی مشابه همین سؤالی که اینجا مطرح شده در فصل دوم کتاب دکتر موسوی‌ندوشنی هست و بنده هم از همون الگوریتم برای حل این سؤال استفاده کردم. چون برای حل این سؤال روش‌های مختلفی می‌تونه مطرح بشه.
2- در حل این سؤال دقت کنید که بسط مک‌لورن به این صورت حساب می‌شه. در اولین تکرار حلقه 1+x حساب می‌شه و در متغیر Sum ذخیره می‌شه و بعد ترم x^2/2 حساب می‌شه و در متغیر Term ذخیره می‌شه. در دومین تکرار حلقه، حاصل (1+x) با حاصل (x^2/2) جمع می‌شه و در متغیر Sum ذخیره می‌شه و بعد ترم x^3/3! به صورت (x^2/2)*(x/3) محاسبه می‌شه و در متغیر Term ذخیره می‌شه. در سومین تکرار حلقه حاصل {(1+x)+(x^2/2)+(x^3/3!)} حساب می‌شه و در متغیر Sum ذخیره می‌شه و ترم x^4/4! به‌صورت (x^3/3!)*(x/4) حساب می‌شه و در متغیر Term ذخیره می‌شه و الی آخر. در واقع در این الگوریتم هر ترم از رابطه بازگشتی زیر محاسبه می‌شه.

xi/i!=(xi-1)/(x-1)i×x/i

Program Exponential

Integer :: Count = 1, N

Real :: Term, Sum = 1, X, Error

Write(*,*) "Maclaurin series for the function f(x) = exp(x) is:"

Write(*,*) "exp(x) = 1 + x + x^2/2! + x^3/3! + ... + x^n/n!"

Write(*,*) "Please Enter x:"

Read(*,*) X

Write(*,*) "Please Enter n:"

Read(*,*) N

Term = X

Do I = 1,N

  Sum = Sum + Term

  Count = Count + 1

  Term = Term * (X / Count)

End Do

Error = ABS(Exp(X) - Sum) / Exp(X)

Write(*,*) "The Error is found to be:  ", "Error =", Error

End

این برنامه رو به استفاده از حلقه‌های تودرتو هم می‌شه نوشت و کافیه با یک حلقه محاسبه صورت ترم‌ها و عملیات جمع ترم‌ها رو انجام بدید و با یه حلقه دیگه هم محاسبه مخرج ترم‌ها (فاکتوریل) رو انجام بدید.

Program Exponential

Integer :: N, Fact

Real :: Sum = 1, X, Error, Value

Write(*,*) "Maclaurin series for the function f(x) = exp(x) is:"

Write(*,*) "exp(x) = 1 + x + x^2/2! + x^3/3! + ... + x^n/n!"

Write(*,*) "Please Enter x:"

Read(*,*) X

Write(*,*) "Please Enter n:"

Read(*,*) N

Value = X

Do I = 1,N

  X = Value; Fact = 1

  Do J = 1,I

    Fact = Fact * J

  End Do

  X = X ** I

  Sum = Sum + X / Fact

End Do

Error = ABS(Exp(Value) - Sum) / Exp(Value)

Write(*,*) "The Error is found to be:  ", "Error =", Error

Print*, Sum

End



درباره‌ی وبلاگ

.::بسم الله الرحمن الرحیم::.
در این وبلاگ سعی می‌شه مطالب مختلفی در ارتباط با مهندسی عمران و به طور خاص مهندسی آب قرار داده بشه. تمام سعی بنده اینه که مطالبی رو ارائه بدم که یا حاصل تلاش خودم هست، یا اینکه مشابه اون در وبلاگ‌ها و سایت‌های فارسی پیدا نمی‌شه. بنابراین لطفاً حق کپی رایت فراموش نشه!!!

محمدصادق عباسیان
دانشجوی دکترای مهندسی عمران-آب، دانشگاه صنعتی شریف
پست الکترونیک
تماس با مدیر
RSS
ATOM
جستجو
آخرین مطالب
نوروز 1397 مبارک!
پذیرش مقاله در مجلۀ Theoretical and Applied Climatology
«یکِ عمران»: تخصصی‌ترین کانال مشاورۀ کنکور ارشد و دکتری
گفتگوی 6 از مجموعۀ «گفتگوهای آبی»
گفتگوی 5 از مجموعۀ «گفتگوهای آبی»
گفتگوی 4 از مجموعۀ «گفتگوهای آبی»
گفتگوی 3 از مجموعۀ «گفتگوهای آبی»
گفتگوی 2 از مجموعۀ «گفتگوهای آبی»
گفتگوی 1 از مجموعۀ «گفتگوهای آبی»
انتشار مقاله در مجله علمی-پژوهشی عمران مدرس
خلاصه‌های کنکور دکترای عمران آب
مشاوره رایگان کنکور کارشناسی ارشد
ارتفاع مکش کل خالص (NPSH)
رابطه بین مدت و شدت بارندگی
کلاس آموزش برنامه‌نویسی به زبان FORTRAN 90/95
آرشیو
اسفند 1396
مهر 1395
شهریور 1395
اردیبهشت 1395
فروردین 1395
بهمن 1393
مهر 1393
فروردین 1393
اسفند 1392
موضوعات
تغییر اقلیم
مقاله
«گفتگوهای آبی»
مبانی برنامه‌نویسی (فرترن)
مکانیک سیالات و هیدرولیک
هیدرولوژی
سازه
مقاومت مصالح و استاتیک
ریاضیات
مكانیك خاك
بتن
راه‌سازی و روسازی
نقشه‌برداری
اطلاع رسانی
علمی
نویسندگان
محمدصادق عباسیان
پیوندها
دانشگاه صنعتی شریف
کتاب عمران
وبلاگ فرآیندهای تصفیه‌ی آب و فاضلاب
پیوندهای روزانه
فروشگاه فایل‌های آموزشی جزوه‌ها و پروژه‌های مهندسی دانشگاه صنعتی شریف
صفحات جانبی
درباره‌ مدیر، محمدصادق عباسیان
ابر برچسب‌ها
هیدرولیک فرترن علمی مبانی برنامه‌نویسی فرترن هیدرولوژی مکانیک خاک مکانیک سیالات و هیدرولیک بتن سیالات مقاومت مصالح و استاتیک
آمار سایت
بازدیدهای امروز: نفر
بازدیدهای دیروز: نفر
كل بازدیدها: نفر
بازدید این ماه: نفر
بازدید ماه قبل: نفر
تعداد نویسندگان: عدد
كل مطالب: عدد
آخرین بازدید:
آخرین بروزرسانی:
Blog Skin