ข้ามไปยังเนื้อหา
คู่มือ Varlig
หน้าแรกของ Varlig

ผลรวม สมการ และแคลคูลัส

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

ฟังก์ชันเหล่านี้รับชื่อตัวแปรเป็นอาร์กิวเมนต์หนึ่ง เช่น k ใน sum(k^2, k, 1, 10) ตัวแปรนี้มีขอบเขตเฉพาะภายในการเรียกฟังก์ชัน จึงไม่เปลี่ยนค่าของตัวแปรชื่อเดียวกันที่อื่นในโน้ต

ผลรวมและผลคูณที่มีจำนวนพจน์จำกัด

calc
sum(k, k, 1, 100) ได้ผลลัพธ์เป็น 5,050
sum(k^2, k, 1, 10) ได้ผลลัพธ์เป็น 385
summation(2*k - 1, k, 1, 10) ได้ผลลัพธ์เป็น 100
product(k, k, 1, 5) ได้ผลลัพธ์เป็น 120

อาร์กิวเมนต์เรียงตามลำดับคือ นิพจน์ ตัวแปร ค่าเริ่มต้น และค่าสุดท้าย โดยรวมค่าทั้งสองปลายด้วย ดังนั้น sum(k, k, 1, 100) จึงบวก 1 + 2 + … + 100 ใช้ summation แทน sum ได้ บรรทัดที่สามแสดงว่าจำนวนคี่สิบจำนวนแรกบวกกันได้ 10² ส่วนบรรทัดสุดท้ายคือ 5 แฟกทอเรียล

หาผลรวมของค่าเงินและค่าที่มีหน่วยได้ จึงเหมาะกับการคำนวณเงินออมเป็นงวด:

calc
# £1,200 paid in at the start of each year for 5 years, at 5%
sum(£1200 * 1.05^k, k, 1, 5) ได้ผลลัพธ์เป็น £6,962.30

การหาผลคูณมีประโยชน์เมื่อต้องคูณความน่าจะเป็นต่อกัน โอกาสที่คนอย่างน้อยสองคนในกลุ่ม 23 คนจะมีวันเกิดตรงกัน เท่ากับหนึ่งลบด้วยโอกาสที่ทั้ง 23 คนมีวันเกิดต่างกันทั้งหมด:

calc
p = 1 - product((365 - k)/365, k, 0, 22)
(p as %) to 1 dp ได้ผลลัพธ์เป็น 50.7%

รายละเอียดบางอย่าง:

  • ค่าแรกและค่าสุดท้ายต้องเป็นจํานวนเต็ม
  • หากค่าสุดท้ายน้อยกว่าค่าเริ่มต้น จะไม่มีพจน์ให้คำนวณ ผลรวมจึงเป็น 0 และผลคูณเป็น 1
  • การหาผลรวมหรือผลคูณแต่ละครั้งมีได้สูงสุด 10,000 พจน์
  • ซ้อนการหาผลรวมได้ เช่น sum(sum(j, j, 1, n), n, 1, 4) ซึ่งได้ 20 การเรียกฟังก์ชันซ้อนกันจะใช้ขีดจำกัดงานคำนวณรวมร่วมกัน
  • หากต้องการบวกค่าที่คุณมีอยู่แล้ว ให้ใช้รายการแทน: sum([4, 8, 15]) ดู รายการและสถิติ

แก้สมการแบบแม่นตรง

เมื่อส่งสมการเพียงอย่างเดียวให้ solve ฟังก์ชันจะอ่านสัมประสิทธิ์และคำนวณคำตอบเช่นเดียวกับการแก้บนกระดาษ:

calc
solve(2x + 6 = 10) ได้ผลลัพธ์เป็น 2
solve(x/3 + 1 = 4) ได้ผลลัพธ์เป็น 9
solve(5x + 3 = 2x - 9) ได้ผลลัพธ์เป็น -4
# Candles sell for 12, cost 4 each to make, on 2,000 of fixed costs
solve(12n = 2000 + 4n) ได้ผลลัพธ์เป็น 250

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

สมการเชิงเส้นให้คำตอบเป็นตัวเลข ส่วนสมการกำลังสองให้รายการรากจริงที่ไม่ซ้ำกันเรียงจากน้อยไปมาก หากมีรากซ้ำจึงได้รายการที่มีค่าเดียว:

