ریاضی, علوم پایه 9442 بازدید

در آموزش‌های قبلی مجله فرادرس، درباره مشتق و روش‌های مشتق‌گیری بحث کردیم. در این آموزش، فرمول‌های مشتق گیری عددی را معرفی می‌کنیم. این فرمول‌ها، تفاضل رو به جلو، تفاضل رو به عقب و تفاضل مرکزی هستند. پیاده‌سازی این فرمول‌ها در پایتون نیز ارائه شده است.

محتوای این مطلب جهت یادگیری بهتر و سریع‌تر آن، در انتهای متن به صورت ویدیویی نیز ارائه شده است.

برای مشاهده ویدیوها کلیک کنید.

تعریف مشتق

مشتق تابع $$ f (x ) $$ در نقطه $$ x = a $$ با حد زیر محاسبه می‌شود:

$$ \large f ^ \prime ( a ) = \lim _ { h \to 0 } \frac { f ( a + h ) – f ( a ) } { h } $$

فرمول‌های تفاضل

سه فرمول اصلی برای مشتق‌گیری تقریبی عددی وجود دارد:

۱) فرمول تفاضل رو به جلو (Forward Difference Formula) با اندازه گام $$h $$:

$$ \large f ^ \prime ( a ) \approx \frac { f ( a + h ) – f ( a ) } { h } $$

۲) فرمول تفاضل رو به عقب (Backward Difference Formula) با اندازه گام $$h $$:

$$ \large f ^ \prime ( a ) \approx \frac { f ( a ) – f ( a – h ) } { h } $$

۳) فرمول تفاضل مرکزی (Central Difference Formula) با اندازه گام $$h$$، میانگین فرمول‌های تفاضل رو به جلو و تفاضل رو به عقب است:

$$ \large \begin {align*}
f ^ \prime ( a ) & \approx \frac { 1 } { 2 } \left ( \frac { f ( a + h ) – f ( a ) } { h } + \frac { f ( a ) – f ( a – h ) } { h } \right ) \\ & = \frac { f ( a + h ) – f ( a – h ) } { 2 h }
\end {align*} $$

پیاده‌سازی مشتق گیری عددی در پایتون

ابتدا کتابخانه‌های لازم را فراخوانی می‌کنیم:

برای پیاده‌سازی فرمول‌های مشتق‌‌گیری عددی در پایتون، تابعی به نام derivative را می‌نویسیم که ورودی‌های آن method ،a ،f و h هستند (با مقادیر پیش‌فرض ‘method=’central و h=0.01). خروجی تابع مورد نظر، متناظر با خروجی فرمول تفاضل برای $$ f'(a) $$ با اندازه گام $$h$$ است.

برنامه بالا را برای چند تابع ساده بررسی می‌کنیم. به عنوان مثال، برای تابع کسینوس، داریم:

$$ \large \left . \frac { d } { d x } \left ( \cos x \right ) \, \right | _ { x = 0 } = – \sin ( 0 ) = 0 $$

اگر از تابع پایتون زیر نیز استفاده کنیم، خروجی صفر را خواهد داد:

خروجی:

برای روش رو به جلو نیز داریم:

خروجی:

به عنوان مثالی دیگر، برای تابع نمایی نیز می‌دانیم:

$$ \large \left . \frac { d } { d x } \left ( e ^ x \right) \, \right | _ { x = 0 } = e ^ 0 = 1 $$

با استفاده از تابع پایتون نیز داریم:‌

خروجی:

اگر بخواهیم از روش رو به عقب استفاده کنیم، دستور زیر را می‌نویسیم:

خروجی:

تابعی که نوشتیم، آرایه‌ای از ورودی‌ها را برای $$ a $$ می‌گیرد و مقدار مشتق را برای آن مقدار $$a $$ محاسبه و به عنوان خروجی ارائه می‌کند. برای مثال، مشتق $$ \sin (x) $$ را می‌توانیم به صورت زیر رسم کنیم:

مشتق کسینوس

اکنون می‌خواهیم مشتق تابع نسبتاً پیچیده زیر را محاسبه و رسم کنیم:‌

