calculus integrate excel

เรียน Calculus ด้วย Excel ตอนที่ 2 : Integrate กับพื้นที่ใต้กราฟพิศวง

ในตอนที่แล้วเราได้เรียนเรื่องพื้นฐาน Calculus และเรื่องการหา Derivative กันไปแล้ว ในตอนนี้เราจะมาเรียนอีกเรื่องนึงที่สำคัญมากๆ นั่นก็คือการ Integrate นั่นเองครับ

ซึ่งเจ้า Integration หรือ การอินทิเกรต คือ กระบวนการที่ตรงข้ามกับการหาอนุพันธ์ หรือ Derivative นั่นเอง

Integrate นั้นตรงข้ามกับ Differentiate

รูปแบบทั่วไปคือ ถ้าสมมติ diff ฟังก์กัน F(x) แล้วได้ฟังก์ชัน f(x)

\frac{d}{dx} F(x)= f(x)

หาเรา integrate f(x) จะได้ F(x) + c

\int f(x) dx = F(x) + c

โดยที่

  • เครื่องหมาย ∫ คือเครื่องหมาย Integral
  • dx คือ ตัวที่บอกว่ามันย้อนการ diff ที่เทียบกับ dx มา
  • c คือค่าคงที่ (Constant) ซึ่งเดี๋ยวอ่านต่อข้างล่างจะรู้ว่าทำไมต้องใส่ +c ด้วย

เช่น ตอนเรียนเรื่อง Derivative เราเรียนรู้ไปว่า

\frac{d}{dx} x^n= nx^{n-1}

ดังนั้น ตอน Integrate จะกลับกันเป็นแบบนี้

\int nx^{n-1} dx = x^n + c

เช่น หากถามว่า integrate 3x^2 จะได้เท่าใหร่ ต้องบอกว่า ได้ x^3 +c เพราะสามารถเป็นไปได้หลายแบบเช่น

  • x^3 เฉยๆ
  • x^3 +5 ก็ได้
  • x^3 – 2 ก็ได้
  • จะเห็นว่า c จะเป็นค่าคงที่อะไรก็ได้นั่นเอง

ดังนั้นนี่คือสาเหตุที่เราต้องใส่ +c ไว้ในรูปสมการทั่วไปด้วย ซึ่งหลายๆ คนจะลืม +c ตลอด ถึงขนาดมีการทำ meme มาล้อประจำ

อย่าลืม +c ด้วยนะ แงๆๆๆ
meme อันนี้อย่างเท่เลย

ความหมายที่แท้จริงของการ Integrate

หากการหาอนุพันธ์ได้อัตราการเปลี่ยนแปลง ของกราฟ เช่น

หากเรา Diff เทียบต่อเวลา เราจะแปลงระยะทาง เป็นความเร็ว เป็นความเร่ง ได้

ระยะทาง --> ความเร็ว --> ความเร่ง

ดังนั้นถ้าเรา Integrate เทียบกับเวลา เราก็สามารถย้อนกลับได้เช่นกัน

ความเร่ง --> ความเร็ว --> ระยะทาง

สมมติว่าเรารู้ฟังก์ชันของความเร็วของ รถวิเศษที่เรานั่ง ณ เวลาต่างๆ เป็นดังนี้

หาถามว่าเมื่อเวลาผ่านไป 10 วินาที รถวิเศษวิ่งไปได้ระยะทางไกลกี่เมตร? เราจะหาคำตอบยังไง??

แน่นอนว่าถ้าเราวิ่งด้วยความเร็วคงที่ตลอดที่ 5 m/s ถ้าวิ่งแบบนี้ไป 10 วินาที ก็คือ 5 m/s *10 s = 50 m จริงมั้ยครับ ซึ่งเอาจริงๆ มันก็คือการหาพื้นที่ใต้กราฟนั่นเอง

ถ้าเราถามว่า ระหว่างวินาทีที่ 2 ถึง 8 วิ่งได้ระยะทางเท่าไหร่ เราก็หาพื้นที่ใต้กราฟเฉพาะวินาทีที่ 2-8

เรื่องของเรื่องคือ เจ้าพื้นที่ใต้กราฟเนี่ย หาเจ้าเส้นฟังก์ชันของความเร็วมันดันไม่ใช่เส้นตรงทื่อๆ มันจะคำนวณยากแล้ว เช่นแบบนี้

สมมติฟังก์ชันของความเร็วเป็น v= 3t^2+5 เราจะหาพื้นที่ใต้กราฟของเส้นโค้งนี่ได้ยังไง???

แนวคิดก็คือ เราจะแบ่งพื้นที่ใต้กราฟเป็นสี่เหลี่ยมผืนผ้าเล็กๆ แล้วเอามารวมกัน เช่น

