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

۴۴۰۷ بازدید
آخرین به‌روزرسانی: ۱۷ اردیبهشت ۱۴۰۲
زمان مطالعه: ۳۶ دقیقه
دانلود PDF مقاله
روش وتری – به زبان ساده (+ دانلود فیلم آموزش گام به گام)روش وتری – به زبان ساده (+ دانلود فیلم آموزش گام به گام)

روش وتری (Secant Method) بسیار شبیه به روش دو بخشی است، با این تفاوت که به جای تقسیم هر بازه با انتخاب نقطه میانی، هر بازه با وتر متصل کننده نقطه ابتدا و انتهای بازه تقسیم می‌شود. روش وتری همیشه به ریشه f(x)=0f ( x) = 0 همگرا می‌شود که f(x)f (x) در بازه [a,b][a,b] پیوسته بوده و f(a)f(b)<0f(a)f(b)<0.

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

فرمول خط وتر

فرض کنید f(x)f (x) یک تابع پیوسته در بازه بسته [a,b][a,b] باشد، به گونه‌ای که f(a)f(b)<0f(a)f(b) < 0. یک جواب معادله f(x)=0f ( x) = 0 برای x[a,b]x \in [a,b] با قضیه مقدار میانی تضمین می‌شود. مشخصات ابتدا و انتهای بازه، یعنی (a,f(a))(a,f(a)) و (b,f(b))(b,f(b)) خط زیر را تشکیل می‌دهند:

y=f(b)f(a)ba(xa)+f(a)\large y = \frac { f ( b ) - f ( a ) } { b - a } ( x - a ) + f ( a )

نقطه‌ای که خط وتر محور xx را قطع می‌کند، در رابطه زیر صدق می‌کند:

0=f(b)f(a)ba(xa)+f(a)\large 0 = \frac { f ( b ) - f ( a ) } { b - a } ( x - a ) + f ( a )

با حل این معادله، xx به دست می‌آید:

x=af(a)baf(b)f(a)\large x = a - f ( a ) \frac { b - a } { f ( b ) - f ( a ) }

الگوریتم روش وتری

مراحل روش وتری اغلب شبیه روش دو بخشی است. تنها تفاوت در تقسیم هر زیربازه است.

  1. بازه شروع [a0,b0][a_0,b_0] را در نظر بگیرید، به گونه‌ای که f(a0)f(b0)<0f(a_0)f(b_0) < 0.
  2. مقدار f(x0)f(x_0) را محاسبه کنید که x0x _ 0 با خط وتر x0=a0f(a0)b0a0f(b0)f(a0)x _ 0 = a _ 0 - f ( a _ 0 ) \frac { b _ 0 - a _ 0 } { f ( b _ 0 ) - f ( a _ 0 ) } داده می‌شود.
  3. زیربازه بعدیِ [a1,b1][a_1,b_1] را تعیین کنید:
    1. اگر f(a0)f(x0)<0f(a_0)f(x_0) < 0، آنگاه [a1,b1][a_1,b_1] به عنوان بازه بعدی در نظر گرفته می‌شود که در آن، a1=a0a_1=a_0 و b1=x0b_1=x_0.
    2. اگر f(b0)f(x0)<0f(b_0)f(x_0) < 0، آنگاه [a1,b1][a_1,b_1] به عنوان بازه بعدی در نظر گرفته می‌شود که در آن، a1=x0a_1=x_0 و b1=b0b_1=b_0.
  4. مراحل ۲ و ۳ را تا زمانی که طول بازه [aN,bN][a_N,b_N] به یک مقدار از پیش تعیین شده برسد، تکرار کنید.
  5. مقدار xNx _ N را در NNاُمین تکرار xx است محاسبه کنید.

طبق قضیه مقدار میانی، یک جواب برای معادله f(x)=0f(x)=0 در بازه [a,b][a,b] تضمین شده است که f(x)f ( x) در بازه [a,b][a,b] پیوسته بوده و f(a)f(b)<0f(a)f(b) < 0. به عبارت دیگر، علامت تابع در بازه مذکور تغییر کرده و در نتیجه، باید در نقطه (یا نقاطی) درون بازه برابر با صفر شود.