$$ \large y = \left ( \frac { 4 x ^ 2 + 2 x + 1 } { x + 2 e ^ x } \right ) ^ x $$

تابع و مشتق آن

فرمول‌های خطا

پرسشی که هنگام تقریب زدن پیش می‌آید، این است که دقت مناسب فرمول‌های تفاضل رو به جلو، رو به عقب و مرکزی چقدر است؟ به همین دلیل، فرمول‌های خطا را با استفاده از سری تیلور پیدا می‌کنیم.

قضیه

چندجمله‌ای تیلور مرتبه $$n$$ تابع $$ f (x ) $$ در $$ x = a $$ با جمله باقیمانده به صورت زیر است:

$$ \large \begin {align*}
f ( x ) & = f ( a ) + f ^ \prime ( a ) ( x – a ) + \frac { f ^ {\prime \prime } ( a ) } { 2 } ( x – a ) ^ 2 \\ & \, \, \, \, \, \, \, \, + \cdots + \frac { f ^ { ( n ) } ( a ) } { n ! } ( x – a ) ^ n + \frac { f ^ { ( n + 1 ) } ( c ) } { ( n + 1 ) ! } ( x – a ) ^ { n + 1 }
\end {align*} $$

که در آن، $$c $$ مقداری بین $$ x $$ و $$ a $$ است.

قضیه

خطای فرمول تفاضل رو به جلو برابر است با:

$$ \large \left | \, \frac { f ( a + h ) – f ( a ) } { h } – f ^ \prime ( a ) \, \right | \leq \frac { h K _ 2 } { 2 } $$

که در آن، برای همه $$ x \in [a,a+h] $$ رابطه $$ \left| \, f ^ {\prime \prime }(x) \, \right| \leq K_2 $$ برقرار است. فرمول خطای مشابهی برای روش تفاضل رو به عقب برقرار است.

اثبات: فرمول تیلور مرتبه اول را در نظر بگیرید:

$$ \large f ( x ) = f ( a ) + f ^ \prime ( a ) ( x – a ) + \frac { f ^ { \prime \prime } ( c ) } { 2 } ( x – a ) ^ { 2 } $$

با فرض $$ x = a+h $$ و جایگذاری آن در فرمول بالا، داریم:

$$ \large \begin {align}
f ( a + h ) & = f ( a ) + f ^ \prime ( a ) h + \frac { f ^ { \prime \prime } ( c ) } { 2 } h ^ { 2 } \\
f ( a + h ) – f ( a ) & = f ^ \prime ( a ) h + \frac { f ^ {\prime \prime } ( c ) } { 2 } h ^ { 2 } \\
\frac { f ( a + h ) – f ( a ) } { h } & = f ^ \prime ( a ) + \frac { f ^ {\prime \prime } ( c ) } { 2 } h \\
\frac { f ( a + h ) – f ( a ) } { h } – f ^ \prime ( a ) & = \frac { f ^ { \prime \prime } ( c ) } { 2 } h \\
\end{align} $$

$$ K_2 $$ را به گونه‌ای در نظر بگیرید که برای همه $$ x \in [a,a+h] $$، رابطه $$ | f ^ { \prime \prime  } ( x ) | \leq K _ 2 $$ برقرار باشد.

قضیه

خطای فرمول تفاضل مرکزی، برابر است با:

$$ \large \left | \frac { f ( a + h ) – f ( a – h ) } { 2 h } – f ‘ ( a ) \right | \leq \frac { h ^ 2 K _ 3 } { 6 } $$

که در آن، برای همه $$ x \in [a-h,a+h] $$، رابطه $$ | f ^ { \prime \prime \prime } ( x ) | \leq K _ 3 $$ برقرار است.

اثبات: چندجمله‌ای مرتبه دوم تیلور را در نظر بگیرید:

$$ \large f ( x ) = f ( a ) + f ‘ ( a ) ( x – a ) + \frac { f ^ { \prime \prime } ( a ) } { 2 } ( x – a ) ^ 2 + \frac { f ^ {\prime \prime \prime } ( c ) } { 6 } ( x – a ) ^ { 3 } $$