หลักการ คือ ถ้าเราแบ่งสี่เหลี่ยมให้แคบๆ มากๆๆๆๆ (เรียกว่า dt ละกัน) การหาพื้นที่ย่อยๆ (ds) จะได้ว่า

พื้นที่ย่อยสี่เหลี่ยมผืนผ้า ds = สูง*กว้าง = v(t)*dt

ส่วน พื้นที่รวม เราจะใช้การ integreate มาช่วย เพราะเป็นการรวมแบบที่ dt เล็กมากๆๆ เข้าใกล้ 0 นั่นเอง

Total Area = \int v(t)dt

อย่าลืมว่า integrate ความเร็ว จะได้ ระยะทาง ซึ่งเราคิดไว้แล้วว่าพื้นที่ใต้กราฟของความเร็วคือระยะทาง นั่นแปลว่า integrate ก็คือพื้นที่ใต้กราฟนั่นเอง! (แต่พื้นที่ใต้กราฟสามารถมีส่วนเหนือแกน x เป็น +, ใต้แกน x เป็น – ได้ด้วยนะ ซึ่ง integrate แล้วจะ net หักกัน)

สรุปแนวคิด

หากเราจะเปรียบเทียบความหมายของการหาอนุพันธ์ vs การอินทิเกรต จะเป็นแบบนี้ครับ

  • การหาอนุพันธ์ นั้น เราจะได้อัตราการเปลี่ยนแปลง หรือ ความชันของกราฟ ของจุดที่สนใจ
  • การอินทิเกรต นั้น เราจะได้พื้นที่ใต้กราฟ (แบบ net กัน ระหว่างพื้นที่บน กับ ล่าง)

การคำนวณหาระยะทางด้วยความรู้ Integrate

สมมติ v(t)= 3t^2+5

แบบนี้ระยะทาง s ก็คือ

s(t) = \int v(t)dt = \int (3t^2+5 )dt

จะได้ว่า ระยะทาง s ณ วินาที่ที่ t คือแบบนี้

s(t) = t^3+5t+c

ถ้าจะหาระยะทางตั้งแต่วินาทีที่ 2-8 ให้ใส่ t เป็น 8 จะได้ระยะทาง ณ วินาทีที่ 8, และใส่ t เป็น 2 ได้ระยะทางวินาทีที่ 2

จากนั้นเอามาลบกัน

  • ระยะทาง วินาทีที่ 8 =8^3 + 5*8 + c
  • ระยะทาง วินาทีที่ 2 =2^3 + 5*2 + c
  • ระยะทาง วินาทีที่ 2 ถึง 8 =(8^3 + 5*8 + c) – (2^3 + 5*2 + c)
  • ซึ่ง +c จะตัดกันเสมอ
  • = 534 นั่นเอง

แปลว่า ระยะทาง หลังวิ่งไป 10 วินาที ก็จะได้เป็น ระยะทาง วินาทีที่ 10 – ระยะทาง วินาทีที่ 0

  • ระยะทาง วินาทีที่ 10 =10^3 + 5*10 + c
  • ระยะทาง วินาทีที่ 0 =0^3 + 5*0 + c
  • ระยะทาง วินาทีที่ 0 ถึง 10 =(10^3 + 5*10 + c) – (0^3 + 5*0 + c) ซึ่ง +c จะตัดกันเสมอเช่นกัน
  • แปลว่าเราใช้ระยะทางวินาทีที่ 10 ได้เลย แบบไม่ต้องมี + c เนอะ
  • = 10^3 + 5*10 = 1050 m นั่นเอง

การคำนวณหาระยะทางด้วยความรู้ Excel

ถ้าใช้ Excel เราแค่แบ่งระยะเวลาให้ย่อยมากๆ จนได้ dt เล็กๆๆๆๆ แล้วเอาไปคูณความเร็วของแต่ละ dt นั้นๆ ก็จะได้พื้นที่สี่เหลี่ยมผืนผ้าเล็กๆ จากนั้นเอาสี่เหลี่ยมผืนผ้าเล็กๆ มารวมกันก็จะได้พื้นที่ใต้กราฟ เช่น

ซึ่งจะได้ 1050.0155 ซึ่งใกล้เคียงกับ 1050 แต่ไม่เป๊ะหรอกนะ เพราะ dt เราไม่ได้เล็กพอ (แค่นี้ก็อัดไปแสนบรรทัดแล้ว)

และนี่ก็คือ Concept ของการ Integrate ครับ หวังว่าเพื่อนๆ จะพอเห็นภาพนะ

ความรู้แถม : ถ้าไม่อยากเสียพื้นที่ Excel ในการทำตาราง

