မင်္ဂလာပါ။ အရှေ့မှာ Finite difference သုံး Numerical method (မိတ်ဆက် – ၁) ဆိုပြီး သိထားစရာ အချက်အလက်အချို့ကို ယေဘုယျသဘောမျိုး ဆွေးနွေးဖြစ်ခဲ့ပါတယ်။ အခုဆောင်းပါး ဒုတိယပိုင်းမှာတော့ finite difference method ရဲ့ အရေးကြီးတဲ့ main concepts တွေကို တင်ပြသွားပါမယ်။ ဒီဆောင်းပါးထဲက ညီမျှခြင်းတွေကို နောင်လာမယ့် ဆောင်းပါး (တတိယပိုင်း) မှာ အသုံးချပြပါမယ်။
What is finite difference?
Finite difference ဆိုတာ နာမည်မှာပါတဲ့အတိုင်း ခြားနားချက် (difference) သဘောတရားကို အခြေခံပါတယ်။၊ သူ့ကို ပြောင်းလဲခြင်း (derivative) တွေကို ခန့်မှန်းတဲ့နေရာမှာ အသုံးပြုပါတယ်။ အောက်ပါ ညီမျှခြင်း သုံးကြောင်းကို လူသိများကြပါတယ်။
ဖော်ပြပါညီမျှခြင်း သုံးကြောင်းလုံးဟာ f(x) ဆိုတဲ့ function ရဲ့ ပြောင်းလဲခြင်းကိုပြပါတယ်။ ပြောင်းလဲခြင်း derivative ကို \frac{d}{dx}f(x) ဆိုပြီး ရေးပါတယ်။ Equation (1) ကို Forward difference (သို့) Forward Euler method လို့ခေါ်ပါတယ်။ အဲ့ဒီထဲမှာပါတဲ့ \Delta x ဆိုတာ x ဆိုတဲ့ ကိန်းရှင်ရဲ့ ခြားနားချက်ပါ (ဥပမာ – \Delta x = x_2 - x_1 ) ။ Equation (2) ကို Backward difference ၊ နဲ့ Equation (3) ကို Central difference စသဖြင့် အသီးသီး ခေါ်ကြပါတယ်။ ဘာကို ဆိုလိုချင်တာလဲဆိုတာ သဘောပေါက်ဖို့ အောက်ပါပုံ (ပုံ ၁) နဲ့ တွဲကြည့်ပေးပါ။
ပုံ ၁ ထဲမှာ အနက်ရောင် မျဉ်းကွေး တစ်ခုဆွဲထားတယ်။ သူက function f(x) ကို ကိုယ်စားပြုပါတယ်။ ကိန်းရှင် variable x တန်ဖိုးအမျိုးမျိုးအတွက် ရမယ့် ဆက်သွယ်ချက်ဆိုပါတော့။ ဖော်ပြပါမျဉ်း (အနက်) ဟာ ကွေးချင်လည်း ကွေးမယ်၊ ဖြောင့်ချင်လည်း ဖြောင့်နေနိုင်ပါတယ်။ ဒီနေရာမှာ အရေးကြီးတဲ့ အချက်တစ်ခုက ဒီမျဉ်းဟာ continuous (တစ်နည်း) တဆက်တည်းရှိနေရပါမယ်။ ဆိုလိုချင်တာက function f(x) ကို x နဲ့လိုက်ပြီး ရှိတ်ချင်သလောက်ရှိတ်လို့ရတယ်လို့ ပြောချင်တာပါ။ Second order, third order, fourth order စသဖြင့် ကြိုက်သလောက် differentiate လုပ်လို့ရတယ် ဆိုပါတော့။
ကျွန်တော်တို့ဟာ ဒီမျဉ်းကွေးရဲ့ derivative ကို ရှာချင်တာပါ။ ပုံထဲမှာတော့ ဝန်းဖြတ်မျဉ်းရဲ့ လျှောစောက် (slope) ရှာတဲ့နည်းကို ပြထားပါတယ်။ ဒီအကြောင်း အရင်ကလည်း insight ဆောင်းပါးတစ်ပုဒ်မှာ အနည်းငယ် ရှင်းပြခဲ့ဖူးပါတယ် (ပြန်ကြည့်ရန် – ပြောင်းလဲခြင်း (Differentiations) များကို ဂျီသြမေတြီနည်းဖြင့် ရှုမြင်ခြင်း )။ ဒီနေရာမှာ လျှောစောက် (slope) ရှာပုံရှာနည်း သုံးမျိုးရှိတာကို တွေ့ရပါမယ်။ မျဉ်းအပြာလေးနဲ့ပြထားတာကတော့ အရှေ့ (ညာဘက်) က ကိန်းတန်ဖိုးကို ယူပြီး ခန့်မှန်းတာဖြစ်လို့ Forward difference လို့ခေါ်ပါတယ်။ သူနဲ့ဆိုင်တဲ့ ညီမျှခြင်းကတော့ equation (1) ပါ။ အဲ့လိုပဲ ဘယ်ဘက် (သို့) အနောက်ဘက်ကို ပြန်သွားပြီး ခန့်မှန်းမယ်ဆို Backward difference လို့ ခေါ်ပါတယ် (ဆိုင်ရာ မျဉ်းအနီကိုကြည့်ပါ) ။ နောက်ဆုံးတစ်ခုဖြစ်တဲ့ Central difference (မီးခိုးရောင်မျဉ်း) ကတော့ ဘယ်ဘက်က x - \Delta x ရယ် ၊ ညာဘက်က x + \Delta x ရယ်ကို သုံးပြီးတော့ လျှောစောက်ရှာတဲ့နည်းပါ။ ( x + \Delta x နဲ့ x - \Delta x တို့ရဲ့ ခြားနားခြင်းက 2 \Delta x ရပါတယ်။ Equation 3 နဲ့ ပြန်ပြီး နှိုင်းယှဉ်ကြည့်ကြပါ )။ ဒါတွေကတော့ numerical differentiation ရဲ့ ပုံသေနည်းကို graphical သဘောတရားနဲ့ ချိန်ထိုးရှုမြင်ကြည့်တာပဲ ဖြစ်ပါတယ်။
Taylor series အသုံးပြု၍ သက်သေပြခြင်း
အထက်မှာ ရှင်းပြသွားခဲ့တဲ့ ပုံသေနည်း သုံးကြောင်းလုံး သူ့နေရာနဲ့သူ အရေးကြီးပါတယ်။ ဒီပုံသေနည်းတွေ မှန်မမှန် Taylor series အသုံးပြုပြီး သက်သေပြလို့ရပါတယ်။ Taylor series အကြောင်းကိုတော့ ဆောင်းပါးအရမ်းရှည်သွားမှာစိုးလို့ မရှင်းပြတော့ပါဘူး။ 3Blue1Brown youtube channel မှာ Taylor series အကြောင်း ရှင်းပြထားတာလေးက စိတ်ဝင်စားဖို့ကောင်းပါတယ်။ လေ့လာကြည့်ကြပါ (သွားကြည့်ရန် လင့်ခ်) ။
Taylor series က function f(x) ရယ် သူ့ရဲ့ derivatives (first order, second order, third order စသည်ဖြင့်) တွေရယ် နဲ့ \Delta x တို့ကို အောက်ပါအတိုင်း ဆက်စပ်ပေးပါတယ်။
f(x +\Delta x) = f(x) + \frac{df}{dx} \Delta x +\frac{1}{2} \frac{d^2f}{dx^2} \Delta x^2 + \frac{1}{6} \frac{d^3f}{dx^3} \Delta x^3 + O(\Delta x^4) f(x -\Delta x) = f(x) – \frac{df}{dx} \Delta x +\frac{1}{2} \frac{d^2f}{dx^2} \Delta x^2 – \frac{1}{6} \frac{d^3f}{dx^3} \Delta x^3 + O(\Delta x^4)ပထမညီမျှခြင်းက f(x) ရဲ့ အပေါင်းဘက် (ညာဘက်သွားတဲ့) ပြောင်းလဲခြင်းပါ။ ဒုတိယတစ်ကြောင်းကတော့ f(x) ရဲ့ အနုတ် (သို့) ဘယ်ဘက်သွားတဲ့ ပြောင်းလဲခြင်း ဖြစ်ပါတယ်။ အထက်ဖော်ပြပါ Taylor series ကို သဘောတရားအရ infinity အထိ ဖြန့်လို့ရပါတယ် (ဒီအတွက် ယေဘုယျပုံသေနည်းလည်း ရှိပါတယ်)။ အခုကတော့ order သုံးထပ်အထိပဲ ဖြန့်ထုတ်ပြထားပါတယ်။ order လေးထပ်နဲ့အထက်ကိုတော့ ခပ်လွယ်လွယ် O(\Delta x^4) ဆိုပြီး ကိုယ်စားပြုလို့ရပါတယ်။ ဒါနဲ့ စကားမစပ် series ကြီး ကြည့်ပြီးလည်း လန့်မသွားကြပါနဲ့ဦး 😅 ။ သေချာဂရုတစိုက်လေ့လာကြည့်လိုက်ရင် ထင်သလောက် မခက်တာကို တွေ့ရပါလိမ့်မယ်။
f(x) ကို ဘယ်ဘက်ကို ပို့ပြီး နှစ်ဘက်စလုံးကို \Delta x နဲ့ စားလိုက်ရင် အောက်ပါအတိုင်း ရပါမယ် ။ ဥပမာအနေနဲ့ အောက်ပါပုံကို လေ့လာကြည့်ပါ။ (ကြည့်ရရှင်းအောင် ပုံထဲမှာ အညွှန်းတချို့ တပ်ပြီး တွက်ထုတ်ပြထားပါတယ်)အထက်ပါပုံထဲက အောက်ဆုံး ညီမျှခြင်းလေးကို first order အထိပဲ ဖြန့်ထားပါတယ်။ Finite difference method မှာကျတော့ အဆိုပါ ညီမျှခြင်း (ပုံ အောက်ဆုံးအကြောင်း) မှာပါတဲ့ O(\Delta x) ကို ဖြုတ်ချလိုက်တာပါ။ ဒါ့ကြောင့် အဖြေမှာ အမှားပါနိုင်တာမို့ အဆိုပါ numerical တွက်နည်းကို approximate method ဆိုပြီးတော့ ပြောရတာပါ။ O(\Delta x) ကိုဖြုတ်လိုက်လို့ နောက်ဆုံးရလာမယ့် ညီမျှခြင်းလေးကိုတော့ Forward Euler Method ဆိုပြီးတော့ ခေါ်ပါတယ်။ သင်္ချာပညာရှင် Leonhard Euler (၁၇၀၇ – ၁၇၈၃) ကို အစွဲပြုပြီးတော့ ပေးထားတဲ့ နာမည်ပါ။ ညီမျှခြင်းလေးကတော့ ဟိုးအပေါ်မှာ ပြခဲ့တဲ့ Equation (1) နဲ့ အတူတူပဲ ဖြစ်ပါတယ်။
\frac{df}{dx} \approx \frac{f(x +\Delta x) – f(x)}{\Delta x}ညီမျှခြင်းမှာ O(\Delta x) ကို ဖြုတ်လိုက်ပြီး ညီမျှခြင်း သင်္ကေတ ( = ) မှ ခန့်မှန်းခြင်း သင်္ကေတ ( \approx ) ပြောင်းပြီးရေးထားတာကို သတိပြုပါ။ Backward နဲ့ central difference ပုံသေနည်းတို့ကိုလည်း ဒီနည်းအတိုင်းပြန်ပြီး သက်သေပြလို့ရပါတယ်။
Truncation error
Truncation error ဆိုတာ သင်္ချာ numerical method ကလာတဲ့ ဘာသာရပ်အသုံးအနှုန်းပါ။ အဆုံးအစမရှိကိန်းစဉ်တန်းပေါင်းလဒ် (infinite sum) ကို မိမိလိုသလောက်သာ ဖြန့်ပြီး အဖြေကိုခန့်မှန်းတဲ့နေရာမှာ ဖြစ်ပေါ်လာမယ့် အမှားကို ဆိုလိုပါတယ်။ ဥပမာ – အပေါ်မှာ တွက်ထုတ်ပြခဲ့တဲ့ Forward Euler Method မှာ ဆိုရင် အဖြေကို ပထမ order အထိပဲ ဖြန့်ပြီးရှာပါတယ်။ ဒါ့ကြောင့် သူ့ကို first order approximate တွက်နည်းဆိုပြီး နားလည်နိုင်ပါတယ်။ second order ၊ third order စသဖြင့် ပိုပြီးတိကျအောင် စဉ်းစားလို့ရော မရဘူးလား မေးရင် ‘ရပါတယ်’။ central difference ပုံသေနည်းဟာ second order approximate တွက်နည်းပဲ ဖြစ်ပါတယ်။ ဒါကတော့ error ကို ဘယ်လိုမျိုး ကန့်သတ်လို့ရသလဲ ဆိုတာကို နားလည်စေချင်လို့ ထည့်ပြီး ရှင်းပြရခြင်း ဖြစ်ပါတယ်။
Second order derivative
First order derivative ရှာတဲ့ ပုံသေနည်းအကြောင်းပြီးတော့ အခု second order derivative အကြောင်း လေ့လာကြည့်ရအောင်။ သူ့ကိုတော့ နောက်လာမယ့် ဆောင်းပါး တတိယပိုင်းမှာလည်း ပြန်သုံးပါမယ်။ အထက်မှာ ဖော်ပြခဲ့တဲ့ f(x +\Delta x) ပုံသေနည်းနဲ့ f(x - \Delta x) ပုံသေနည်းတို့ကို သုံးပြီးတော့ တွက်ထုတ်ပါမယ်။ အောက်ပါ ပုံမှာကြည့်ပါ။
သူ့မှာပါတဲ့ အောက်ဆုံးညီမျှခြင်းကို O(\Delta x^2) ကိုဖြုတ်လိုက်တဲ့အခါ second order derivative အတွက် (အောက်ဖော်ပြပါ) finite difference approximation ပုံသေနည်းကို ရရှိပါတယ်။
\frac{d^2f}{dx^2} \approx \frac{f(x +\Delta x) + f(x – \Delta x) – 2 f(x)}{\Delta x^2}နောက်တစ်ပတ်မှာတော့ သူ့ကို အသုံးပြုပြီး partial differential equation (PDE) ဖြစ်တဲ့ 1D heat equation ကို ဖြေရှင်းပြပါမယ်။ နားမလည်တာ၊ အကြံပြုချင်တာရှိရင် insight page ကို ဆက်သွယ်မေးမြန်းနိုင်ပါတယ် ခင်ဗျာ။ အားလုံး See you next time ပါ ။
#yp