ผลต่างระหว่างรุ่นของ "01204472/การทดลองการคำนวณจำนวนจริง"
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 31: | แถว 31: | ||
=== ความละเอียดกับการประมาณค่า === | === ความละเอียดกับการประมาณค่า === | ||
+ | |||
+ | 2.5 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.4 ให้เพิ่มค่า <math>k</math> ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า <math>k</math> ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่) | ||
+ | |||
+ | 2.6 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.2 ให้เพิ่มค่า <math>k</math> ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า <math>k</math> ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่) | ||
+ | |||
+ | 2.7 เปรียบเทียบขอบเขตที่ได้ในข้อ 2.5 และ 2.6 | ||
== Gaussian Elimination == | == Gaussian Elimination == | ||
== ความเสถียร == | == ความเสถียร == |
รุ่นแก้ไขเมื่อ 04:56, 14 มิถุนายน 2555
หน้านี้เป็นรายละเอียดการทดลองเกี่ยวกับข้อจำกัดในการคำนวณด้วยจำนวนจริงบนคอมพิวเตอร์ ประกอบการเรียนวิชา 01204472
เนื้อหา
ขอบเขตของตัวเลข
1.1 ทดลองหาค่าต่ำสุดที่จำนวนจริงในภาษาที่ใช้สามารถเก็บได้ (ที่มากกว่า 0)
1.2 เนื่องจากรูปแบบในการเก็บจำนวนจริงจะเก็บหลักและเลขนัยสำคัญ ให้เขียนโปรแกรมเพื่อหาจำนวนหลักของเลขนัยสำคัญ
1.3 จากคำตอบในข้อ 1.1 และ 1.2 ลองเทียบตารางในมาตรฐาน IEEE 754 ว่าการเก็บข้อมูลจำนวนจริงของภาษาที่ใช้เก็บด้วยรูปแบบใด
ทดลองประมาณค่า
ในการเรียนครั้งก่อนเราเห็นตัวอย่างของการทราบ derivative ของฟังก์ชันที่ต้องการหาค่าต่ำสุด อย่างไรก็ตาม ถ้าเราสามารถทำได้แค่คำนวณค่าฟังก์ชัน แต่เราต้องการใช้งานค่า derivative ที่จุดต่าง ๆ เราจะทำอย่างไร?
ให้ฟังก์ชัน และจำนวนจริง เราต้องการประมาณค่า
เราจะพิจารณาการประมาณค่าสองแบบ โดยทั้งคู่จะมีพารามิเตอร์ แทนความละเอียด
- แบบที่ 1 ประมาณด้วย
- แบบที่ 2 ประมาณด้วย
ในการทดลองสำหรับแต่ละฟังก์ชันต่อไปนี้ ให้วาดกราฟเปรียบเทียบความผิดพลาดของการประมาณแบบที่ 1 และแบบที่ 2 โดยให้เปลี่ยนตามค่า โดยมากให้ k มีค่าตั้งแต่ 1 ถึง 500 ก็น่าจะเห็นความแตกต่าง
- หมายเหตุ: ในการสร้างตัวแปร k อย่าลืมว่าต้องให้มีค่าเป็นจำนวนจริง โดยสั่ง k = arange(1.,500.,1) จากนั้นลองสั่ง 1/k เพื่อดูอาร์เรย์ของค่า ที่ได้
2.1 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้ คำตอบที่ถูกต้องคืออะไร?)
2.2 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้ คำตอบที่ถูกต้องคืออะไร?)
2.3 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้ คำตอบที่ถูกต้องคืออะไร?) สังเกตว่าเราคิดมุมเป็นหน่วยเรเดียล
2.4 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้คำตอบที่ถูกต้องคืออะไร?)
ความละเอียดกับการประมาณค่า
2.5 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.4 ให้เพิ่มค่า ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่)
2.6 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.2 ให้เพิ่มค่า ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่)
2.7 เปรียบเทียบขอบเขตที่ได้ในข้อ 2.5 และ 2.6