4  การประยุกต์อินทิกรัลในทางเศรษฐศาสตร์

Modified

4 พฤษภาคม 2568

ในบทนี้ผู้อ่านจะได้เรียนรู้การประยุกต์ใช้การคำนวณเชิงสัญลักษณ์ เพื่อแก้ปัญหาที่เกี่ยวข้องกับการอินทิกรัลในทางเศรษฐศาสตร์ ก่อนผู้อ่านศึกษาเนื้อหาบทนี้ ผู้เขียนมีสมมุติฐานว่าผู้อ่านมีความรู้และความเข้าใจเกี่ยวกับการอินทิกรัลมาบ้างแล้ว

การคำนวณพื้นที่ใต้กราฟด้วยผลรวมของพื้นที่สี่เหลี่ยม

การคำนวณพื้นที่ใต้กราฟด้วยผลรวมของพื้นที่สี่เหลี่ยม

4.1 นิยามของอินทิกรัล (Definition of Integral)

  1. แนวคิดทั่วไป

อินทิกรัลคือ ผลรวมของปริมาณเล็ก ๆ (“ผลรวมจำกัด” หรือ limit of sums)
เมื่อเราแบ่งช่วงออกเป็นชิ้นเล็ก ๆ มาก ๆ แล้วเอาพื้นที่ของแต่ละชิ้นมาบวกกัน

  1. นิยามอย่างเป็นทางการ (Riemann Integral)

ให้ \(f(x)\) เป็นฟังก์ชันที่กำหนดบนช่วงปิด \([a,b]\)

  • แบ่งช่วง \([a,b]\) ออกเป็น \(n\) ส่วนย่อย โดยให้ \(a = x_0 < x_1 < \dots < x_n = b\)

  • แต่ละช่วงย่อยมีความกว้าง \(\Delta x_i = x_i - x_{i-1}\)

เลือกจุดหนึ่งในแต่ละช่วง เรียกว่า sample point \(c_i \in [x_{i-1}, x_i]\)

สร้าง ผลรวมรีมันน์ (Riemann Sum):

\[ S_n = \sum_{i=1}^n f(c_i)\, \Delta x_i \]

แล้วทำลิมิต เมื่อจำนวนช่วงเพิ่มขึ้น (\(n \to \infty\)) และความกว้างของช่วงเล็กลง (\(\max \Delta x_i \to 0\))

ถ้าลิมิตนี้มีอยู่และเป็นจำนวนจริงเดียวกันไม่ว่าเลือก \(c_i\) อย่างไร
เรานิยามว่า \[ \int_a^b f(x)\, dx = \lim_{||P|| \to 0} \sum_{i=1}^n f(c_i)\, \Delta x_i \] โดย \(||P||\) คือความยาวของช่วงย่อยที่ยาวที่สุด

  • ถ้า \(f(x)\) ต่อเนื่องบน \([a,b]\)\(\rightarrow\) อินทิเกรตได้แน่นอน

  • ถ้า \(f(x)\) มีจุดโดดน้อย ๆ (finite discontinuities) \(\rightarrow\) ยังอินทิเกรตได้ (เรียกว่า Riemann integrable)

4.2 ทฤษฎีบทมูลฐานของแคลคูลัส (Fundamental Theorem of Calculus)

คือทฤษฏีแสดงความเกี่ยวข้องกันระหว่างอนุพันธ์และอินทิกรัล โดยมี 2 ส่วนที่สำคัญคือ

ส่วนที่ 1 (First Fundamental Theorem)

ถ้า \(f\) เป็นฟังก์ชันต่อเนื่องบนช่วง \([a, b]\) และนิยาม \[ F(x) = \int_a^x f(t)\, dt \]

สำหรับ \(x\) ใน \([a,b]\) แล้ว
ฟังก์ชัน \(F(x)\) จะมีอนุพันธ์ และ

