ဆရာသောင်းဆောင်းပါးကိုပဲ နောက်တစ်နည်းနဲ့ ပြန်ဖြေရှင်းပြမယ်ဆိုပြီး အရင်ပို့စ်မှာ ပြောထားပါတယ်။ ပုစ္ဆာလေးက ဒီလိုပါ။

A ball is moving on the ground. The distance function of the ball is given
by s = 8t-t2 (ft). Find the speed of the ball at t = 3 sec, and the time when the speed of the ball is zero.

စာရေးသူအဓိကပြောပြချင်တာက numerical တွက်နည်းအကြောင်းပါ။ ဂဏန်းသင်္ချာလို့ ဘာသာပြန်ရမယ် ထင်တယ်။ သူက ရှိတ်တဲ့‌ဖော်မြူလာတွေ သိထားဖို့မလိုဘူး။ ဘာ function လာလာ အသုံးဝင်တယ်။ engineering simulation တွေမှာ အများအပြားမှာအသုံးပြုကြတယ် ဆိုပါတော့။ တိုက်မိခြင်းဆိုင်ရာ ရူပဗေဒ (physics of collision) အကြောင်း ရေးတုန်းက mass-spring model နဲ့ elastic collision အကြောင်းကို သင်္ချာ model တည်ဆောက်ပြီး ဖြေရှင်းပြမယ် ပြောခဲ့ဖူးသေးတယ် (မှတ်မိမလားတော့မသိ။ မမှတ်မိရင် ဒီလင့်ခ်မှာ ပြန်သွားဖတ်ကြည့်ပါ)။  အခုဆောင်းပါးလေးက အဲ့ဒီ mass-spring model မတိုင်ခင် numerical ရဲ့သဘောသဘာဝကို အမြည်းကျွေးထားတဲ့ သဘောပါ 😁။

ဒီပုစ္ဆာမျိုးကို one-dimensional motion (တစ်ဖက်မြင်အရွေ့) လို့ခေါ်ရမယ်။ Direction က မျဉ်းဖြောင့်အတိုင်းသွားနေတာ။ ကွေ့တာတွေ ဘာညာမရှိဘူးလို့ပြောတာ။ သဘောတရားတော်တော်များများတော့ ဆရာသောင်းရဲ့ ဆောင်းပါးထဲမှာလည်း ရှင်းလင်းထားပြီးသားဆိုတော့ ပြန်မပြောတော့ဘူး။ ဘာသာရပ်ဆိုင်ရာ terms လေးတွေတော့ နည်းနည်းပြန်ပြောပြပါမယ်။ v = s/t ဆိုပြီး ရှာတာက s က linear equation ကနေလာတာ။ တစ်နည်း average speed ရှာတဲ့နေရာမှာ သုံးတယ်။ ဒါနဲ့ ပုစ္ဆာက distance တို့၊ speed တို့ ဆိုပြီး သုံးနှုန်းထားတာနော်။ လွယ်အောင်ပြောထားတာလို့ ယူဆရပါတယ်။ ဂရပ်ဆွဲတွက်ချက်တဲ့အခါ displacement ကို အသုံးပြုတာက ပိုလွယ်ပါတယ်။ နောက်ပြီး speed အစား velocity ကို သုံးတာက ပိုမှန်လိမ့်မယ်။ ဒီလို speed တို့ ၊ velocity တို့၊ distance တို့ စတဲ့ မတ္တာတွေရဲ့ သဘောတရားတွေအကြောင်းကိုလည်း Motion (သို့မဟုတ်) အရောတတ်ဆုံး ရူပဗေဒ မတ္တာများ ဆိုတဲ့ဆောင်းပါးမှာ ဆရာသောင်းကပဲ ရေးသားမျှဝေခဲ့ဖူးပါတယ်။

ဒီတော့ average speed ကိုတွက်ဖို့

\displaystyle \text{average speed } = \frac{\text{average distance}}{\text{elapsed time}}

သင်္ကေတအနေနဲ့ရေးရင်

\displaystyle \bar{V}_{avg} = \frac{\Delta d}{\Delta t}

ဆိုပါတော့။ အဲ့ဒီမှာ \Delta d ဆိုတာက စဦး distance တန်ဖိုးထဲက နောက်ဆုံး distance တန်ဖိုးကို နုတ်ထားတာ။ \Delta t (တစ်နည်း elapsed time) ဆိုတာလည်း ဒီသဘောတရားအတိုင်းပဲ စတဲ့အချိန် (reference time) ထဲကနေ ဆုံးတဲ့အချိန်ကို နုတ်တာ။ ဒါက ပျမ်းမျှအမြန်နှုန်းကို တွက်တာဖြစ်တယ်။