calc
solve(x^2 - 5x + 6 = 0) ได้ผลลัพธ์เป็น [2, 3]
solve(x^2 = 9) ได้ผลลัพธ์เป็น [-3, 3]
solve(x^2 - 6x + 9 = 0) ได้ผลลัพธ์เป็น [3]
solve(x^2 - 2 = 0) ได้ผลลัพธ์เป็น [-1.4142135624, 1.4142135624]

รูปแบบคำตอบขึ้นอยู่กับชนิดของสมการที่เขียน ไม่ใช่จำนวนรากที่พบ สมการกำลังสองจะให้คำตอบเป็นรายการเสมอ

สมการเชิงเส้นและสมการกำลังสองที่มีดิสคริมิแนนต์เป็นกำลังสองสมบูรณ์จะคำนวณด้วยเศษส่วนแบบแม่นตรง ดังนั้น solve(x^2 - 5x + 6 = 0) จึงได้ 2 และ 3 อย่างแม่นตรง หากดิสคริมิแนนต์ไม่เป็นกำลังสองสมบูรณ์ รากทั้งสองจะใช้ค่ารากที่สองแบบทศนิยมแทน ค่าประมาณสองค่าอาจเปรียบเทียบแล้วไม่เท่ากันแม้แสดงเหมือนกัน เช่น solve(x^2 - 2 = 0) และ sqrt(2) ต่างแสดง 1.4142135624 แต่เปรียบเทียบแล้วต่างกัน

การแก้สมการใช้ได้กับตัวเลขที่ไม่มีหน่วยเท่านั้น ค่าเงินและค่าที่มีหน่วยจะถูกปฏิเสธ เพื่อไม่ให้จัดรูปสมการแล้วรักษาหน่วยไว้ไม่ถูกต้อง อ่านข้อกำหนดทั้งหมดในสิ่งที่ระบบคำนวณรับประกัน

กรณีที่คำนวณไม่ได้

ระบบจะไม่เดาคำตอบ หากสมการไม่มีรากจริงจะแจ้งให้ทราบแทนการให้รากเชิงซ้อน และจะปฏิเสธสมการที่มีดีกรีสูงกว่าสอง โดยแนะนำให้ใช้วิธีเชิงตัวเลขแทน:

calc
solve(x^2 + 1 = 0) ได้ผลลัพธ์เป็น Error: no real solution
solve(x^3 - 1 = 0) ได้ผลลัพธ์เป็น Unsupported: solve reads equations of degree 1 and 2; this one has degree 3: write solve(expression,x,lower,upper) to search for one root numerically
solve(sin(x) = 0) ได้ผลลัพธ์เป็น Unsupported: solve reads a polynomial in x of degree 1 or 2; write solve(expression,x,lower,upper) to search for one root numerically

ตัวไม่ทราบค่าจะอยู่ในตัวหารหรือเลขชี้กำลังไม่ได้เช่นกัน หากสมการมีชื่อที่ยังไม่ได้กำหนดค่าสองชื่อ จะแจ้งว่าชื่อใดที่อ่านค่าไม่ได้:

calc
solve(1/x = 2) ได้ผลลัพธ์เป็น Unsupported: The unknown cannot be a divisor; write solve(expression,x,lower,upper) to search for one root numerically
solve(2^x = 8) ได้ผลลัพธ์เป็น Unsupported: The unknown cannot be an exponent; write solve(expression,x,lower,upper) to search for one root numerically
solve(x + y = 10) ได้ผลลัพธ์เป็น Unsupported: solve reads one unknown, and y holds no value either; give y a value, or write solve(expression,x,lower,upper) to search for one root numerically

หากทุกค่าทำให้สมการเป็นจริง ระบบจะแจ้งให้ทราบแทนการเลือกคำตอบค่าใดค่าหนึ่ง:

calc
solve(x - x = 0) ได้ผลลัพธ์เป็น Unsupported: every value of x solves this equation, so it has no single answer

ข้อความปฏิเสธเหล่านี้จะแนะนำ solve แบบสี่อาร์กิวเมนต์ด้านล่าง ซึ่งค้นหารากหนึ่งค่าโดยวิธีเชิงตัวเลขและไม่จำกัดรูปแบบนิพจน์ หากต้องการแก้ระบบสมการเชิงเส้นหลายสมการที่มีตัวไม่ทราบค่าหลายตัว ให้ใช้ solve_system ในเวกเตอร์และเมทริกซ์