\[ F'(x) = f(x) \] สรุป: การอินทิเกรตแล้วทำอนุพันธ์ได้ฟังก์ชันเดิม

ส่วนที่ 2 (Second Fundamental Theorem)

ถ้า \(f\) เป็นฟังก์ชันต่อเนื่องบนช่วง \([a,b]\) และ \(F\) เป็นฟังก์ชันปริมิทีฟ (antiderivative) ของ \(f\) (คือ \(F'(x) = f(x)\))

จะได้ว่า

\[ \int_a^b f(x)\, dx = F(b) - F(a) \]

สรุป: การอินทิเกรตจำกัดเขต คือ ค่า \(F(b)\) ลบด้วย \(F(a)\)

4.3 การหาอินทิกรัลด้วย caracas ใน R

  1. ติดตั้งและโหลดแพ็กเกจ
library(caracas)
  1. กำหนดตัวแปรสัญลักษณ์ (symbolic variables)
x <- symbol("x")
y <- symbol("y")
t <- symbol("t")

(เราต้องสร้างตัวแปรก่อน เช่น \(x\), \(y\)ือ \(s\))

  1. สร้างฟังก์ชันที่ต้องการอินทิเกรต

ตัวอย่าง

f <- sin(x)  # f(x) = sin(x)
g <- exp(-x)
h <- t^3 + t^2 + 4
  1. ใช้คำสั่ง int() จาก caracas สำหรับการอินทิกรัลไม่จำกัดเขต
int(f, x)

\[- \cos{\left(x \right)}\]

  • f คือฟังก์ชันที่ต้องการอินทิเกรต

  • x คือ ตัวแปรตามที่อินทิเกรต

int(g, x)

\[- e^{- x}\]

int(h, t)

\[\frac{t^{4}}{4} + \frac{t^{3}}{3} + 4 t\]

สำคัญ

การอินทิกรัลไม่จำกัดเขต โดยปกติจะบวกค่าคงที่เข้าไปด้วย แต่การอินทิกรัลโดย caracas จะไม่มีการใส่ค่าคงที่

สำหรับการอินทิกรัลจำกัดเขตด้วย caracas ก็ยังใช้คำสั่ง int() เช่นแต่ต้องคำสั่งถายในไปอีก 2 ตัว คือ - lower ค่าที่ใส่ได้ คือ ตัวเลข ตัวแปรจาก caracas และค่าลบอนันต์ (\(-\infty\) ในอาร์ใช้ -Inf

  • upper ค่าที่ใส่ได้ คือ ตัวเลข ตัวแปรจาก caracas และค่าอนันต์ (\(\infty\) ในอาร์ใช้ Inf

ตัวอย่างเช่น

แนะนำให้ให้วาดกราฟก่อนทำการหาค่า อินกรัลจำกัดเขต

\[\int_{\text{lower}}^{\text{upper}}e^{-s}ds\]

# เปลี่ยนตัวแปร caracas เป็นฟังก์ชันด้วยคำสั่ง as_func()
gs <- as_func(g)
# วาดกราฟด้วยฟังก์ชัน  curve เลือกช่วงที่ต้องการ
curve(gs, from = 0, to = 10, col = "red", ylab = "g(s)", xlab = "s")
# สร้างจุดสำหรับวาดพื้นใต้กราฟ
s <- seq(0, 10, length.out = 500)
y <- gs(s)
# แรเงาพื้นที่ใต้เส้น
polygon(c(s, rev(s)), c(rep(0, length(s)), rev(y)),
        col = "lightblue", border = NA)
grid()

\[\int_{0}^{\infty}e^{-x}dx=1\]

int(g, x, lower = 0, upper = Inf)

\[1\]

\[\int_{0}^{t/2}e^{-x}dx=1-e^{- t/2}\]

int(g, x, lower = 0, upper = t/2)

\[1 - e^{- \frac{t}{2}}\]

\[\int_{t/2}^{\infty}e^{x}dx=e^{-t/2}\]

int(g, x, lower = t/2, upper = Inf)

\[e^{- \frac{t}{2}}\]

4.4 ตัวอย่างการประยุกต์ใช้อินทิกรัลในทางเศรษฐศาสตร์

1. การหาผลรวมของรายได้หรือกำไร (Total Revenue, Total Profit)
  • ถ้าเราทราบ รายได้ต่อหน่วย หรือ กำไรต่อหน่วย เช่นเป็นฟังก์ชันตามจำนวนหน่วย \(q\)

  • การหา รายได้รวม หรือ กำไรรวม ก็คือการอินทิเกรตฟังก์ชันนั้น

ตัวอย่าง
ถ้า marginal revenue (รายได้ส่วนเพิ่ม) คือ \(MR(q) = 100 - 2q\)
รายได้รวม \(TR(q)\) คือ \[ TR(q) = \int MR(q)\, dq = \int (100 - 2q)\, dq = 100q - q^2 + C \] (\(C\) คือค่าคงที่ แต่ถ้ากำหนด \(TR(0) = 0\) ก็จะได้ \(C = 0\))

การคำนวณเชิงสัญลักษณ์ด้วย caracas

# สร้างตัวแปร q 
q <- symbol("q")
# สร้างฟังก์ชัน MR(q)
MR <- 100 - 2*q
MR

\[100 - 2 q\]

ทำการอินทิกรัลด้วย inv()

TR <- int(MR,q)
TR

\[- q^{2} + 100 q\]

อย่าลืม การอินทิกรัลใน caracas จะไม่มีการบวกค่าคงที่

2. การหาพื้นที่ใต้เส้นอุปสงค์และอุปทาน (Consumer Surplus, Producer Surplus)

ส่วนเกินผู้บริโภค (Consumer Surplus) และ ส่วนเกินผู้ผลิต (Producer Surplus)
คำนวณจากพื้นที่ใต้กราฟอุปสงค์และอุปทาน

ตัวอย่าง
ถ้าเส้นอุปสงค์คือ \(P = 120 - 2Q\) และราคาตลาดอยู่ที่ \(P=60\)
ส่วนเกินผู้บริโภค (CS) คือพื้นที่ใต้เส้นอุปสงค์จาก \(Q=0\) ถึงปริมาณที่สมดุล \(Q^*\):

\[ CS = \int_0^{Q^*} (120 - 2Q) dQ - (60 \times Q^*) \]

แก้สมการหาค่า \(Q*\) ด้วย caracas แม้ว่าจะเป็นสมการง่ายๆ ก็ตาม

# สร้างตัวแปร Q
Q <- symbol("Q")
# ที่ P = 60 จะได้
f <- 60-120+2*Q
solve_sys(f,Q)
Q = 30

ดังนั้น ที่ \(P=60\) จะได้ \(Q*=30\) ดังนั้น การอินทิกรัลด้วย caracas จะได้

วาดกราฟเพื่อดูการอินทิกรัล

Pq <- as_func(120-2*Q)
#วาดกราฟ P =120-2Q
curve(Pq, from = 0, to =60, ylab ="P", xlab ="Q", col = "blue")
#เพิ่มกราฟ P = 60
curve(60+0*x,from = 0, to = 60, col = "red", add =TRUE)
# สร้างจุดสำหรับวาดพื้นใต้กราฟ
s <- seq(0, 30, length.out = 500)
y <- Pq(s)
# แรเงาพื้นที่ใต้เส้น
polygon(c(s, rev(s)), c(rep(60, length(s)), rev(y)),
        col = "lightblue", border = NA)
legend("bottomleft",c("P=120-2Q","P=60"), col= c("blue","red"), lty =1)

grid()

ทำการหาพื้นที่ใต้กราฟ

# สร้างตัวแปร q
q <- symbol("q")
f <- (120-2*q)-60
int(f,q,0,30)

\[900\]

จะได้ค่า consumer surplus เท่ากับ 900

3. การคำนวณมูลค่าปัจจุบันสุทธิ (Net Present Value, NPV)
  • การวิเคราะห์การลงทุน เมื่อ กระแสเงินสด เปลี่ยนแปลงอย่างต่อเนื่องตามเวลา \(t\)
  • ใช้ การอินทิเกรต เพื่อหามูลค่าปัจจุบันรวม

ตัวอย่าง
ถ้ากระแสเงินสด \(C(t) = 100e^{0.05t}\) ต่อปี, อัตราดอกเบี้ย \(r = 0.08\) ต่อปี
มูลค่าปัจจุบันสุทธิจากปี \(0\) ถึง \(10\) ปี คือ

\[ NPV = \int_0^{10} \frac{C(t)}{(1+r)^t}\, dt \]

การคำนวณเชิงสัญลักษณ์ด้วย caracas

# สร้างตัวแปร t, C และ r
t <- symbol("t")
r <- symbol("r")
C <- 100*exp(0.05*t)
PV <- C/(1+r)^t
PV

\[100 \left(r + 1\right)^{- t} e^{0.05 t}\]

แทนค่า \(r=0.08\) ลงไปฟังก์ชัน PV

PV <- subs(PV, r,  0.08)

\[100 {1.08}^{- t} e^{0.05 t}\]

วาดกราฟ

PVx <- as_func(PV)
#วาดกราฟ P =120-2Q
curve(PVx, from = 0, to =100, ylab ="PV", xlab ="t", col = "blue")
s <- seq(0, 10, length.out = 500)
y <- PVx(s)
# แรเงาพื้นที่ใต้เส้น
polygon(c(s, rev(s)), c(rep(0, length(s)), rev(y)),
        col = "lightblue", border = NA)
grid()

หมายเหตุ เลือกวาดกราฟ ให้ \(t\) มีขนาดยาวเพื่อให้เห็นเส้นโค้งชัดเจน

แสดงสมการอินทิกรัล

int(PV,t, lower = 0, upper = 10, doit = FALSE)

\[\int\limits_{0}^{10} 100 {1.08}^{- t} e^{0.05 t}\, dt\]

หาค่า NPV

int(PV,t, lower = 0, upper = 10)

\[876.535303483947\]

4. การกระจายความเสี่ยง (Risk Distribution)
  • ในเศรษฐศาสตร์การเงิน การหาความน่าจะเป็นสะสม (CDF) จากฟังก์ชันความหนาแน่นของความน่าจะเป็น (PDF)
    ต้องใช้ การอินทิเกรต ฟังก์ชัน PDF

ตัวอย่าง
ถ้าอัตราผลตอบแทนสุทธิ \(r\) มีการกระจายแบบปกติ \(f(r)\)
แล้วต้องการหาความน่าจะเป็นที่ผลตอบแทนมากกว่าค่าเฉลี่ย ก็อินทิเกรต \(f(r)\) จากค่าเฉลี่ยขึ้นไป

\[ P(r > \mu) = \int_{\mu}^{\infty} f(r)\, dr \]

ฟังก์ชันการแจกแจงแบบปกติคือ \[ f(x)=\frac{1}{\sigma \sqrt{2 \pi}} \exp \left(-\frac{(x-\mu)^2}{2 \sigma^2}\right), \mu\in R,\sigma^2 >0 \]

อินทิกรัลเชิงสัญลักษณ์ด้วยไม่ ใส่ตัวเลขใดๆ จะได้

mu <- symbol("mu")
sigma <- symbol("sigma")
pi <-symbol("pi")
x <- symbol("x")
f <- (1/(sigma*sqrt(2*pi))) * exp(-((x - mu)^2) / (2*sigma^2))
f

\[\frac{\sqrt{2} e^{- \frac{\left(- \mu + x\right)^{2}}{2 \sigma^{2}}}}{2 \sqrt{\pi} \sigma}\]

int(f,x, lower = mu, upper = Inf)

\[\frac{\sqrt{2} e^{- \frac{\mu^{2}}{2 \sigma^{2}}} \int\limits_{\mu}^{\infty} e^{- \frac{x^{2}}{2 \sigma^{2}}} e^{\frac{\mu x}{\sigma^{2}}}\, dx}{2 \sqrt{\pi} \sigma}\]

เมื่อทดลองแทนค่า \(\mu =0.1\) \(\sigma =0.05\) และ \(\pi\) = pi

f <- subs(f, list(mu = 0.01, sigma =0.05))
f

\[\frac{10.0 \sqrt{2} e^{- 200.0 \left(x - 0.01\right)^{2}}}{\sqrt{\pi}}\]

เนื่องจากภาษาอาร์ pi คือตัวแปรของค่าคงของค่าพาย แต่เนื่องจากมีกำหนดให้ pi คือแปรใหม่ที่สร้างจาก caracas ดังนั้นต้องดึงค่าคงพายจากชุดคำสั่ง base มาใช้ด้วยคำสั่ง base::pi <ชุดคำสั่ง::ฟังก์ชัน/ค่าคงที่ที่ต้องการใช้>

ทำการอินทิกรัลจะได้

int(f,x, lower = 0.01, upper = Inf)

\[\frac{0.353553390593274 \sqrt{2} \sqrt{\pi}}{\sqrt{\pi}}\]

ถ์้าต้องการเป็นตัวเลขจะได้

N(subs(int(f,x, lower = 0.01, upper = Inf), pi, base::pi))

\[0.5\]

ซึ่งเป็นค่าที่ถูกต้องตามทฤษฏี