ဆရာသောင်းတွက်ပြထားတာကို ပြန်ကောက်ရရင် –

  • ပထမမေးခွန်းအတွက် အဖြေက 2 ft/sec ရတယ်။ (speed of the ball at 3 sec)
  • ဒုတိယမေးခွန်းအတွက် အဖြေက 4 sec ရပါတယ်။ (time when the speed is zero)

ဆရာသောင်းကတော့ အဲ့ဒီအဖြေကို ရဖို့ ‘ရှိတ်’ ပုံသေနည်းကို အသုံးပြုသွားခဲ့တယ်။ ဒါကို instantaneous speed လို့ခေါ်ရမယ်။ သူရဲ့ သဘောတရားကို သိဖို့က အရင်ဆုံးမျက်စိလေးကိုမှိတ်၊ အစက်အပြောက်လေးတစ်ခု ဗလာနယ်ထဲမှာ အပေါ်အောက် မြန်လိုက်နှေးလိုက်နဲ့ ရွေ့နေတာကို မြင်ယောင်ကြည့်။ ဗီဒီယိုလေးကြည့်နေသလိုပေါ့။ အဲ့ဒီဗီဒီယိုလေးကို pause နှိပ်ပြီး အစက်ကလေးရဲ့ တည်နေရာနဲ့ အမြန်ကိုတိုင်း (စိတ်ထဲမှာတိုင်းတာဆိုတော့ ဘာနဲ့တိုင်းတိုင်း တိုင်းလို့ရတယ် သဘောထားလိုက်)။ တိုင်းပြီးရင် play ပြန်နှိပ်၊ တည်နေရာနဲ့ အမြန်နှုန်းကို ထပ်တိုင်း။ pause တစ်ခါနှိပ်လိုက်တိုင်း motion တစ်ခုလုံးက ဓာတ်ပုံတစ်ခုလိုပဲ။ play ပြန်နှိပ်လိုက်ရင် ဓာတ်ပုံတွေကို တဆက်စပ်တည်း ကြည့်နေရသလိုပဲ မြင်ရလိမ့်မယ် (again စိတ်ထဲမှာပြောတာနော်)။ ဒီလို အချိန်အပိုင်းအခြားလေးတစ်ခုစီတိုင်းမှာ ရှိနေမယ့် speed ကို instantaneous speed (ဆက်တိုက်အမြန်နှုန်း) ဆိုပြီးခေါ်ရတာပါ။ အဲ့လို အချိန်တွေကို ဓာတ်ပုံရိုက်သလို ပိုင်းပိုင်းသွားတာကိုကျ time discretization ဆိုပြီး ခေါ်ပါတယ်။ (ဒီအကြောင်း အောက်မှာ ထပ်ပြောပါမယ်)။

confuse မဖြစ်ခင် နောက်ထပ်ရှင်းစရာ တစ်ခုရှိသေးတယ်။ အဲ့ဒါက ဆရာသောင်းရဲ့graph ဟာ တကယ်တော့ displacement ကို သုံးပြီး ဆွဲထားတာပါ (ပုံ ၁ ကိုကြည့်ပါ)။ ဘာလို့ဆို အချိန် ၄ စက္ကန့်မှာ maximum displacement ကို ရောက်သွားတယ်။ ပြီးလည်း ပြီးရော အစက်ကလေးက အောက်ကို ပြန်ကျလာတဲ့သဘောမျိုးပါ (ဒါကို စိတ်ထဲ သေချာမြင်ယောင်ကြည့်နိုင်ရင် ဒီပုစ္ဆာကို သင်အမှန်တကယ်နားလည်သွားပါပြီ)။ Distance နဲ့ displacement မတူတာက distance က သွားသမျှခရီးအတိုင်းအတာကို တိုင်းထားတာမို့ အတိုးပဲရှိပါတယ်။ အလျော့မရှိနိုင်ပါ။ ဒါကြောင့် distance ဟာ scalar quantity ပါ။ ဒီပုစ္ဆာမှာ direction ကို ထည့်စဉ်းစားရင် vector ပုစ္ဆာဖြစ်သွားပြီ။ distance နဲ့ displacement ရဲ့ magnitude (တန်ဖိုး) ဟာ အစက်ကလေး maximum ကို ရောက်တဲ့အချိန် ၄ စက္ကန့်အထိပဲ တူပါမယ်။ (မှတ်ချက်။ ရှင်းလေရှုပ်လေဖြစ်မှာစိုးလို့ ဒီလောက်နဲ့ ရပ်ထားလိုက်ပြီ။ မရှင်းသေးရင် ပြန်မေးကြပါရန်)

