Python တွင် linear interpolation ပြုလုပ်နည်း (ဥပမာဖြင့်)


Linear interpolation သည် သိထားသောတန်ဖိုးနှစ်ခုကြားရှိ function တစ်ခု၏ မသိသောတန်ဖိုးကို ခန့်မှန်းသည့်လုပ်ငန်းစဉ်ဖြစ်သည်။

သိထားသောတန်ဖိုးနှစ်ခု (x 1 , y 1 ) နှင့် (x 2 , y 2 ) တို့အား အောက်ပါဖော်မြူလာကို အသုံးပြု၍ အမှတ်တစ်ခုအတွက် y တန်ဖိုးကို ခန့်မှန်းနိုင်သည်-

y = y 1 + (xx 1 )(y 2 -y 1 )/(x 2 -x 1 )

Python တွင် linear interpolation လုပ်ဆောင်ရန် အောက်ပါအခြေခံ syntax ကို အသုံးပြုနိုင်ပါသည်။

 import scipy. interpolate

y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

အောက်ဖော်ပြပါ ဥပမာသည် ဤ syntax ကို လက်တွေ့တွင် မည်သို့အသုံးပြုရမည်ကို ပြသထားသည်။

ဥပမာ- Python တွင် linear interpolation

Python တွင် အောက်ပါတန်ဖိုးများစာရင်းနှစ်ခုရှိသည်ဆိုပါစို့။

 x = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y = [4, 7, 11, 16, 22, 29, 38, 49, 63, 80]

အမြန် x နှင့် y ကွက်ကွက်ကို ဖန်တီးနိုင်သည်-

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

ယခု ကျွန်ုပ်တို့သည် x တန်ဖိုးအသစ် 13 နှင့် ဆက်စပ်နေသည့် y တန်ဖိုးကို ရှာလိုသည်ဆိုပါစို့။

၎င်းကိုလုပ်ဆောင်ရန် အောက်ပါကုဒ်ကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်-

 import scipy. interpolate
y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

33.5

ခန့်မှန်းခြေ y တန်ဖိုးသည် 33.5 ဖြစ်သွားသည်။

ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ကြံစည်မှုတွင် အမှတ် (၁၃၊ ၃၃.၅) ကို ထည့်ပါက၊ ၎င်းသည် လုပ်ဆောင်ချက်နှင့် အလွန်ကိုက်ညီပုံရသည်။

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

#add estimated y-value to plot
plt. plot (13, 33.5, ' ro ')

x တန်ဖိုးအသစ်များအတွက် linear interpolation လုပ်ဆောင်ရန် ဤအတိအကျဖော်မြူလာကို အသုံးပြုနိုင်ပါသည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python ရှိ အခြားသော ဘုံအမှားများကို မည်သို့ပြင်ဆင်ရမည်ကို ရှင်းပြသည်-

Pandas တွင် KeyError ကိုဘယ်လိုပြင်မလဲ။
ပြင်ဆင်နည်း- ValueError- float NaN ကို int အဖြစ်သို့ ပြောင်းလဲ၍မရပါ။
ပြုပြင်နည်း- တန်ဖိုးအမှား- Operands များကို ပုံသဏ္ဍာန်များဖြင့် ထုတ်လွှင့်၍မရပါ။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်