پیاده‌سازی در پایتون

تابعی می‌نویسیم و نام آن را "secant" قرار می‌دهیم. این تابع چهار ورودی "b" ،"a" ،"f" و "N" دارد و خروجی آن، حل معادله f(x)=0f ( x ) =0 با NN بار تکرار روش وتری است. اگر در هر نقطه از تکرار داشته باشیم: f(an)f(bn)0f(a_n)f(b_n) \geq 0 (به دلیل بازه اولیه نامناسب یا گرد کردن خطا در محاسبات)، آنگاه در خروجی برنامه، عبارت "Secant method fails." چاپ می‌شود و خروجی "None" خواهد بود.

به عنوان مثال، تابع مورد نظر را با مقادیری که خروجی صحیح آن‌ها را می‌دانیم، بررسی می‌کنیم. می‌خواهیم نسبت فوق طلایی را تقریب بزنیم که تنها ریشه حقیقی چندجمله‌ای p(x)=x3x21p(x) = x^3 - x^2 - 1 است.

-1
3

از آنجایی که علامت چندجمله‌ای در بازه [1,2][1,2] تغییر می‌کند، می‌توانیم از روش وتری با شروع از بازه زیر استفاده کنیم:

1.4655712311394433

مقدار دقیق نسبت فوق طلایی به صورت زیر است:

فرمول فوق طلایی

1.4655712318767682

تقریب به دست آمده را با جواب دقیق آن مقایسه می‌کنیم:

7.373248678277378e-10

پیاده‌سازی در متلب

روش وتری را می‌توان به سادگی در متلب نیز پیاده‌سازی کرد. برای مثال، کد متلب روش وتری برای یافتن ریشه همان چندجمله‌ای p(x)=x3x21p(x) = x^3 - x^2 - 1 در متلب به صورت زیر است:

خروجی حاصل از اجرای کد بالا به صورت زیر خواهد بود:

n = 1, x = 1.25, f(xr) = -0.60938
n = 2, x = 1.3766, f(xr) = -0.28626
n = 3, x = 1.4309, f(xr) = -0.11766
n = 4, x = 1.4524, f(xr) = -0.045671
n = 5, x = 1.4606, f(xr) = -0.017331
n = 6, x = 1.4637, f(xr) = -0.0065203
n = 7, x = 1.4649, f(xr) = -0.0024451
n = 8, x = 1.4653, f(xr) = -0.00091577
n = 9, x = 1.4655, f(xr) = -0.00034283
n = 10, x = 1.4655, f(xr) = -0.00012832
n = 11, x = 1.4656, f(xr) = -4.8029e-05
n = 12, x = 1.4656, f(xr) = -1.7976e-05
n = 13, x = 1.4656, f(xr) = -6.7276e-06
n = 14, x = 1.4656, f(xr) = -2.5179e-06
n = 15, x = 1.4656, f(xr) = -9.4236e-07
n = 16, x = 1.4656, f(xr) = -3.5269e-07
n = 17, x = 1.4656, f(xr) = -1.32e-07
n = 18, x = 1.4656, f(xr) = -4.9403e-08
n = 19, x = 1.4656, f(xr) = -1.849e-08
n = 20, x = 1.4656, f(xr) = -6.92e-09

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

^^

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

فیلم آموزشی روش وتری

دانلود ویدیو

فیلم آموزشی حل مثال از روش وتری در متلب

دانلود ویدیو
بر اساس رای ۱۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Mathematical Python
دانلود PDF مقاله
۱ دیدگاه برای «روش وتری – به زبان ساده (+ دانلود فیلم آموزش گام به گام)»

با سلام و احترام
در حالت کلی در روش سکانت، بازه اولیه لزوما شامل ریشه نیست. به همین دلیل در برخی مواقع این روش واگرا می شود که از ایرادات این روش است. بهتر است در ابتدای مطلب عنوان کنید که شما حالت خاصی از این روش را توضیح داده اید تا خواننده دید بهتری به مسئله داشته باشد.
با تشکر

نظر شما چیست؟

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