หารากเชิงตัวเลขหนึ่งราก

เมื่อรับสี่อาร์กิวเมนต์ solve จะทำงานอีกแบบ โดยค้นหาค่าตัวแปรที่ทำให้สมการเป็นจริงภายในขอบเขตสองค่าที่กำหนด ใช้วิธีนี้เมื่อรูปแบบหาคำตอบแบบแม่นตรงด้านบนไม่รองรับสมการของคุณ

calc
solve(x^2 = 2, x, 0, 2) ได้ผลลัพธ์เป็น 1.4142135624
solve(x^2 - 4, x, -3, 0) ได้ผลลัพธ์เป็น -2
solve(cos(x) = x, x, 0, 1) ได้ผลลัพธ์เป็น 0.7390851332
# How long does a stone take to fall 44.1 m?
solve(4.9*t^2 = 44.1, t, 0, 10) ได้ผลลัพธ์เป็น 3
# Candles sell for £12, cost £4 each to make, plus £2,000 of fixed costs
solve(12*n = 2000 + 4*n, n, 0, 1000) ได้ผลลัพธ์เป็น 250

อาร์กิวเมนต์เรียงตามลำดับคือ สมการ ตัวแปร ขอบเขตล่าง และขอบเขตบน จะเขียนสมการที่มี = หรือเขียนนิพจน์เพียงอย่างเดียวก็ได้ ซึ่ง solve จะตีความเป็น expression = 0

การเลือกขอบเขต

solve ต้องการให้ค่าทั้งสองข้างของสมการสลับกันเป็นด้านที่มากกว่าภายในช่วงที่กำหนด กล่าวคือ left - right ต้องเป็นบวกที่ขอบเขตหนึ่งและเป็นลบที่อีกขอบเขตหนึ่ง หรือเป็นศูนย์พอดีที่ขอบเขตใดขอบเขตหนึ่ง จากนั้นจะค่อย ๆ บีบช่วงให้แคบลงจนพบจุดตัด

เงื่อนไขนี้มีผลดังต่อไปนี้:

  • หากมีสองรากอยู่ระหว่างขอบเขต เครื่องหมายที่ปลายทั้งสองอาจไม่ต่างกัน solve(x^2 - 4, x, -3, 3) จึงล้มเหลว เพราะ x^2 - 4 เป็นบวกที่ปลายทั้งสอง ให้เลือกขอบเขตที่คร่อมเพียงรากเดียว เช่น 0 และ 3
  • รากที่เส้นโค้งสัมผัสศูนย์เท่านั้น เช่น x^2 = 0 ไม่สามารถพบได้ด้วยวิธีนี้ เนื่องจากเครื่องหมายไม่เคยเปลี่ยนแปลง
  • นิพจน์ต้องมีนิยามตลอดทั้งช่วง solve(sqrt(x) = 2, x, -1, 10) จะล้มเหลว เพราะ sqrt ของจำนวนลบทำให้เกิดข้อผิดพลาด ให้เริ่มช่วงที่ 0 แทน
  • การกระโดดข้ามศูนย์ เช่นเดียวกับใน 1/x ใกล้ 0 ไม่ใช่ราก ดังนั้น solve จึงให้ข้อผิดพลาดที่นั่นมากกว่าคําตอบ
  • ขอบเขตล่างต้องน้อยกว่าขอบเขตบน และทั้งสองค่าต้องเป็นตัวเลขที่ไม่มีหน่วย

solve คืนรากเพียงค่าเดียว ไม่ได้คืนรายการรากทั้งหมด และใช้ได้เฉพาะตัวเลขที่ไม่มีหน่วย จึงต้องไม่ใส่หน่วยในสมการ

การปัดเศษและนํากลับมาใช้ใหม่

คำตอบเป็นค่าประมาณเชิงตัวเลขที่ใกล้เคียง และอาจคลาดเคลื่อนในหลักสุดท้ายที่แสดง เติม to 4 dp หรือจำนวนตำแหน่งทศนิยมที่ต้องการในบรรทัดเดียวกันเพื่อให้แสดงอย่างกระชับ หรือตั้งชื่อผลลัพธ์ไว้ก่อนหากต้องการนำไปใช้ต่อ:

