วิทย์ม.ต้น: รู้จัก List Comprehension ในไพธอน, ใช้ Pyplot วาดกราฟ, หัดใช้ Command Line ต่อ

วิทย์โปรแกรมมิ่งของม.2-3 สัปดาห์นี้ เราเริ่มด้วยการใช้ bisection method เฉลยการบ้านสัปดาห์ที่แล้วครับ การบ้านคือ

ถ้าเรามีเวลาออมเงิน 20, 30, 40 ปี,

  1. ถ้าผลตอบแทน = 0.08 (8%) ต่อปี และเราออมปีละ 100,000 บาท เราจะมีเงินตอนท้ายเท่าไร
  2. ถ้าเราต้องการเงินตอนท้ายเท่ากับ 40,000,000 และออมเงินปีละ 120,000 เราต้องหาผลตอบแทนเท่าไร
  3. ถ้าเราต้องการเงินตอนท้ายเท่ากับ 40,000,000 และได้ผลตอบแทนปีละ 10% เราต้องออมเงินปีละเท่าไร

ข้อ 1 ตรงไปตรงมา หาจาก future value ของเงินที่ลงทุนไปทุกๆปีรวมกัน

สำหรับข้อ 2 และ 3 วิธีแก้สมการก็คือสร้างฟังก์ชั่นที่รับตัวแปรที่เราต้องการหา กำหนดฟังก์ชั่นให้มันเป็นศูนย์ถ้าตัวแปรของเราแก้โจทย์ที่ต้องการ แล้วก็ป้อนฟังก์ชั่นไปให้ bisection method หาคำตอบให้ครับ

หน้าตาประมาณนี้:

จากนั้นเด็กๆรู้จักกับ list comprehension ซึ่งเป็นวิธีสร้างลิสต์ที่ง่ายและเร็วครับ ควรไปอ่านและทดลองเพื่อความเข้าใจเพิ่มเติมที่ Comprehending Python’s Comprehensions หรือดูที่ส่วน “การสร้างลิสต์จาก for” ที่หน้านี้ นะครับ

เด็กๆรู้จัก list comprehension เพื่อไปป้อนให้ PyPlot วาดกราฟให้ครับ ศึกษา PyPlot ได้โดยพิมพ์ตามตัวอย่างใน Pyplot Tutorial แต่ถ้าใช้ Jupyter notebook อย่าลืมพิมพ์

%matplotlib inline
import matplotlib.pyplot as plt

ก่อนเริ่มใช้ PyPlot เพื่อเรียกใช้ฟังก์ชั่นการวาดรูปกราฟต่างๆใน matplotlib และจะได้วาดกราฟใน Jupyter notebook ไว้ด้วยกันกับโค้ดโปรแกรมครับ

หน้าตาการวาดกราฟก็อาจเป็นประมาณนี้:

เราวาดกราฟเพื่อดูหน้าตาความสัมพันธ์ต่างๆที่เราสนใจ เช่นกราฟมันตัดแกน x แกน y ที่ไหนบ้าง เพิ่มขึ้นลดลงอย่างไร ฯลฯ

สามารถดาวน์โหลด Jupyter Notebook ที่มีโค้ดต่างๆไปลองเล่นได้ที่นี่นะครับ หรือจะดูออนไลน์ที่ https://nbviewer.jupyter.org/url/witpoko.com/wp-content/uploads/2019/08/2019-08-16_G8-9.ipynb ก็ได้

สำหรับม.1 เด็กๆก็นั่งทำแบบฝึกหัดพิมพ์โปรแกรมแล้ว run บน command line แบบ python program.py arg1 arg2 ต่อไปครับ

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.