How to solve numerically?

အခု numerical နဲ့ ဖြေရှင်းပုံကို တင်ပြပါမယ်။ ခုနက တင်ပြခဲ့တဲ့ time discretization ဆိုတဲ့သဘောတရားကို အသုံးပြုသွားမှာပါ။ ဂရပ်ဆွဲပြီး ဖြေရှင်းလို့ ရသလို ကိန်းဂဏန်းများကိုသာ အသုံးပြုပြီး ဖြေရှင်းတဲ့ နည်းလမ်းပါ။ အရမ်းအသုံးဝင်ပါတယ်။ သတိပြုရမှာက ကိန်းဂဏန်းဆိုင်ရာ (တွက်ချက်မှု) အမှားရှိနိုင်ပါတယ်။ ဆရာသောင်းတွက်ပြတဲ့နည်းက exact (အတိအကျ) တွက်နည်းလို့ခေါ်ပါတယ်။ Numerical တွက်နည်းကတော့ ပုစ္ဆာ‌ပေါ်မူတည်ပြီး အနီးစပ်ဆုံး ခန့်မှန်းအဖြေကိုသာ ရနိုင်ပါတယ်။ ဒီတော့ အသုံးပြုသူက တတ်နိုင်သမျှ error ကို လျှော့ချနိုင်ဖို့ အားထုတ်ရပါတယ်။ ကဲ ပြောနေကြာဦးမယ်။ တွက်ပုံတွက်နည်းလေးကြည့်ရအောင်။

ပုံသေနည်းက ‘ရှိတ်’ တာတွေ ‘ရိတ်’ တာတွေ သိဖို့မလိုဘူး။ slope (လျှောစောက်) ရှာတာလေးသိထားရင် အလုပ်ဖြစ်ပြီ။ လျှောစောက်နဲ့ ပတ်သက်ပြီးတော့ ကိုရန်အောင်မိုးရေးပေးဖူးတဲ့ ဆောင်းပါးလေးတောင် insight မှာ ရှိပါတယ်။ (သိချင်ရင် ဒီလင့်ခ်မှာ ပြန်သွားဖတ်ပါရန်)

\displaystyle \text{slope } =  \frac{\text{rise}}{\text{run}} = \frac{\Delta Y}{\Delta X}

displacement ရဲ့ လျှောစောက်ဟာ displacement ရဲ့ ပြောင်းလဲခြင်းပါ။ ဒီတော့ velocity ပေါ့။ အဲ့တော့ displacement function ကို ခုနကပြောသလို အချိန်အမှတ်တစ်ခုချင်းစီမှာ pause နှိပ်ထားသလိုမျိုး တွေးကြည့်လိုက်။ မြန်မြန်သွားမလား၊ နှေးနှေးသွားမလားဆိုတာကတော့ သင့်အပေါ်မှာပဲ မူတည်တယ် (ဒါပေမယ့် မြန်မြန်သွားတာ၊ နှေးနှေးသွားတာနဲ့ ပတ်သက်လို့ အကျိုးဆက်တွေရှိတတ်တာ သဘောပေါက်ထားပါ)။ Time ဆိုတဲ့ dimension ကို အပိုင်းပိုင်း စိတ်လိုက်ပြီလို့ လွယ်လွယ်တွေးလို့လည်း ရပါတယ်။ (မှတ်ချက်။ ဒီပုစ္ဆာမှာ အချိန်ပြန့်တာ ကျုံ့တာ စတဲ့ relativistic သဘောတရားများ မပါရှိပါ)။

အပေါ်ကပုံမှာ အချိန်ကို array တစ်ခုအနေနဲ့ စဉ်းစားပုံကို ပြထားတာပါ။ စချိန်၊ ဆုံးချိန်နဲ့ အပိုင်းအခြား (time step Δt) ကို သင်က သတ်မှတ်‌ပေးရပါမယ်။ (မှတ်ချက်။ စာရေးသူရဲ့ ဥပမာပေးထားတဲ့ MATLAB code ထဲမှာတော့ Δt အစား စုစုပေါင်း အစိတ်အရေအတွက် ၊ တစ်နည်း t array ရဲ့ size ကို n ဆိုပြီးသတ်မှတ်ပေးထားပါတယ်။ သူက ပိုပြီးတော့ မြင်သာထင်သာရှိလို့ပါ။ သဘောတရားချင်းက အတူတူပါ) ။

ဟုတ်ပြီ။ ဒါတွေ သတ်မှတ်ပြီးသွားရင် လက်ရှိရလဒ် (current time step) ကို သုံးပြီး နောက်ထပ် အချိန် (next time step) တွေမှာရှိမယ့် ရလဒ်ကို ရှာရမှာပါ။ ပုံသေနည်းက