calc
solve(sqrt(x) = 2, x, 0, 10) ได้ผลลัพธ์เป็น 4.0000000001
solve(sqrt(x) = 2, x, 0, 10) to 4 dp ได้ผลลัพธ์เป็น 4
side = solve(sqrt(x) = 2, x, 0, 10) ได้ผลลัพธ์เป็น 4.0000000001
side * 3 to 2 dp ได้ผลลัพธ์เป็น 12

คุณเขียนฟังก์ชันของตัวเองให้เรียก solve ภายในได้ เพื่อใช้ซ้ำกับค่าต่าง ๆ:

calc
root(y) = solve(x^2 = y, x, 0, 10)
root(9) ได้ผลลัพธ์เป็น 3

สำหรับระบบสมการเชิงเส้นหลายสมการที่มีตัวไม่ทราบค่าหลายตัว ใช้ solve_system ในเวกเตอร์และเมทริกซ์

การหาอนุพันธ์เชิงสัญลักษณ์

ด้วยสองอาร์กิวเมนต์ differentiate (หรือ derivative) จะให้อนุพันธ์เป็นสูตร:

calc
differentiate(sin(x), x) ได้ผลลัพธ์เป็น cos(x)
derivative(x^3, x) ได้ผลลัพธ์เป็น (3*(x^(3-1)))
derivative(x * sin(x), x) ได้ผลลัพธ์เป็น (sin(x)+(x*cos(x)))
derivative(exp(2*x), x) ได้ผลลัพธ์เป็น (exp((2*x))*2)

ผลลัพธ์ยังไม่ได้จัดรูปให้เรียบง่าย และมีวงเล็บกำกับทุกขั้นตอน เช่น (3*(x^(3-1))) คือ 3x² ทศนิยมในนิพจน์จะกลายเป็นเศษส่วนในผลลัพธ์ เช่น 19.6 แสดงเป็น (98/5)

ผลลัพธ์คือ ข้อความ ไม่ใช่สิ่งที่ Varlig สามารถคํานวณได้ หากต้องการใช้งาน ให้พิมพ์สูตรลงในฟังก์ชันของคุณเอง:

calc
slope(x) = 3*x^2
slope(2) ได้ผลลัพธ์เป็น 12

สิ่งที่การหาอนุพันธ์เชิงสัญลักษณ์รองรับ:

  • +, -, *, / และการยกกำลัง โดยใช้กฎผลรวม ผลคูณ ผลหาร เลขยกกำลัง และกฎลูกโซ่
  • ฟังก์ชัน sin, cos, tan, sinh, cosh, exp, ln และ sqrt
  • ชื่ออื่น ๆ ซึ่งถือว่าเป็นค่าคงที่และอยู่เป็นชื่อในผลลัพธ์

ชื่อแต่ละชื่อไม่จำเป็นต้องมีค่าที่กำหนดไว้ในโน้ต จึงหาอนุพันธ์ของสูตรที่มีสัญลักษณ์ได้:

calc
derivative(a*x^2, x) ได้ผลลัพธ์เป็น (a*(2*(x^(2-1))))

ฟังก์ชันอื่น เช่น abs, log หรือฟังก์ชันที่คุณกำหนดเอง จะทำให้เกิดข้อผิดพลาด ให้ใช้วิธีเชิงตัวเลขด้านล่างแทน นอกจากนี้สูตรผลลัพธ์ไม่ได้ระบุข้อจำกัดของนิพจน์เดิมไว้ด้วย อนุพันธ์ของ sqrt(x) ยังใช้ได้เฉพาะในบริเวณที่ sqrt(x) มีนิยาม แม้ (1/(2*sqrt(x))) จะดูเป็นสูตรที่แยกออกมาต่างหากก็ตาม

การหาอนุพันธ์เชิงตัวเลข

เมื่อเพิ่มอาร์กิวเมนต์ตัวที่สาม derivative จะคืนค่าความชัน ณ จุดนั้นเป็นตัวเลข:

calc
derivative(x^3, x, 2) ได้ผลลัพธ์เป็น 12
differentiate(sin(x), x, 0) ได้ผลลัพธ์เป็น 1
derivative(sqrt(x), x, 4) ได้ผลลัพธ์เป็น 0.25
height(t) = 20*t - 4.9*t^2
derivative(height(t), t, 1) ได้ผลลัพธ์เป็น 10.2

