ผลรวม สมการ และแคลคูลัส
หน้านี้อธิบายการหาผลรวมและผลคูณของลำดับพจน์ การหาค่าที่ทำให้สมการเป็นจริง การหาอนุพันธ์ทั้งแบบสูตรและค่าที่จุดหนึ่ง และการหาอินทิกรัลจำกัดเขต ใช้เมื่อโจทย์ต้องการสัญกรณ์ Σ หรือ Π เมื่อจัดรูปสมการด้วยมือได้ยาก หรือเมื่อต้องการตรวจอนุพันธ์หรือพื้นที่ใต้เส้นโค้งในงานเรียน
ฟังก์ชันเหล่านี้รับชื่อตัวแปรเป็นอาร์กิวเมนต์หนึ่ง เช่น k ใน sum(k^2, k, 1, 10) ตัวแปรนี้มีขอบเขตเฉพาะภายในการเรียกฟังก์ชัน จึงไม่เปลี่ยนค่าของตัวแปรชื่อเดียวกันที่อื่นในโน้ต
ผลรวมและผลคูณที่มีจำนวนพจน์จำกัด
sum(k, k, 1, 100) ได้ผลลัพธ์เป็น 5,050sum(k^2, k, 1, 10) ได้ผลลัพธ์เป็น 385summation(2*k - 1, k, 1, 10) ได้ผลลัพธ์เป็น 100product(k, k, 1, 5) ได้ผลลัพธ์เป็น 120อาร์กิวเมนต์เรียงตามลำดับคือ นิพจน์ ตัวแปร ค่าเริ่มต้น และค่าสุดท้าย โดยรวมค่าทั้งสองปลายด้วย ดังนั้น sum(k, k, 1, 100) จึงบวก 1 + 2 + … + 100 ใช้ summation แทน sum ได้ บรรทัดที่สามแสดงว่าจำนวนคี่สิบจำนวนแรกบวกกันได้ 10² ส่วนบรรทัดสุดท้ายคือ 5 แฟกทอเรียล
หาผลรวมของค่าเงินและค่าที่มีหน่วยได้ จึงเหมาะกับการคำนวณเงินออมเป็นงวด:
# £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 คนมีวันเกิดต่างกันทั้งหมด:
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 ฟังก์ชันจะอ่านสัมประสิทธิ์และคำนวณคำตอบเช่นเดียวกับการแก้บนกระดาษ:
solve(2x + 6 = 10) ได้ผลลัพธ์เป็น 2solve(x/3 + 1 = 4) ได้ผลลัพธ์เป็น 9solve(5x + 3 = 2x - 9) ได้ผลลัพธ์เป็น -4# Candles sell for 12, cost 4 each to make, on 2,000 of fixed costssolve(12n = 2000 + 4n) ได้ผลลัพธ์เป็น 250ตัวไม่ทราบค่าคือชื่อเดียวในสมการที่ยังไม่ได้กำหนดค่า ส่วนชื่อที่กำหนดค่าไว้แล้วจะถูกแทนด้วยค่านั้น หากไม่เขียนด้านขวาของสมการ จะถือว่านิพจน์เท่ากับศูนย์
สมการเชิงเส้นให้คำตอบเป็นตัวเลข ส่วนสมการกำลังสองให้รายการรากจริงที่ไม่ซ้ำกันเรียงจากน้อยไปมาก หากมีรากซ้ำจึงได้รายการที่มีค่าเดียว:
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 แต่เปรียบเทียบแล้วต่างกัน
การแก้สมการใช้ได้กับตัวเลขที่ไม่มีหน่วยเท่านั้น ค่าเงินและค่าที่มีหน่วยจะถูกปฏิเสธ เพื่อไม่ให้จัดรูปสมการแล้วรักษาหน่วยไว้ไม่ถูกต้อง อ่านข้อกำหนดทั้งหมดในสิ่งที่ระบบคำนวณรับประกัน
กรณีที่คำนวณไม่ได้
ระบบจะไม่เดาคำตอบ หากสมการไม่มีรากจริงจะแจ้งให้ทราบแทนการให้รากเชิงซ้อน และจะปฏิเสธสมการที่มีดีกรีสูงกว่าสอง โดยแนะนำให้ใช้วิธีเชิงตัวเลขแทน:
solve(x^2 + 1 = 0) ได้ผลลัพธ์เป็น Error: no real solutionsolve(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 numericallysolve(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ตัวไม่ทราบค่าจะอยู่ในตัวหารหรือเลขชี้กำลังไม่ได้เช่นกัน หากสมการมีชื่อที่ยังไม่ได้กำหนดค่าสองชื่อ จะแจ้งว่าชื่อใดที่อ่านค่าไม่ได้:
solve(1/x = 2) ได้ผลลัพธ์เป็น Unsupported: The unknown cannot be a divisor; write solve(expression,x,lower,upper) to search for one root numericallysolve(2^x = 8) ได้ผลลัพธ์เป็น Unsupported: The unknown cannot be an exponent; write solve(expression,x,lower,upper) to search for one root numericallysolve(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หากทุกค่าทำให้สมการเป็นจริง ระบบจะแจ้งให้ทราบแทนการเลือกคำตอบค่าใดค่าหนึ่ง:
solve(x - x = 0) ได้ผลลัพธ์เป็น Unsupported: every value of x solves this equation, so it has no single answerข้อความปฏิเสธเหล่านี้จะแนะนำ solve แบบสี่อาร์กิวเมนต์ด้านล่าง ซึ่งค้นหารากหนึ่งค่าโดยวิธีเชิงตัวเลขและไม่จำกัดรูปแบบนิพจน์ หากต้องการแก้ระบบสมการเชิงเส้นหลายสมการที่มีตัวไม่ทราบค่าหลายตัว ให้ใช้ solve_system ในเวกเตอร์และเมทริกซ์
หารากเชิงตัวเลขหนึ่งราก
เมื่อรับสี่อาร์กิวเมนต์ solve จะทำงานอีกแบบ โดยค้นหาค่าตัวแปรที่ทำให้สมการเป็นจริงภายในขอบเขตสองค่าที่กำหนด ใช้วิธีนี้เมื่อรูปแบบหาคำตอบแบบแม่นตรงด้านบนไม่รองรับสมการของคุณ
solve(x^2 = 2, x, 0, 2) ได้ผลลัพธ์เป็น 1.4142135624solve(x^2 - 4, x, -3, 0) ได้ผลลัพธ์เป็น -2solve(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 costssolve(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 หรือจำนวนตำแหน่งทศนิยมที่ต้องการในบรรทัดเดียวกันเพื่อให้แสดงอย่างกระชับ หรือตั้งชื่อผลลัพธ์ไว้ก่อนหากต้องการนำไปใช้ต่อ:
solve(sqrt(x) = 2, x, 0, 10) ได้ผลลัพธ์เป็น 4.0000000001solve(sqrt(x) = 2, x, 0, 10) to 4 dp ได้ผลลัพธ์เป็น 4side = solve(sqrt(x) = 2, x, 0, 10) ได้ผลลัพธ์เป็น 4.0000000001side * 3 to 2 dp ได้ผลลัพธ์เป็น 12คุณเขียนฟังก์ชันของตัวเองให้เรียก solve ภายในได้ เพื่อใช้ซ้ำกับค่าต่าง ๆ:
root(y) = solve(x^2 = y, x, 0, 10)root(9) ได้ผลลัพธ์เป็น 3สำหรับระบบสมการเชิงเส้นหลายสมการที่มีตัวไม่ทราบค่าหลายตัว ใช้ solve_system ในเวกเตอร์และเมทริกซ์
การหาอนุพันธ์เชิงสัญลักษณ์
ด้วยสองอาร์กิวเมนต์ differentiate (หรือ derivative) จะให้อนุพันธ์เป็นสูตร:
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 สามารถคํานวณได้ หากต้องการใช้งาน ให้พิมพ์สูตรลงในฟังก์ชันของคุณเอง:
slope(x) = 3*x^2slope(2) ได้ผลลัพธ์เป็น 12สิ่งที่การหาอนุพันธ์เชิงสัญลักษณ์รองรับ:
+,-,*,/และการยกกำลัง โดยใช้กฎผลรวม ผลคูณ ผลหาร เลขยกกำลัง และกฎลูกโซ่- ฟังก์ชัน
sin,cos,tan,sinh,cosh,exp,lnและsqrt - ชื่ออื่น ๆ ซึ่งถือว่าเป็นค่าคงที่และอยู่เป็นชื่อในผลลัพธ์
ชื่อแต่ละชื่อไม่จำเป็นต้องมีค่าที่กำหนดไว้ในโน้ต จึงหาอนุพันธ์ของสูตรที่มีสัญลักษณ์ได้:
derivative(a*x^2, x) ได้ผลลัพธ์เป็น (a*(2*(x^(2-1))))ฟังก์ชันอื่น เช่น abs, log หรือฟังก์ชันที่คุณกำหนดเอง จะทำให้เกิดข้อผิดพลาด ให้ใช้วิธีเชิงตัวเลขด้านล่างแทน นอกจากนี้สูตรผลลัพธ์ไม่ได้ระบุข้อจำกัดของนิพจน์เดิมไว้ด้วย อนุพันธ์ของ sqrt(x) ยังใช้ได้เฉพาะในบริเวณที่ sqrt(x) มีนิยาม แม้ (1/(2*sqrt(x))) จะดูเป็นสูตรที่แยกออกมาต่างหากก็ตาม
การหาอนุพันธ์เชิงตัวเลข
เมื่อเพิ่มอาร์กิวเมนต์ตัวที่สาม derivative จะคืนค่าความชัน ณ จุดนั้นเป็นตัวเลข:
derivative(x^3, x, 2) ได้ผลลัพธ์เป็น 12differentiate(sin(x), x, 0) ได้ผลลัพธ์เป็น 1derivative(sqrt(x), x, 4) ได้ผลลัพธ์เป็น 0.25height(t) = 20*t - 4.9*t^2derivative(height(t), t, 1) ได้ผลลัพธ์เป็น 10.2รูปแบบนี้ใช้กับฟังก์ชันที่กำหนดไว้ในโน้ต เช่น height ด้านบนได้ ต่างจากรูปแบบเชิงสัญลักษณ์ที่ไม่รองรับ เนื่องจากต้องคำนวณเป็นค่าตัวเลข ชื่ออื่นทุกชื่อในนิพจน์จึงต้องมีค่าที่กำหนดไว้ เงื่อนไขเดียวกันนี้ใช้กับ sum, product, solve และ integrate ด้วย:
derivative(a*x^2, x, 2) ได้ผลลัพธ์เป็น Unsupported: Unknown name: aa = 3derivative(a*x^2, x, 2) ได้ผลลัพธ์เป็น 12คำตอบเป็นค่าประมาณจากค่าที่อยู่ใกล้จุดนั้นทั้งสองด้าน เมื่อความชันจริงเป็นค่าที่เขียนได้ลงตัว Varlig จะเก็บค่านั้นไว้ จึงเปรียบเทียบแบบเท่ากันพอดีได้ ส่วนความชันที่เป็นจำนวนอตรรกยะ เช่น ความชันของ exp(x) จะเก็บทุกหลักไว้ จึงควรเปรียบเทียบโดยยอมให้คลาดเคลื่อนได้เล็กน้อย:
derivative(x^3, x, 2) == 12 ได้ผลลัพธ์เป็น trueabs(derivative(exp(x), x, 1) - e) < 1e-6 ได้ผลลัพธ์เป็น trueนิพจน์ต้องเรียบ ไม่มีจุดหักมุมหรือจุดขาดตอนบริเวณรอบจุดที่ต้องการ derivative(abs(x), x, 0) จึงเกิดข้อผิดพลาดเพราะ abs มีจุดหักมุมที่ศูนย์ และ derivative(sqrt(x), x, 0) ก็เกิดข้อผิดพลาดเพราะ sqrt ไม่มีนิยามทางซ้ายของศูนย์
การหาอินทิกรัลจำกัดเขต
integrate(x^2, x, 0, 3) ได้ผลลัพธ์เป็น 9integrate(sin(x), x, 0, pi) ได้ผลลัพธ์เป็น 2integrate(x^2, x, 3, 0) ได้ผลลัพธ์เป็น -9integrate(4/(1 + x^2), x, 0, 1) ได้ผลลัพธ์เป็น 3.1415926536# Distance fallen in 3 s: integrate the speed, 9.8t m/sintegrate(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²:
# Height in metres after t secondsheight(t) = 19.6*t - 4.9*t^2velocity(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 heightderivative(height(t), t, 1) ได้ผลลัพธ์เป็น 9.8# Highest point, where the velocity is zeropeak = solve(velocity(t) = 0, t, 0, landing) ได้ผลลัพธ์เป็น 2height(peak) ได้ผลลัพธ์เป็น 19.6# Check: integrating the velocity up to the peak gives the same heightintegrate(velocity(t), t, 0, peak) ได้ผลลัพธ์เป็น 19.6ลูกบอลตกถึงพื้นหลังผ่านไป 4 วินาที และขึ้นถึงความสูง 19.6 m ที่เวลา 2 วินาที ขอบเขตล่าง 1 ในบรรทัด landing ช่วยให้ solve ไม่เลือกรากอีกค่าที่ t = 0 บรรทัดสุดท้ายตรวจยืนยันความสูงอีกวิธีด้วยการหาปริพันธ์ของความเร็ว