تساوی‌های $$ x = a + h $$ و $$ x = a – h $$ را در نظر بگیرید. روابط زیر را داریم:

$$ \large \begin {align}
f ( a + h ) & = f ( a ) + f ^ \prime ( a ) h + \frac { f ^ {\prime \prime } ( a ) } { 2 } h ^ 2 + \frac { f ^ { \prime \prime \prime } ( c _ 1 ) } { 6 } h ^ { 3 } \\
f ( a – h ) & = f ( a ) – f ^ \prime ( a ) h + \frac { f ^ {\prime \prime } ( a ) } { 2 } h ^ 2 – \frac { f ^ { \prime \prime \prime } ( c _ 2 ) } { 6 } h ^ { 3 } \\
f ( a + h ) – f ( a – h ) & = 2 f ^ \prime ( a ) h + \frac { f ^ { \prime \prime \prime } ( c _ 1 ) } { 6 } h ^ { 3 } + \frac { f ^ { \prime \prime \prime } ( c _ 2 ) } { 6 } h ^ { 3 } \\
\frac { f ( a + h ) – f ( a – h ) } { 2 h } – f ^ \prime ( a) & = \frac { f ^ {\prime \prime \prime } ( c _ 1 ) + f ^ {\prime \prime \prime } ( c _ 2 ) } { 1 2 } h ^ { 2 } \\
\end{align} $$

توجه کنید که $$ f ^ { \prime \prime \prime } ( x ) $$ پیوسته است (طبق فرض) و $$ ( f ^ { \prime \prime \prime } ( c _ 1 ) + f ^ { \prime \prime \prime } ( c _ 2 ) ) / 2 $$ بین $$ f ^ { \prime \prime \prime } ( c _ 1 ) $$ و $$ f ^ { \prime \prime \prime } ( c _ 2 ) $$ قرار دارد. بنابراین، طبق قضیه مقدار میانی، یک $$ c $$ بین $$ c _ 1 $$ و $$ c _ 2$$ به گونه‌ای وجود دارد که رابطه زیر برقرار باشد:

$$ \large f ^ { \prime \prime \prime } ( c ) = \frac { f ^ { \prime \prime \prime } ( c _ 1 ) + f ^ { \prime \prime \prime } ( c _ 2 ) } { 2 } $$

$$K_3$$ به گونه‌ای است که برای همه $$ x \in [a-h,a+h] $$ رابطه $$ \left | \, f ^ { \prime \prime \prime } ( x ) \, \right | \leq K _ 3 $$ برقرار باشد.

مثال‌

در این مثال می‌خواهیم چندجمله‌ای تیلور مرتبه سوم $$ T_3(x) $$ تابع $$ f(x) = \frac{3e^x}{x^2 + x + 1} $$ را با مرکز $$ x = 0 $$ و در بازه $$ x \in [-3,3] $$ رسم کنیم. ابتدا نمودار $$ y = f (x ) $$ را رسم می‌کنیم:

تابع

اکنون ضرایب $$ a_n = \frac{f^{(n)}(0)}{n!} $$ را برای $$ n=0,1,2,3 $$ محاسبه می‌کنیم:

خروجی:

در نهایت، $$ f (x ) $$ و $$ T_3 (x ) $$ را با هم در یک شکل رسم می‌کنیم:

نمودار تابع

 

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

فیلم‌ های آموزش مشتق گیری عددی — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

فیلم آموزشی تعریف مشتق و فرمول‌های تفاضل

دانلود ویدیو

فیلم آموزشی فرمول‌های خطا در مشتق‌گیری عددی

دانلود ویدیو

سید سراج حمیدی (+)

«سید سراج حمیدی» دانش‌آموخته مهندسی برق است. او مدتی در زمینه انرژی‌های تجدیدپذیر فعالیت کرده، و در حال حاضر، آموزش‌های ریاضیات، مهندسی برق و بورس مجله فرادرس را می‌نویسد.

بر اساس رای 6 نفر

آیا این مطلب برای شما مفید بود؟

یک نظر ثبت شده در “مشتق گیری عددی — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

  1. ممنون
    خیلی خوب توضیح دادید

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برچسب‌ها