รูปแบบนี้ใช้กับฟังก์ชันที่กำหนดไว้ในโน้ต เช่น height ด้านบนได้ ต่างจากรูปแบบเชิงสัญลักษณ์ที่ไม่รองรับ เนื่องจากต้องคำนวณเป็นค่าตัวเลข ชื่ออื่นทุกชื่อในนิพจน์จึงต้องมีค่าที่กำหนดไว้ เงื่อนไขเดียวกันนี้ใช้กับ sum, product, solve และ integrate ด้วย:

calc
derivative(a*x^2, x, 2) ได้ผลลัพธ์เป็น Unsupported: Unknown name: a
a = 3
derivative(a*x^2, x, 2) ได้ผลลัพธ์เป็น 12

คำตอบเป็นค่าประมาณจากค่าที่อยู่ใกล้จุดนั้นทั้งสองด้าน เมื่อความชันจริงเป็นค่าที่เขียนได้ลงตัว Varlig จะเก็บค่านั้นไว้ จึงเปรียบเทียบแบบเท่ากันพอดีได้ ส่วนความชันที่เป็นจำนวนอตรรกยะ เช่น ความชันของ exp(x) จะเก็บทุกหลักไว้ จึงควรเปรียบเทียบโดยยอมให้คลาดเคลื่อนได้เล็กน้อย:

calc
derivative(x^3, x, 2) == 12 ได้ผลลัพธ์เป็น true
abs(derivative(exp(x), x, 1) - e) < 1e-6 ได้ผลลัพธ์เป็น true

นิพจน์ต้องเรียบ ไม่มีจุดหักมุมหรือจุดขาดตอนบริเวณรอบจุดที่ต้องการ derivative(abs(x), x, 0) จึงเกิดข้อผิดพลาดเพราะ abs มีจุดหักมุมที่ศูนย์ และ derivative(sqrt(x), x, 0) ก็เกิดข้อผิดพลาดเพราะ sqrt ไม่มีนิยามทางซ้ายของศูนย์

การหาอินทิกรัลจำกัดเขต

calc
integrate(x^2, x, 0, 3) ได้ผลลัพธ์เป็น 9
integrate(sin(x), x, 0, pi) ได้ผลลัพธ์เป็น 2
integrate(x^2, x, 3, 0) ได้ผลลัพธ์เป็น -9
integrate(4/(1 + x^2), x, 0, 1) ได้ผลลัพธ์เป็น 3.1415926536
# Distance fallen in 3 s: integrate the speed, 9.8t m/s
integrate(9.8*t, t, 0, 3) ได้ผลลัพธ์เป็น 44.1

อาร์กิวเมนต์เรียงเป็น นิพจน์ ตัวแปร ขอบเขตล่าง และขอบเขตบน เช่นเดียวกับ sum คำตอบคือพื้นที่ใต้เส้นโค้งแบบมีเครื่องหมายระหว่างขอบเขตทั้งสอง เมื่อสลับขอบเขต เครื่องหมายคำตอบจะกลับด้าน หากขอบเขตเท่ากัน คำตอบเป็นศูนย์ คุณหาปริพันธ์ของฟังก์ชันที่กำหนดไว้ในโน้ตได้ เช่น integrate(power(t), t, 0, 4)

integrate ใช้วิธีเชิงตัวเลข จึงมีข้อจำกัดบางประการ:

  • ไม่รองรับอินทิกรัลไม่จำกัดเขต ผลลัพธ์เป็นตัวเลขเสมอ ไม่ใช่สูตร
  • ขอบเขตทั้งสองต้องเป็นจำนวนจำกัด ไม่สามารถหาปริพันธ์ไปถึงอนันต์ได้
  • นิพจน์ต้องมีนิยามตลอดทั้งช่วง integrate(1/sqrt(x), x, 0, 1) จึงเกิดข้อผิดพลาด เพราะ 1/sqrt(0) เป็นการหารด้วยศูนย์ แม้พื้นที่จะมีค่าจำกัดก็ตาม
  • นิพจน์ที่มีการกระโดดของค่า ยอดแหลม หรือการแกว่งที่เร็วมาก อาจให้คำตอบคลาดเคลื่อนหรือเกิดข้อผิดพลาด
  • ไม่รองรับหน่วย ให้ระบุหน่วยไว้ในความคิดเห็นแทนเหมือนตัวอย่างสุดท้าย