\displaystyle v_{i} = \frac{s_{i+1}-s_{i}}{\Delta t}

\displaystyle \Delta t = t_{i+1} - t_{i} 

အဲ့ဒီညီမျှခြင်းထဲက i ဆိုတာက လက်ရှိအချိန်ပိုင်း (current time step) ကိုရည်ညွှန်းပါတယ်။ i + 1 ဆိုတာကတော့ next time step ပါ။

n ကို မိမိကြိုက်သလောက်အရေအတွက် ပေးလို့ရပါတယ်။ တစ်ခုတော့ရှိတယ်။ n များများသုံးရင် t ရဲ့ array size ဟာလည်း ပိုကြီးလာပါလိမ့်မယ်။ accuracy ပိုင်းအရကြည့်ရင်တော့ ဒါကကောင်းတဲ့ လက္ခဏာပါ။ အခုက simple problem လေးတစ်ပုဒ်မို့ အဆင်ပြေနိုင်ပေမယ့် ပိုမိုရှုပ်ထွေးတဲ့ ပုစ္ဆာမျိုး ၊ ညီမျှခြင်းမျိုးမှာရင်တော့ တွက်ချက်မှုပြုလုပ်မယ့် computer ရဲ့ memory ကိုလည်း ထည့်စဉ်းစားသင့်ပါတယ်။ ဖော်ပြပါ ညီမျှခြင်းနှစ်ကြောင်းကို MATLAB ထဲမှာ ထည့်ပြီး program ရေးပြီး ဖြေရှင်းပါမယ်။ MATLAB က စာရေးသူသုံးနေကျမို့ပါ။ တခြား မိမိနှစ်သက်ရာ programming language (သို့) excel ကို အသုံးပြုပြီးလည်း တွက်လို့ရပါတယ်။

(စာရေးသူ အစမ်းရေးပြထားတဲ့ MATLAB code ဒေါင်းလုဒ်ဆွဲရန် လင့်ခ်)

MATLAB ဘယ်လိုသုံးရမယ် ဆိုတာတော့ လောလောဆယ် အချိန်မရလို့ မပြောတော့ဘူး။ ပေးထားတဲ့ လင့်ခ်က ဥပမာ code ကို နမူနာကြည့်ပြီး ပြန်စမ်းကြည့်လို့ရပါတယ်။ (မခက်ပါ) .

OK. Result တွေ interpret လုပ်ကြည့်ရအောင်။ အခုက နည်းလမ်းတစ်မျိုးနဲ့ တွက်ထားတာဆိုတော့ ဆရာသောင်းရဲ့ အဖြေနဲ့ ပြန်တိုက်ကြည့်ကြမယ်။ အောက်က ပုံမှာ n = 11 သုံးပြီး တွက်ကြည့်ထားတာပါ။

n = 11 အသုံးပြုပြီး ရတဲ့ အဖြေ (အပေါ်ပုံ Displacement ၊ အောက်ပုံ velocity-time ဆက်သွယ်ချက်ကို ပြပါတယ်)

velocity curve ရဲ့ t = 3 s နဲ့ t = 4 s မှာ ရှိတဲ့ အဖြေတွေကို အမှတ်ကလေးချထားကြည့်တယ်။ အဖြေက

At t = 3 s, v = 1.5 ft/s

At t = 4 s, v = – 0.5 ft/s

ဆရာသောင်းရဲ့ အဖြေမှာ t = 3 s ===> v = 2 ft/s ရနေတယ်။ t = 4 s မှာ v = 0.5 ft/s ရနေတယ်။ စာရေးသူ yp တစ်ယောက်တော့ မှားရှာပြီလို့ အထင်မစောလိုက်ပါနဲ့ဦး 😅။ စာ‌‌ရေးသူနဲ့ မဆိုင်ပါ (ဆိုင်တော့ ဆိုင်တာပေါ့နော်) ။ time step နဲ့ ပိုဆိုင်ပါတယ်။ ပြောချင်တာက n တန်ဖိုးကို တဖြည်းဖြည်းတိုးသွားမယ်ဆိုရင် အဖြေက ဆရာသောင်းတွက်ပြတဲ့ exact solution နဲ့ ကိုက်သွားမှာပါ။ အောက်ပုံပါ n = 11, n = 110 နဲ့ n = 11000 တို့ကို ဥပမာအနေနဲ့ နှိုင်းယှဉ်ပြထားပါတယ်။