ถ้าเราไม่อยากมานั่งทดบรรทัดเยอะๆ แบบตารางข้างบนนี้ (เป็นแสนเป็นล้านบรรทัด แถมช้าอีก) ก็ใช้ความรู้ Array Formula หรือ Power Query มาช่วยก็ได้ (อันนี้ค่อนข้าง Advance นะ ใครไม่รู้เรื่องไม่เป็นไรครับ) เช่น

ใช้ความรู้ Array Formula ของ Excel 365

อยากหาระยะทาง ณ เวลา 2 วินาที

ใช้ SEQUENCE สร้างเลข Running ระยะเวลา เช่น

=SEQUENCE(rows,columns,start,step)
=SEQUENCE(A2/E1+1,1,0,E1)

ต่อไปก็คำนวณ v ออกมาจาก v(t)= 3t^2+5 ได้

=3*SEQUENCE(A2/E1+1,1,0,E1)^2+5

ต่อไปเอาไปคูณกับ dt 0.0001 แล้วหาผลรวม

=SUM((3 * SEQUENCE(A2/E1+1,1,0,E1)^2+5) * E1)

lock $ เล็กน้อย ให้ copy สูตรได้

=SUM((3 * SEQUENCE(A2/$E$1+1,1,0,$E$1)^2+5) * $E$1)

ใช้ Array Formula ของ Excel verison เก่า

Excel เก่าไม่มี SEQUENCE สามารถใช้ ROW+INDIRECT มาพลิกแพลงเอา เช่น

=(ROW(INDIRECT("1:"&A2/E1+1))-1)*E1

version เก่าจะไม่มี effect spill แบบนี้ แต่ไม่เป็นไร เดี๋ยวจะทำ step ต่อไปได้อยู่ดี

Tips : การใช้ฟังก์ชัน INDIRECT นั้นเป็น Volatile ฟังก์ชัน ถ้าเลี่ยงได้ก็ควรจะเลี่ยง ดังนั้นเราสามารถใช้ฟังก์ชัน INDEX มาช่วยสร้าง Dynamic Range แทนได้ แล้วค่อยใช้ ROW ครอบ เช่น

=(ROW(A1:INDEX(A:A,A2/E1+1))-1)*E1

จากนั้น lock $ ซะหน่อยเป็นแบบนี้

=(ROW($A$1:INDEX($A:$A,A2/$E$1+1))-1)*$E$1

สุดท้ายก็เหมือนกัน แต่ใช้ SUMPRODUCT มารวมเลยดีกว่า จะไม่ได้ต้องกด Ctrl+Shift+Enter

=SUMPRODUCT((3 * ((ROW($A$1:INDEX($A:$A,A2/$E$1+1))-1)*$E$1)^2+5) * $E$1)

ใช้ความรู้ Power Query มาสร้างฟังก์ชัน

สร้าง Parameter secPara ว่าจะเอา ณ เวลาวินาทีที่เท่าไหร่

จากนั้นสร้าง Query MyArea มาคำนวณพื้นที่รวม โดยอ้างอิงถึง Parameter secPara ที่สร้างไว้

let
    dt=0.0001,
    NumItem = secPara/dt+1,
    Source = List.Numbers(0, NumItem,  dt), //สร้าง Sequence ด้วย List.Number
    ConvertTable = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    RenameColumns = Table.RenameColumns(ConvertTable,{{"Column1", "MyTime"}}),
    AddVel = Table.AddColumn(RenameColumns, "MyVel", each 3*Number.Power([MyTime],2)+5),
    AddArea = Table.AddColumn(AddVel, "SmallArea", each [MyVel]*dt),
    SumArea = List.Sum(AddArea[SmallArea])
in
    SumArea

แล้วเอา Query นี้แปลงเป็นฟังก์ชันโดยคลิ๊กขวา Create Function แล้วใช้ชื่อ MyAreaFx ซึ่งรับ input คือ secPara ว่าจะคำนวณระยะทาง ณ วินาทีที่เท่าไหร่

จากนั้นเราก็เอา Table ที่ต้องการหาระยะทาง ณ เวลาต่างๆ เข้าไป แล้วเรียกใช้ฟังก์ชัน MyAreaFx ที่สร้างไว้ ก็จบเลย

ตอนต่อไป

เดี๋ยวตอนหน้าจะเป็นการประยุกต์มากขึ้นอีกหน่อยนะ เช่น คำนวณหาจุดสูงสุดต่ำสุดด้วยการใช้ Diff หรือคำนวณหาปริมาตร ด้วยการ Integrate เป็นต้น

สารบัญ Calculus


Comments

One response to “เรียน Calculus ด้วย Excel ตอนที่ 2 : Integrate กับพื้นที่ใต้กราฟพิศวง”

Leave a Reply

Your email address will not be published. Required fields are marked *