อัลกอริทึมและการลู่เข้า

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

solve ใช้วิธีแบ่งครึ่งช่วง โดยแบ่งซ้ำ ๆ และเก็บครึ่งที่เครื่องหมายเปลี่ยนไว้ จะหยุดเมื่อค่า left - right ห่างจากศูนย์ไม่เกิน 10⁻¹⁰ และช่วงแคบพอ หากแบ่งครบ 128 ครั้งแล้วยังไม่สำเร็จ จะหยุดพร้อมข้อผิดพลาด

derivative แบบเชิงสัญลักษณ์ ใช้กฎมาตรฐานทีละขั้นโดยไม่จัดรูปให้ง่ายขึ้น ผลลัพธ์ยาวได้สูงสุด 8,192 อักขระ นี่ไม่ใช่ระบบพีชคณิตคอมพิวเตอร์เต็มรูปแบบ

derivative แบบเชิงตัวเลข เปรียบเทียบผลต่างกลางโดยลดขนาดขั้นลงเรื่อย ๆ และตรวจความชันจากแต่ละด้านแยกกัน หากค่าทั้งสองไม่สอดคล้องกัน หรือค่าบริเวณใกล้จุดนั้นไม่มีนิยาม ระบบจะรายงานข้อผิดพลาดแทนการเดาคำตอบ

integrate ใช้กฎ Gauss–Kronrod แบบปรับช่วง 7 จุดและ 15 จุด โดยเปรียบเทียบค่าประมาณทั้งสองในแต่ละช่วงย่อย แล้วแบ่งช่วงที่มีค่าคลาดเคลื่อนประมาณสูงสุด จนค่าคลาดเคลื่อนประมาณรวมต่ำกว่า 10⁻⁹ × max(1, |answer|) แบ่งได้สูงสุด 2,048 ครั้ง ลึก 20 ระดับ และใช้ขีดจำกัดงานคำนวณร่วม 100,000 ขั้น จุดตัวอย่างไม่ได้เว้นระยะเท่ากัน จึงหาปริพันธ์ของการแกว่งเร็ว เช่น cos(128*pi*x) จาก 0 ถึง 1 ได้ใกล้ศูนย์อย่างถูกต้อง แทนการเข้าใจผิดว่าเป็นค่าคงที่ อย่างไรก็ตาม การประเมินความคลาดเคลื่อนยังเป็นวิธีฮิวริสติก จึงควรระวังเมื่อนิพจน์มีจุดเอกฐานหรือจุดไม่ต่อเนื่อง

อ่านข้อกำหนดทั้งหมดได้ในเอกสารอ้างอิงคณิตศาสตร์ขั้นสูง

ตัวอย่างการใช้ร่วมกัน

ตัวอย่างนี้ใช้ตรวจคำตอบโจทย์ฟิสิกส์: โยนลูกบอลขึ้นในแนวดิ่งด้วยความเร็ว 19.6 m/s โดยใช้ความเร่งโน้มถ่วง 9.8 m/s²:

calc
# Height in metres after t seconds
height(t) = 19.6*t - 4.9*t^2
velocity(t) = 19.6 - 9.8*t
# Lands when the height is back to zero (skip t = 0)
landing = solve(height(t) = 0, t, 1, 10) ได้ผลลัพธ์เป็น 4
# Speed after 1 second, from the slope of the height
derivative(height(t), t, 1) ได้ผลลัพธ์เป็น 9.8
# Highest point, where the velocity is zero
peak = solve(velocity(t) = 0, t, 0, landing) ได้ผลลัพธ์เป็น 2
height(peak) ได้ผลลัพธ์เป็น 19.6
# Check: integrating the velocity up to the peak gives the same height
integrate(velocity(t), t, 0, peak) ได้ผลลัพธ์เป็น 19.6

ลูกบอลตกถึงพื้นหลังผ่านไป 4 วินาที และขึ้นถึงความสูง 19.6 m ที่เวลา 2 วินาที ขอบเขตล่าง 1 ในบรรทัด landing ช่วยให้ solve ไม่เลือกรากอีกค่าที่ t = 0 บรรทัดสุดท้ายตรวจยืนยันความสูงอีกวิธีด้วยการหาปริพันธ์ของความเร็ว