อ่าน Numerical Analysis ให้พร้อมทำข้อสอบเต็ม
สรุปและอธิบายจากไฟล์ใน `Assignment` และ `Lecture` ของวิชา Numerical Analysis โดยจัดใหม่ให้เป็นคู่มือสอบ: เข้าใจแนวคิดก่อน จำสูตรที่ต้องใช้ แล้วฝึกทำโจทย์ตามรูปแบบใน mockup/assignment
วิธีใช้หน้านี้
1อ่านภาพรวมให้รู้ว่าแต่ละวิธีใช้แก้ปัญหาแบบไหน
2จำสูตรในกล่องสีเหลือง และจำเงื่อนไขก่อนใช้สูตร
3ทำตัวอย่างแบบปิดเฉลย แล้วเปิดดูขั้นตอนเทียบ
4ก่อนสอบ อ่านหัวข้อ “เช็คก่อนส่ง” เพราะเป็นจุดหักคะแนนง่าย
แผนที่เนื้อหา
วิชานี้เริ่มจาก “ทำไมคอมพิวเตอร์ต้องประมาณค่า” แล้วต่อไปยังวิธีแก้สมการ, สร้างฟังก์ชันจากข้อมูล, และประมาณพื้นที่ใต้กราฟ
flowchart LR
A["ข้อมูลจริง / สมการจริง"] --> B["มีความคลาดเคลื่อน"]
B --> C["Error Analysis"]
C --> D["แก้ f(x)=0"]
D --> E["Bisection / Newton / Secant"]
C --> F["ข้อมูลเป็นจุด"]
F --> G["Linear / Lagrange / Spline"]
G --> H["ประมาณค่าและเส้นโค้ง"]
H --> I["Numerical Integration"]
I --> J["Rectangle / Trapezoid / Simpson"]
หัวข้อจาก Lecture
Week 2Error analysis, types of numerical problems
Week 3Nonlinear equations: Bisection, Newton-Raphson
Week 5Secant, polynomial/linear/Lagrange interpolation
Week 6Cubic spline, natural cubic spline
Week 7Numerical integration: rectangle, trapezoid, Simpson, 3/8
1. Error Analysis
ทุกคำตอบเชิงตัวเลขมี error ได้ เพราะข้อมูลจริงวัดไม่สมบูรณ์, คอมพิวเตอร์เก็บเลขจำกัด, หรือเราแทนขั้นตอนอนันต์ด้วยขั้นตอนจำกัด เวลาโจทย์ถาม error ให้เริ่มจากแยกก่อนว่า “true value” กับ “approximate value” คืออะไร
Assignment 1: คำตอบตรวจตัวเอง
| # | โจทย์ | วิธีคิดสั้นที่สุด | คำตอบ |
|---|---|---|---|
| 1 | Actual rod \(2.500\), measured \(2.492\) | \(|2.500-2.492|\) | Inherent signed \(=0.008\) m, absolute \(=0.008\) m |
| 2 | True voltage \(220\), measured \(214\) | Abs \(=6\), relative \(=6/220\) | \(E_a=6\) V, \(E_r=0.02727\), \(E_\%=2.727\%\) |
| 3 | Area circle \(r=5\), use \(\pi=3.14\) | Exact \(=3.14159265(25)\), approx \(=3.14(25)\) | Exact \(78.5398\), approx \(78.5\), error \(0.0398\) |
| 4 | Approximate \(e^1\) by \(1+x\) | เมื่อ \(x=1\), approx \(=2\) | \(|e-2|=0.71828\) |
| 5 | Sensor \(98^\circ C\), true \(100^\circ C\) | \(|100-98|\) | \(2^\circ C\) |
| 6 | Pressure true \(500\), measured \(490\) | Abs \(=10\), relative \(=10/500\) | \(10\) kPa, \(0.02\), \(2\%\) |
| 7 | Round \(12.98765\) to two decimals | Rounded \(=12.99\) | Round-off error \(=0.00235\) |
| 8 | \(\sin(0.5)\approx x\) | Exact \(\sin(0.5)=0.4794255\), approx \(0.5\) | Error \(=0.0205745\) |
| 9 | Mass actual \(15.000\), measured \(14.950\) | \(15.000-14.950\) | Inherent signed \(=0.050\) kg, absolute \(=0.050\) kg |
| 10 | \(\sqrt2\approx1.41\) | True \(=1.41421356\) | Abs \(0.00421356\), relative \(0.002979\), percent \(0.2979\%\) |
2. Solving Nonlinear Equations
โจทย์กลุ่มนี้ถามหารากของสมการ \(f(x)=0\) เช่น จุดที่กราฟตัดแกน \(x\). คำตอบมักออกเป็นตาราง iteration จึงต้องเขียนลำดับ \(x_n\), \(p_n\), หรือช่วง \([a,b]\) ให้ครบ
| Method | ต้องมีอะไร | สูตร | จุดเด่น/จุดเสี่ยง |
|---|---|---|---|
| Bisection | ช่วง \([a,b]\), \(f(a)f(b)<0\), \(f\) continuous | \(p=\frac{a+b}{2}\) | ชัวร์แต่ช้า เลือกครึ่งช่วงจากสัญญาณ |
| Newton-Raphson | ค่าเริ่ม \(x_0\), derivative \(f'(x)\) | \(x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}\) | เร็วมากถ้า \(x_0\) ดี แต่พังได้ถ้า \(f'(x_n)\approx0\) |
| Secant | ค่าเริ่มสองค่า \(x_0,x_1\) | \(x_{n+1}=x_n-\frac{f(x_n)(x_n-x_{n-1})}{f(x_n)-f(x_{n-1})}\) | ไม่ต้องหา derivative แต่ห้าม denominator เป็นศูนย์ |
| Fixed-point | แปลงเป็น \(x=g(x)\) | \(x_{n+1}=g(x_n)\) | ง่าย แต่ converge ต้องมีเงื่อนไขของ \(g\) |
| False Position | ช่วงที่เปลี่ยนเครื่องหมาย | \(p=b-\frac{f(b)(b-a)}{f(b)-f(a)}\) | ผสม Bisection กับ Secant, บางกรณี endpoint ค้างแล้วช้า |
Bisection Method
flowchart TD
A["เลือก [a,b]"] --> B{"f(a)f(b)<0 ?"}
B -- "ไม่ใช่" --> C["ใช้ไม่ได้ / เปลี่ยนช่วง"]
B -- "ใช่" --> D["คำนวณ p=(a+b)/2"]
D --> E{"f(p)=0 หรือ error เล็กพอ?"}
E -- "ใช่" --> F["ตอบ p"]
E -- "ไม่ใช่" --> G{"f(a)f(p)<0 ?"}
G -- "ใช่" --> H["ตั้ง b=p"]
G -- "ไม่ใช่" --> I["ตั้ง a=p"]
H --> D
I --> D
ตัวอย่างจาก Lecture: \(f(x)=x^3-x-2\) บน \([1,2]\)
เริ่ม \(f(1)=-2\), \(f(2)=4\), จึงมีรากในช่วงนี้
| Iteration | \(a\) | \(b\) | \(p\) | \(f(p)\) | ช่วงใหม่ |
|---|---|---|---|---|---|
| 1 | 1 | 2 | 1.5 | -0.125 | \([1.5,2]\) |
| 2 | 1.5 | 2 | 1.75 | 1.609375 | \([1.5,1.75]\) |
| 3 | 1.5 | 1.75 | 1.625 | 0.666016 | \([1.5,1.625]\) |
สไลด์สรุปรากประมาณ \(x\approx1.521\) หลังทำต่อหลายรอบ
Assignment Week 3: \(f(x)=\cos x-x\) บน \([0,1]\)
\(f(0)=1\), \(f(1)=\cos1-1<0\), ใช้ Bisection ได้
| Iteration | \(a\) | \(b\) | \(p\) | \(f(p)\) | ช่วงใหม่ |
|---|---|---|---|---|---|
| 1 | 0 | 1 | 0.5 | 0.37758 | \([0.5,1]\) |
| 2 | 0.5 | 1 | 0.75 | -0.01831 | \([0.5,0.75]\) |
| 3 | 0.5 | 0.75 | 0.625 | 0.18596 | \([0.625,0.75]\) |
Newton-Raphson Method
Lecture example
\(f(x)=x^3-x-1,\ x_0=1.5\)
\(f'(x)=3x^2-1\)
หลัง 3 iterations ได้ \(x_3\approx1.324718\)
Assignment Week 3
\(f(x)=\cos x-x,\ x_0=0.5\)
\(f'(x)=-\sin x-1\)
\(x_1=0.755222,\ x_2=0.739142,\ x_3=0.739085\)
Mockup Q2
\(f(x)=x^2-6,\ p_0=1\)
\(p_1=3.5,\ p_2=2.607143\)
Mockup Q3
\(f(x)=x^3-2x-1,\ x_0=1.5\)
หลังประมาณ 5 iterations ได้รากใกล้ \(1.61803\)
Secant Method
Mockup Q4
\(f(x)=x^2-3,\ p_0=3,\ p_1=2\)
\(p_2=1.8,\ p_3\approx1.73684\)
Mockup Q5
\(f(x)=x^3-\cos x,\ x_0=0,\ x_1=1\)
หลัง 5 iterations ได้ \(x\approx0.865473\)
Assignment 2 ข้อ 2
\(f(x)=x^3-2x-5,\ x_0=2,\ x_1=1\)
ลู่เข้าใกล้ \(x\approx2.094551\)
Assignment 2 ข้อ 1: จุดพลาดสำคัญ
\(f(x)=x^4-x-6,\ x_0=0,\ x_1=1\)
\(f(0)=-6,\ f(1)=-6\) ดังนั้น denominator \(=0\). Secant เริ่มด้วยคู่นี้ไม่ได้ ต้องแจ้งว่าเลือกค่าเริ่มใหม่
Fixed-point และ False Position: ในสไลด์เป็นภาพรวม แต่ควรรู้กันพลาด
Fixed-point Iteration
เริ่มจากสมการ \(f(x)=0\) แล้วจัดรูปใหม่เป็น
\[ x=g(x) \]จากนั้นวนซ้ำด้วยสูตร
\[ x_{n+1}=g(x_n) \]ตัวอย่างการแปลงรูป: ถ้า \(x^2-x-2=0\) อาจจัดเป็น \(x=\sqrt{x+2}\), ดังนั้น \(g(x)=\sqrt{x+2}\)
เงื่อนไขสำคัญ: จะลู่เข้าดีถ้าใกล้รากมี \(|g'(x)|<1\). ถ้า \(|g'(x)|>1\) มักแกว่งหรือหนีออกจากราก
False Position หรือ Regula Falsi
ใช้ช่วงเหมือน Bisection คือต้องมี
\[ f(a)f(b)<0 \]แต่แทนที่จะใช้ midpoint จะลากเส้นตรงผ่าน \((a,f(a))\) และ \((b,f(b))\), แล้วเอาจุดตัดแกน \(x\) เป็น \(p\)
\[ p=b-\frac{f(b)(b-a)}{f(b)-f(a)} \]หลังได้ \(p\), เลือกช่วงใหม่ด้วยหลักเดียวกับ Bisection: เก็บฝั่งที่ยังเปลี่ยนเครื่องหมาย
ข้อควรระวัง: บางกรณีปลายช่วงด้านหนึ่งค้างอยู่นาน ทำให้ลู่เข้าช้ากว่าที่คิด
3. Interpolation
Interpolation คือการประมาณค่าที่อยู่ “ระหว่าง” จุดข้อมูลที่รู้แล้ว ต่างจาก extrapolation ที่เดานอกช่วงข้อมูล การสอบมักให้จุดข้อมูลแล้วถามหาค่าที่ \(x\) หนึ่ง หรือให้สร้าง polynomial
Linear Interpolation
Population example
ปี 2000: \(1000\), ปี 2010: \(1500\). ปี 2005 คือกึ่งกลาง
\[ y(2005)=1000+\frac{1500-1000}{2010-2000}(5)=1250 \]
Fuel efficiency example
\((50,15)\), \((100,10)\), ต้องการ \(x=75\)
\[ y(75)=15+\frac{10-15}{100-50}(25)=12.5 \]
Lagrange Interpolation
ตัวอย่างสไลด์: จุด \((1,2),(2,3),(4,1)\)
สร้าง quadratic polynomial ผ่านทั้ง 3 จุด:
\[ P(x)=2L_0(x)+3L_1(x)+1L_2(x) \] \[ P(x)=-\frac{2}{3}x^2+3x-\frac{1}{3} \]เช็คเร็ว: \(P(1)=2,\ P(2)=3,\ P(4)=1\) ครบทุกจุด
ตัวอย่างอุณหภูมิ: 9 AM = 15, 12 PM = 21, 3 PM = 18, หา 1 PM
ใช้ \(x=13\) กับจุด \((9,15),(12,21),(15,18)\)
\[ P(13)=15\frac{(13-12)(13-15)}{(9-12)(9-15)} +21\frac{(13-9)(13-15)}{(12-9)(12-15)} +18\frac{(13-9)(13-12)}{(15-9)(15-12)}=21 \]ดังนั้นอุณหภูมิประมาณ \(21^\circ C\)
4. Cubic Spline และ Natural Cubic Spline
ถ้าใช้ polynomial ดีกรีสูงผ่านหลายจุด กราฟอาจแกว่งแรง Cubic spline จึงแบ่งช่วงย่อย แล้วใช้ cubic polynomial คนละตัว แต่บังคับให้ต่อกันเนียนที่ node
เงื่อนไขที่ spline ต้องผ่าน
1. Interpolation
\(S_j(x_j)=f(x_j)\) และ \(S_j(x_{j+1})=f(x_{j+1})\)
2. First derivative
\(S'_j(x_{j+1})=S'_{j+1}(x_{j+1})\)
3. Second derivative
\(S''_j(x_{j+1})=S''_{j+1}(x_{j+1})\)
สูตรคำนวณแบบ coefficient
Lecture example: natural spline ผ่าน \((1,2),(2,3),(3,5)\)
ผลลัพธ์จากสไลด์:
\[ S(x)= \begin{cases} 2+\frac{3}{4}(x-1)+\frac{1}{4}(x-1)^3, & 1\le x\le2\\ 3+\frac{3}{2}(x-2)+\frac{3}{4}(x-2)^2-\frac{1}{4}(x-2)^3, & 2\le x\le3 \end{cases} \]เช็ค natural: \(S''(1)=0\), \(S''(3)=0\), และที่ \(x=2\) ค่า, slope, curvature ต่อกัน
Assignment Week 6 ข้อ 1: \(f(0)=0,\ f(1)=1,\ f(2)=2\)
ข้อมูลเป็นเส้นตรง \(y=x\). Natural cubic spline ที่ง่ายที่สุดคือ
\[ S(x)=x \]หรือเขียนแยกช่วงได้เป็น \(S_0(x)=x,\ 0\le x\le1\) และ \(S_1(x)=x,\ 1\le x\le2\)
Assignment Week 6 ข้อ 2: หา \(b,c,d\)
โจทย์ให้
\[ S(x)= \begin{cases} S_0(x)=1+2x-x^3, & 0\le x<1\\ S_1(x)=2+b(x-1)+c(x-1)^2+d(x-1)^3, & 1\le x\le2 \end{cases} \]ใช้ความต่อเนื่องที่ \(x=1\):
\[ S'_0(x)=2-3x^2 \Rightarrow S'_0(1)=-1=b \] \[ S''_0(x)=-6x \Rightarrow S''_0(1)=-6=2c \Rightarrow c=-3 \]ใช้ natural endpoint ที่ \(x=2\). เมื่อ \(t=x-1\), \(S''_1(x)=2c+6dt\). ที่ \(x=2\), \(t=1\):
\[ 2(-3)+6d=0 \Rightarrow d=1 \]คำตอบ: \(b=-1,\ c=-3,\ d=1\)
5. Numerical Integration
Numerical integration ใช้ประมาณ \(\int_a^b f(x)\,dx\) เมื่อหาปริพันธ์ exact ยาก หรือมีแค่ค่าจากตาราง จุดหลักคือแบ่งช่วงเป็น \(n\) ส่วน ความกว้าง \(h=\frac{b-a}{n}\)
| Rule | สูตร | เงื่อนไข | จากสไลด์ |
|---|---|---|---|
| Rectangle | \(\displaystyle \int_a^b f(x)dx\approx h\sum_{i=0}^{n-1}f(x_i)\) | ใช้ left endpoints ในสไลด์ | \(\int_0^2x^2dx,\ n=2\Rightarrow1.0\) |
| Composite Trapezoidal | \(\displaystyle T_n=\frac{h}{2}\left[f(x_0)+2\sum_{i=1}^{n-1}f(x_i)+f(x_n)\right]\) | ใช้ได้กับ \(n\) ใด ๆ | \(\int_0^2e^{-x^2}dx,\ n=4\Rightarrow0.8806\) |
| Simpson 1/3 | \(\displaystyle \frac{h}{3}[f(x_0)+4f(x_1)+f(x_2)]\) | ต้องมี 2 subintervals ต่อหนึ่งชุด; composite ต้อง \(n\) เป็นเลขคู่ | \(\int_1^2\ln x\,dx\Rightarrow0.3858\) |
| Simpson 3/8 | \(\displaystyle \frac{3h}{8}[f(x_0)+3f(x_1)+3f(x_2)+f(x_3)]\) | ต้องมี 3 subintervals ต่อหนึ่งชุด | \(\int_0^3\frac{1}{1+x^2}dx\Rightarrow1.2\) |
Error estimates จากสไลด์
Mockup Q7: Trapezoidal Rule กับ \(\int_0^2(x^2+1)dx,\ n=4\)
\(h=\frac{2-0}{4}=0.5\), nodes คือ \(0,0.5,1.0,1.5,2.0\)
\[ f(x)=x^2+1 \Rightarrow 1,\ 1.25,\ 2,\ 3.25,\ 5 \] \[ T_4=\frac{0.5}{2}[1+2(1.25+2+3.25)+5]=4.75 \]Exact:
\[ \int_0^2(x^2+1)dx=\left[\frac{x^3}{3}+x\right]_0^2=\frac{14}{3}\approx4.6667 \]Absolute error \(=|4.75-4.6667|\approx0.0833\)
6. วิธีทำข้อสอบให้ได้คะแนน
ก่อนใช้สูตร
เขียนเงื่อนไขก่อน เช่น \(f(a)f(b)<0\), \(f'(x)\), \(h=\frac{b-a}{n}\), หรือ \(n\) เป็นเลขคู่สำหรับ Simpson
ระหว่างคำนวณ
ทำตาราง iteration: ค่าเดิม, ค่าใหม่, \(f(x)\), และ decision ว่าช่วงใหม่คืออะไร
ก่อนส่ง
ตอบด้วยหน่วย, จำนวน iteration ตามโจทย์, และ absolute/relative error ถ้าโจทย์ถาม
สูตรที่ควรจำก่อนเข้าห้องสอบ
เช็คครบ 3 รอบ
รอบที่ 1: Coverage จาก PDF
ครบError analysis, nonlinear equations, bisection, Newton-Raphson, secant, fixed-point, false position, linear interpolation, Lagrange, cubic spline, natural spline, rectangle, trapezoidal, Simpson 1/3, Simpson 3/8
ครบAssignment 1, Assignment 2, Week 3 practice, Week 6 practice, Mockup Midterm เฉลย
รอบที่ 2: สูตรและสัญลักษณ์
ครบทุกสูตรคณิตนำเสนอด้วย LaTeX ตามที่ขอ
ครบจุดที่ extraction เพี้ยนถูกตรวจจากภาพ render ของ PDF แล้ว: Assignment 2, Week 3, Week 6
รอบที่ 3: อ่านแล้วทำข้อสอบได้ไหม
ครบมีขั้นตอนทำคะแนน, ตัวอย่างจากสไลด์, คำตอบตรวจตัวเอง, และจุดพลาดสำคัญ
ครบมี Mermaid diagram สำหรับ flow การอ่านและ Bisection
แหล่งอ้างอิงในเครื่อง
- Assignment/Assignment 1 Errors.pdf
- Assignment/Assignment 2.pdf
- Assignment/Assignment for the student to practice (Week 3) (2).pdf
- Assignment/Assignment for the student to practice (Week 6).pdf
- Assignment/Quiz 2 (Mockup Midterm) เฉลย.pdf
- Lecture/Numerical Analysis (Week 2_Student) (1).pdf
- Lecture/Numerical Analysis_Slide_Week 03 - Student (1).pdf
- Lecture/Week 5 Numerical Analysis_Teacher (Edit Version) (1).pdf
- Lecture/Week 6 Numerical Analysis (Student) (1).pdf
- Lecture/Week 7 Numerical Analysis - Student (2).pdf