ပုံမှာတွေ့ရတာကတော့ n တန်ဖိုးတွေ ကြီးလာတာနဲ့အမျှ slope ရဲ့ တန်ဖိုးတွေဟာလည်း တူညီလာ (တစ်နည်း converge ဖြစ်လာ) ပါတယ်။ နောက်ပြီး

At t = 3 s, v = 1.999 ft/s (ပထမမေးခွန်းအဖြေ)

At t = 4 s, v = 0 ft/s (ဒုတိယမေးခွန်းအဖြေ)

ဆရာသောင်းရဲ့ အဖြေနဲ့လည်း တဖြည်းဖြည်းနီးစပ်လာတာကို တွေ့မြင်ရမှာပါ။ ဒါနဲ့ ဆရာသောင်းအဖြေကို ဘာလို့ exact solution ခေါ်ပါလိမ့်?? … ဘာလို့ဆို သူက derivative   ရဲ့ မူလ definition ဖြစ်တဲ့ n တန်ဖိုး infinity ကို limit ယူထားတဲ့ ပုံသေနည်းနဲ့ တွက်ထားတာကိုး။ ဒီအကြောင်းကိုတော့ First Principles သုံး၍ ရှိတ်ခြင်း ဆိုတဲ့ဆောင်းပါးမှာ ရှင်းပြခဲ့ပြီးဖြစ်ပါတယ်။

အခုတွက်ပြထားတဲ့ နည်းလမ်းလေးကို explicit method လို့ခေါ်ရမယ်။ သဘောတရားက system တစ်ခုရဲ့ နောက်ထပ်ဖြစ်ပေါ်လာမယ့် အခြေအနေကို လက်ရှိအခြေအနေကနေတွက်ချက်ထားလို့ပဲ ဖြစ်ပါတယ်။ ဆောင်းပါးလည်း အတော်ရှည်သွားပါပြီ။ နားမလည်တာရှိရင်ပြန်မေးပါ။ MATLAB code စမ်းကြည့်တာ အမှားတစ်စုံတစ်ရာတွေ့ရင်လည်း ပြန်ပြောပေးပါ။ ခုတော့ ဒီလောက်နဲ့ပဲ တော်သေးပြီ။

Edit: မှတ်ချက်။   ။ တင်ပေးထားတဲ့ MATLAB code ကို လိုအပ်ချက်အရ အနည်းငယ်ပြန်ပြင်ထားပါတယ်။ သူ့ကို plot ရင် အောက်ပါအတိုင်း အဖြေထွက်ပါတယ်။ ဒါကို ဆရာသောင်းဆွဲပြထားတဲ့ plot နဲ့ နှိုင်းယှဉ်ရမှာပါ။ Values လေးတွေမှာ error ရှိနေသေးတာကိုတွေ့ရမှာပါ။ ဒါဟာ time step ကြောင့် (Δt လုံလောက်စွာ သေးငယ်မှုမရှိသေးတာကြောင့်) လို့ သဘောပေါက်ထားရပါမယ်။ ဒါကြောင့်လည်း ဒါကို numerical method လို့ခေါ်ရခြင်းပါ။ အရှေ့မှာလည်း ပြောထားခဲ့ပါတယ်။ သူသည် numerical ဖြစ်တာကြောင့် approximate solution ကိုသာ ရစေမှာဖြစ်တယ်။ ဒါနဲ့ ကြုံလို့ တစ်ခုထပ်ဖြည့်ပြောချင်ပါတယ်။ တချို့က ဒါကို forward Euler method နဲ့ သွားနှိုင်းယှဉ်ကြည့်ပုံပေါ်တယ်။ မဟုတ်ဘူးနော်။ ဒီဟာက numerical ကို ပါးပါးလေးမိတ်ဆက်ပေးချင်တာကြောင့် numerical differentiation နည်းကိုသုံးပြီး ဖြေရှင်းကြည့်တာပါ။ တကယ်တော့ ဒီပုစ္ဆာက solution ရှိပြီးသားမို့လို့ (solution ဆိုတာ s(t) function လေးကိုပြောတာပါ) numerical method သုံးဖို့မလိုပါ။ numerical မှာ လူသိများတဲ့ explicit / implicit method တွေအကြောင်းကိုတော့ နောက်အလျဉ်းသင့်တဲ့အခါမျိုးမှာ ရေးပေးပါမယ်။ လိုအပ်ချက်တွေတွေ့ရင်လည်း ဝေဖန်ထောက်ပြပေးကြပါဦးလို့ 😀


ပုံ ။ ဆရာသောင်းရဲ့ အဖြေနဲ့ နှိုင်းယှဉ်ကြည့်ရန်

#yp