ผลต่างระหว่างรุ่นของ "01204472/การทดลองการคำนวณจำนวนจริง"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(minor updates)
(ย้อนการแก้ไขของ CarolAnderson (Talk) ไปยังรุ่นของ 158.108.233.130)
 
แถว 42: แถว 42:
 
2.6 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.4 ให้เพิ่มค่า <math>k</math> ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า <math>k</math> ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่)
 
2.6 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.4 ให้เพิ่มค่า <math>k</math> ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า <math>k</math> ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่)
  
2.7 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.2 ให้เพิ่มค่า <math>k</math> ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จา� ... \n
+
2.7 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.2 ให้เพิ่มค่า <math>k</math> ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า <math>k</math> ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่)
  
== Student Goes From Homeless to Harvard ==
+
2.8 เปรียบเทียบขอบเขตที่ได้ในข้อ 2.5 และ 2.6
  
Despite being abandoned to homelessness by her parents, Dawn Loggins worked as a high school custodian by day and studied hard by night to become the first person from her school to ever be admitted to Harvard.
+
== Gaussian Elimination ==
 +
: ''หมายเหตุ: ตัวอย่างนำจากสไล์ดบทที่ 7 จาก [http://www.ee.ucla.edu/~vandenbe/ee103.html]''
  
[[http://goodvillenews.com/Student-Goes-From-Homeless-to-Harvard-QX9Vg4.html Student Goes From Homeless to Harvard]]
+
สมมติให้ <math>k</math> เป็นค่าคงที่ พิจารณาระบบสมการต่อไปนี้
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
: <math>10^{-k}\cdot x_1 + x_2 = 1</math>
 +
: <math>x_1 + x_2 = 0</math>
  
== 13 Things You Should Do To Live Life Without Regrets ==
+
3.1 ให้แก้ระบบสมการนี้ด้วยมือ และหาค่าของ <math>x_1</math> และ <math>x_2</math>
  
A study that was performed on elderly individuals a few years back, has shown that during old age, there are many people who regret the things they didnt have the courage to do as opposed to only a few who had regrets about the things theyve done.
+
เมื่อเขียนอยู่ในรูปของเมตริกซ์ ระบบดังกล่าวเขียนได้เป็น
  
[[http://goodvillenews.com/13-Things-You-Should-Do-To-Live-Life-Without-Regrets-DyXsux.html 13 Things You Should Do To Live Life Without Regrets]]
+
<math>\left[\begin{array}{cc}10^{-k} & 1\\1&1\end{array}\right]
 +
\left[\begin{array}{c}x_1\\x_2\end{array}\right]
 +
=\left[\begin{array}{c}1\\0\end{array}\right]
 +
</math>
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
3.2 ในข้อนี้เราจะทดลองโดยปรับค่า <math>k</math> ตั้งแต่ 1 และเพิ่มขึ้นเรื่อย ๆ
  
== Reuse of Wastewater May Improve Drinking Water Supply ==
+
เปรียบเทียบการแก้ระบบสมการด้วย gaussian elimination โดยพิจารณาการแก้สองแบบดังนี้
  
With recent advances in technology and design, treating municipal wastewater and reusing it for drinking water, irrigation, industry, and other applications could significantly increase the nations total available water resources, particularly in coastal areas facing water shortages, says a new report from the National Research Council.
+
* แก้จากเมตริกซ์ดังกล่าวโดยตรง
 +
* ให้สลับแถวแรก กับแถวที่สองก่อน จากนั้นจึงค่อยแก้ด้วย gaussian elimination
  
[[http://goodvillenews.com/Reuse-of-Wastewater-May-Improve-Drinking-Water-Supply-SD47qe.html Reuse of Wastewater May Improve Drinking Water Supply]]
+
ให้เปรียบเทียบผลที่ได้จากการแก้ระบบสมการด้วย gaussian elimination ทั้งสองแบบ และค่าที่คำนวณโดยใช้สูตรโดยตรงจากคำตอบที่ได้จากข้อ 3.1
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
ให้ทดลองปรับค่า k และพิจารณาหลักของคำตอบที่เกิดความคลาดเคลื่อนที่มาจากลำดับของการทำ gaussian elimination
  
== Stop Using The Wrong Type of Intelligence ==
+
ลองพยายามอธิบายว่าทำไมการสลับแถวจึงมีผลทำให้ความคลาดเคลื่อนเพิ่มหรือลดลง
 
 
A man should hear a little music, read a little poetry, and see a fine picture every day of his life, in order that worldly cares may not obliterate the sense of the beautiful which God has implanted in the human soul. Johann Wolfgang von Goethe
 
 
 
[[http://goodvillenews.com/Stop-Using-The-Wrong-Type-of-Intelligence-6IGOxm.html Stop Using The Wrong Type of Intelligence]]
 
 
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
 
 
== Googles Jolly Good Fellow on Inner Peace ==
 
 
 
Chade-Meng Tan (widely known as Meng) was among the earliest engineers to be hired at Google. When Google allowed engineers to spend 20% of their time pursuing their passion, Meng decided to spend his time on a cause dear to his heart: Launching a conspiracy to bring about world peace. Meng believes that world peace can be achieved -- but only if people cultivate the conditions for inner peace within themselves.
 
 
 
[[http://goodvillenews.com/Googles-Jolly-Good-Fellow-on-Inner-Peace-xfIvQS.html Googles Jolly Good Fellow on Inner Peace]]
 
 
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 

รุ่นแก้ไขปัจจุบันเมื่อ 06:03, 5 สิงหาคม 2555

หน้านี้เป็นรายละเอียดการทดลองเกี่ยวกับข้อจำกัดในการคำนวณด้วยจำนวนจริงบนคอมพิวเตอร์ ประกอบการเรียนวิชา 01204472

ขอบเขตของตัวเลข

1.1 ทดลองหาค่าต่ำสุดที่จำนวนจริงในภาษาที่ใช้สามารถเก็บได้ (ที่มากกว่า 0)

1.2 เนื่องจากรูปแบบในการเก็บจำนวนจริงจะเก็บหลักและเลขนัยสำคัญ ให้เขียนโปรแกรมเพื่อหาจำนวนหลักของเลขนัยสำคัญ (hint: สามารถปรับแก้จากโปรแกรมในข้อ 1.1 ได้ไม่ยากนัก)

1.3 จากคำตอบในข้อ 1.1 และ 1.2 ลองเทียบตารางในมาตรฐาน IEEE 754 ว่าการเก็บข้อมูลจำนวนจริงของภาษาที่ใช้เก็บด้วยรูปแบบใด

ทดลองประมาณค่า

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

ให้ฟังก์ชัน และจำนวนจริง เราต้องการประมาณค่า

เราจะพิจารณาการประมาณค่าสองแบบ โดยทั้งคู่จะมีพารามิเตอร์ แทนความละเอียด

  • แบบที่ 1 ประมาณด้วย
  • แบบที่ 2 ประมาณด้วย

ในการทดลองสำหรับแต่ละฟังก์ชันต่อไปนี้ ให้วาดกราฟเปรียบเทียบความผิดพลาดของการประมาณแบบที่ 1 และแบบที่ 2 โดยให้เปลี่ยนตามค่า โดยมากให้ k มีค่าตั้งแต่ 1 ถึง 500 ก็น่าจะเห็นความแตกต่าง

หมายเหตุ 1: ในการสร้างตัวแปร k อย่าลืมว่าต้องให้มีค่าเป็นจำนวนจริง โดยสั่ง k = arange(1.,500.,1) จากนั้นลองสั่ง 1/k เพื่อดูอาร์เรย์ของค่า ที่ได้
หมายเหตุ 2: ใน pylab เมื่อต้องการลบกราฟ สั่ง clf()

2.1 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้ คำตอบที่ถูกต้องคืออะไร?)

2.2 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้ คำตอบที่ถูกต้องคืออะไร?)

2.3 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้ คำตอบที่ถูกต้องคืออะไร?) สังเกตว่าเราคิดมุมเป็นหน่วยเรเดียล

2.4 ให้ ให้ประมาณค่าของ ที่ (สำหรับข้อนี้คำตอบที่ถูกต้องคืออะไร?)

ความละเอียดกับการประมาณค่า

2.5 (a) ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.4 ให้ใช้ค่า k ระหว่าง 5000 ถึง 10000 (โดยอาจจะเพิ่มค่าทีละ 100) จากนั้นเขียนกราฟแสดง error

2.5 (b) ทำตามข้อ 2.5(a) แต่ให้ใช้ค่า k ระหว่าง 10000 ถึง 20000 ให้วาดกราฟในอีกรูปหนึ่งแยกกัน จากนั้นให้เปรียบเทียบลักษณะของกราฟทั้งสองเพื่อให้เห็นลักษณะการเปลี่ยนแปลงของค่า error

หมายเหตุ เราจะสร้างรูปกราฟ (figure) ใหม่โดยสั่ง figure() เมื่อสั่งแล้ว figure ปัจจุบันจะย้ายไปอีกรูปกราฟหนึ่ง

2.6 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.4 ให้เพิ่มค่า ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่)

2.7 ใช้การประมาณค่าแบบที่ 2 กับฟังก์ชันจากข้อ 2.2 ให้เพิ่มค่า ขึ้นเรื่อย (นั่นคือการเพิ่มความละเอียด) จากนั้นให้หาขอบเขตที่การเพิ่มค่า ทำให้เราสังเกตเห็น error ที่ไม่ได้เกิดจากอัลกอริทึม (error ถ้าพิจารณาจากกราฟ ให้อธิบายว่าส่วนใดคือ error ที่เกิดจากอัลกอริทึมที่ใช้ประมาณ อะไรไม่ใช่)

2.8 เปรียบเทียบขอบเขตที่ได้ในข้อ 2.5 และ 2.6

Gaussian Elimination

หมายเหตุ: ตัวอย่างนำจากสไล์ดบทที่ 7 จาก [1]

สมมติให้ เป็นค่าคงที่ พิจารณาระบบสมการต่อไปนี้

3.1 ให้แก้ระบบสมการนี้ด้วยมือ และหาค่าของ และ

เมื่อเขียนอยู่ในรูปของเมตริกซ์ ระบบดังกล่าวเขียนได้เป็น

3.2 ในข้อนี้เราจะทดลองโดยปรับค่า ตั้งแต่ 1 และเพิ่มขึ้นเรื่อย ๆ

เปรียบเทียบการแก้ระบบสมการด้วย gaussian elimination โดยพิจารณาการแก้สองแบบดังนี้

  • แก้จากเมตริกซ์ดังกล่าวโดยตรง
  • ให้สลับแถวแรก กับแถวที่สองก่อน จากนั้นจึงค่อยแก้ด้วย gaussian elimination

ให้เปรียบเทียบผลที่ได้จากการแก้ระบบสมการด้วย gaussian elimination ทั้งสองแบบ และค่าที่คำนวณโดยใช้สูตรโดยตรงจากคำตอบที่ได้จากข้อ 3.1

ให้ทดลองปรับค่า k และพิจารณาหลักของคำตอบที่เกิดความคลาดเคลื่อนที่มาจากลำดับของการทำ gaussian elimination

ลองพยายามอธิบายว่าทำไมการสลับแถวจึงมีผลทำให้ความคลาดเคลื่อนเพิ่มหรือลดลง