บทที่ 2

การหารากของสมการ f (x) = 0
2.1 บทนำ
การหาคำตอบหรือรากของสมการ (Roots of Equations) เป็นปัญหาที่มักจะพบในปัญหาทาง
คณิตศาสตร์ประยุกต์ วิทยาศาสตร์สาขาต่างๆ และทางวิศวกรรม ส่วนใหญ่แล้ว หากมิใช่ปัญหา
ที่ เกี่ยวข้องกับ สมการเชิง อนุพันธ์ (ซึ่ง ต้องใช้ เทคนิค พิเศษในการแก้ สมการ) ก็ จะเป็น ปัญหาที่
เกี่ยวกับการหารากของสมการเชิงพีชคณิต (Algebraic Equations) ที่มีโอกาสเป็นได้ทั้งสมการ
พีชคณิตแบบเชิงเส้นและไม่เชิงเส้น (Linear and Nonlinear Equations) รูปที่ 2.1 แสดงตัวอย่าง
สมการพีชคณิตแบบเชิงเส้น f (x) และไม่เชิงเส้น g(x)
y
g (x)

y
o

x

f (x)

o

x

รูปที่ 2.1: ตัวอย่างสมการพีชคณิตแบบเชิงเส้น f (x) และไม่เชิงเส้น g(x).
ในบทนี้ เราจะศึกษารายละเอียดของสมการพีชคณิตแบบไม่ไม่เชิงเส้น และเรียนรู้เทคนิค
ต่างๆ ที่นำมาใช้ในการหารากของสมการแบบไม่เชิงเส้นเหล่านี้ โดยวิธีประมาณ ก่อนที่จะศึกษา

บทที่ 2. การหารากของสมการ F (X) = 0

รายละเอียดของเทคนิคเหล่านี้ ผู้เขียนขอยกตัวอย่างของปัญหาที่ต้องคำนวณหารากของสมการ
เพื่อให้ผู้อ่านได้มองเห็นภาพรวมว่า เราต้องการที่จะทำอะไรในบทนี้
ตัวอย่าง 2.1.1 ตามหลักการที่ค้นพบโดยอาร์คิมิดีส เมื่อหย่อนวัตถุที่มีความหนาแน่นน้อยกว่า
น้ำลงไปในน้ำ น้ำหนักของวัตถุนั้นๆ จะเท่ากับน้ำหนักของน้ำที่ถูกของแข็งแทนที่ หากเราหย่อน
วัตถุทรงกลมที่มีรัศมี 1 หน่วย ระยะทางที่วัดจากจุดต่ำสุดของวัตถุทรงกลมถึงระดับน้ำ (x) จะ
สัมพันธ์กับความหนาแน่นสัมพัทธ์ ρr = ρs /ρw เมื่อกำหนดให้ ρs และ ρw คือความหนาแน่น
ของวัตถุทรงกลมและน้ำตามลำดับ (ดูรูปที่ 2.2 ประกอบ)
R 1
x

รูปที่ 2.2: วัตถุทรงกลมรัศมี R = 1 ซึ่งมีส่วนที่จมลงไปในน้ำลึก x.
ปริมาตรนี้ สามารถหาได้ โดยใช้
วิธี Disc Method
(ดูรูปประกอบ)
R
ซึ่ง V = π ab (1 − y2 )dy
เมื่อกำหนดให้ a = −R และ
b = −R + h
y
x2  y2

R2
y 

( R  h)

x
h

dy
y 

R

ปริมาตรส่วนที่จมของวัตถุทรงกลม คือ
µ

x3
V =π x−
+ x2 R − xR2
3

ซึ่งหาได้จากวิธีการ Disc Method หากเราต้องการหาว่า วัตถุทรงกลมนี้จะจมลงไปในน้ำเป็น
ระยะทางเท่าใด นั่นคือ เราต้องแก้สมการที่แสดงความสัมพันธ์ระหว่างน้ำหนักของวัตถุทรงกลม
และน้ำหนักของน้ำที่มีปริมาตรเท่ากับส่วนที่จม นั่นคือ
µ

x3
ρw × π x −
+ x2 R − xR2
3

4
= ρb × πR3
3

เมื่อแทนค่า R = 1 ในสมการข้างต้น เราสามารถเขียนได้ใหม่เป็น
x3 − 3x2 + 4ρr = 0

(2.1)

หากเราทราบค่าความหนาแน่นของวัตถุและน้ำ เราก็สามารถคำนวณหาค่า x ได้ ซึ่งควรจะมีค่า
อยู่ในช่วง x ∈ [0, 2] แต่ปัญหาก็คือว่า เราจะประมาณหาค่า x ในสมการ (2.1) ได้โดยใช้วิธีใด?
ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.1. บทนำ

กำหนดให้ f เป็นฟังก์ชันของจำนวนจริง หรือจำนวนจินตภาพ ที่อาจมีค่าเป็นได้ทั้งจำนวนจริง
หรือจินตภาพ และถ้ามีปริมาณ r ซึ่งเป็นจำนวนจริงหรือจำนวนจินตภาพที่ทำให้
f (r) = 0

เราจะเรียกปริมาณ r นี้ว่าเป็น รากของสมการ หรือค่าศูนย์ของฟังก์ชัน f (Zero or zeros of a
function f ) ยกตัวอย่างเช่น ฟังก์ชัน f (x) = 2x − 4 มีค่าเป็นศูนย์ที่ r = 2 และ ฟังก์ชัน
g(x) = x2 − 3x + 2 มีค่า r = 1, 2 ที่ทำให้ฟังก์ชันนี้เป็นศูนย์ เพราะฉะนั้น ปัญหาที่แสดงไว้
ในสมการ (2.1) จึงเป็นตัวอย่างที่เห็นได้ชัดถึงความสำคัญของการหารากของสมการพีชคณิต
ในบทนี้เราจะศึกษาลงไปในรายละเอียดของระเบียบและวิธีการทำซ้ำ (Iterative Method)
ที่ นำมาใช้ ในการหารากของสมการพีชคณิต วิธีการทำซ้ำ นี้ สามารถกระทำได้ โดย คำนวณหา
ค่าตัวเลขเป็นรากของสมการหลายๆ ครั้ง จนกระทั่งค่าตัวเลขนั้นๆ เข้าใกล้รากที่แท้จริงของมัน
ซึ่งวิธีการทำซ้ำนี้ เราต้องคำนึงถึง
1. เราจะใช้ค่าไหนเป็นค่าเริ่มต้นในการหารากของสมการ
2. วิธีการทำซ้ำที่เลือกใช้ในการหารากนั้น จะลู่เข้าสู่รากที่แท้จริงหรือไม่ ถ้าใช่ แล้วกระบวนการ
คำนวณซ้ำๆ นี้ จะให้คำตอบกับเราช้าหรือว่าเร็ว
3. จะต้องทำการคำนวณซ้ำๆ แบบนี้กี่ครั้ง จึงจะหยุด
ตัวอย่าง 2.1.2 (การหารากที่สองของ m) วิธีการหารากที่ สองของจำนวนจริง บวก
สามารถเขียนเป็นขั้นตอนๆ ได้ดังนี้
1. กำหนดให้ คำตอบ (รากที่สอง) คือ x =

m

ใดๆ

m

2. ยกกำลังสองทั้งสองข้าง จะได้ x2 = m
3. ย้ายข้างจากขวามาซ้าย จะได้ x2 − m = 0 นั่นคือ เราต้องการแก้สมการนี้เพื่อหาค่า x

ถ้า เรากำหนดให้ xn เป็น ค่า ประมาณครั้ง ที่ n ของ m เพราะฉะนั้น จะมี ค่า x∗n ที่ ทำให้
x∗n = m/xn หรือ xn × x∗n = m และเนื่องจากเราไม่รู้ว่า่ระหว่าง xn และ x∗n อันไหนจะเป็น
ตัวประมาณค่ารากที่สองของ m ที่ดีกว่ากัน เพราะฉะนั้น เราจึงใช้ค่าเฉลี่ยเป็นตัวประมาณของ
การคำนวณครั้งต่อไป นั่นก็คือ
xn+1 =

หรือ
xn+1

DRAFT

1
=
2

1
(xn + x∗n )
2

µ

m
xn +
xn

(2.2)

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

ถ้า กำหนดให้ x0 เป็น ค่า เริ่มต้น ของการประมาณ ความสัมพันธ์ ที่ แสดงในสมการ (2.2) เป็น
ตัวอย่างของการคำนวณแบบทำซ้ำชนิดหนึ่งที่ใช้ในการหารากที่สองของจำนวนจริงบวกใดๆ
ปัญหา: จงเขียนโปรแกรมคอมพิวเตอร์แก้ปัญหาดังแสดงในสมการ (2.2) เมื่อกำหนดให้ m =
2 และค่าเริ่มต้น x0 = 5 และให้ใช้โปรแกรมนี้หาค่าของ x10 หรือ การประมาณครั้งที่ 10 และ

เปรียบเทียบค่าที่ได้กับค่าจริง ( 2 ≈ 1.41421 . . .)

2.1.1 การหาจุดตัดของเส้นโค้ง
การหาจุดตัดกันของเส้นโค้งสองเส้น ก็เป็นตัวอย่างหนึ่งของการหารากของสมการ ถ้ากำหนดให้
ฟังก์ชัน y = f (x) และ y = g(x) เป็นฟังก์ชันจำนวนจริงต่อเนื่องของเส้นโค้งสองเส้น การหา
จุดตัดของเส้นโค้งสองเส้นนี้ คือการหาค่า x = r ที่ทำให้
f (r) = g(r)

หรือ
f (r) − g(r) = 0

นั่นคือ การหาจุดตัดกันของเส้นโค้งสองเส้นที่มีฟังก์ชันเป็น y = f (x) และ y = g(x) นั่นก็คือ
การหาค่าศูนย์ของฟังชั่นก์ h(x) = f (x) − g(x) นั่นเอง

2.2

วิธีแบ่งครึ่งช่วง

สมมุติใหั f (x) ฟังก์ชันต่อเนื่องที่ค่าของมันมีการเปลี่ยนเครื่องหมายจากบวกไปลบ (หรือลบไป
บวก) ในช่วง [a, b] ดังนั้น จาก Intermediate Value Theorem จะได้ว่า ค่าของฟังก์ชัน f จะ
ต้องเป็นศูนย์อย่างน้อยหนึ่งครั้งในช่วง [a, b] ฉะนั้น ถ้าเราสามารถกำหนดช่วงใน [a, b] ให้เล็ก
ลงไปอีกเรื่อยๆ ซึ่งช่วงเล็กๆ นี้ยังคงมีค่า x ที่ทำให้ฟังก์ชัน f มีค่าเป็นศูนย์ หรือกล่าวได้ว่า ถ้า
f (a)f (b) < 0

นั่นคือ ฟังก์ชัน y = f (x) จะต้องตัดแกน x ณ ค่าใดค่าหนึ่งในช่วง [a, b] (ดูรูปที่ 2.3 ประกอบ)
หรือกล่าวอีกอย่างหนึ่งได้ว่า จะต้องมีค่า r ∈ [a, b] ที่ทำให้ f (r) = 0 แต่ปัญหาคือ จะหาค่า r
ได้อย่างไรในช่วงนั้นๆ
วิธีที่ง่ายที่สุด ก็คงจะเป็นการใช้ค่าเฉลี่ย c0 = (a + b)/2 และใช้ค่า c0 นี้ คำนวณหาค่าของ
ฟังก์ชัน f ซึ่งคำตอบที่ได้ สามารถแบ่งออกเป็นสองกรณี
ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.2. วิธีแบ่งครึ่งช่วง

y
f (x)
f (a)

a

b

x

f (b)

รูปที่ 2.3: Intermediate Value Theorem ของฟังก์ชัน f (x) ที่มี f (a) > 0 และ f (b) < 0.
1. ถ้า

f (c0 ) = 0
r = c0 นั่นเอง

นั่นคือเราหาจุดตัดแกน x ได้พอดี ซึ่งหมายความว่ารากของสมการคือ

2. ถ้า

f (c0 ) 6= 0 แสดงว่า c0 ยังไม่ใช่รากของสมการ
f (c0 )f (b) < 0 (กรณีใดกรณีหนึ่งเท่านั้น)

และ

f (a)f (c0 ) < 0

หรือไม่ก็

ในกรณี ที่ สองนี้ เราสามารถสรุป ได้ว่า รากของสมการจะอยู่ ในช่วงใดช่วงหนึ่ง ระหว่าง [a, c0 ]
หรือไม่ก็ [c0 , b] ทั้งนี้ ไม่ว่าจะเป็นกรณีใด อย่างน้อยเราก็สามารถระบุช่วง [a, b] ที่มีรากของ
สมการลงมาได้ครึ่งหนึ่ง ถ้าเราแบ่งครึ่งช่วงแบบนี้ไปเรื่อยๆ เราก็จะได้ช่วงที่เล็กลงไปเรื่อยๆ ถ้า
แบ่งครึ่งช่วงแบบนี้ซ้ำกันหลายๆ ครั้ง เราก็จะได้ ค่ากลางของช่วงที่เปลี่ยนไปเรื่อยๆ เช่นกัน ซึ่ง
c0 , c1 , c2 , . . . จะลู่เข้าสู่รากของสมการ นั่นคือ
lim cn = r

n→∞

โปรแกรม MATLAB (เฉพาะส่วนที่ สำคัญ) ที่ ใช้คำนวณหารากของสมการโดยวิธีแบ่ง ช่วง
สามารถเขียนได้ดังแสดงไว้ข้างล่างนี้ ในการคำนวณ โปรแกรมนี้ทำการคำนวณโดยการแบ่งครึ่ง
ช่วงไปเรื่อยๆ จนกระทั่ง ความกว้างของช่วงเล็กกว่าความคลาดเคลื่อนยินยอม (Tolerance) ที่
กำหนดให้หรือค่า delta จึงจะหยุดคำนวณ
while abs(a-b) > delta
if f(a)*f((a+b)/2) < 0
b = (a+b)/2;

DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0
else
a = (a+b)/2;
end
end
root = (a+b)/2;

ปัญหา: จงใช้โปรแกรม MATLAB ที่เขียนขึ้นมา เพื่อหารากของสมการ โดยวิธีแบ่งครึ่งช่วง
แก้สมการหาค่าของ x ในสมการ (2.1) เมื่อกำหนดให้ ความหนาแน่นของวัตถุทรงกลมมีค่า
เป็น 1/3 ของความหนาแน่นของน้ำ หรือ ρr = 1/3

2.2.1 การลู่เข้าของวิธีแบ่งครึ่งช่วง
ในหัวข้อนี้ เราจะศึกษาการลู่เข้าของวิธีแบ่งครึ่งช่วง (Convergence of the Bisection Method)
พิจารณาช่วงปิด [an , bn ] ของการทำซ้ำครั้งที่ n ของวิธีแบ่งครึ่งช่วง และเรารู้ว่าช่วง [an , bn ]
สามารถหาได้จากการแบ่งครึ่งช่วง [an−1 , bn−1 ] ดังนั้น ถ้ากำหนดให้ cn = (an + bn )/2 เรา
จะได้
1
1
1
|cn − r| ≤ (bn − an ) = (bn−1 − an−1 ) = · · · = n+1 (b0 − a0 )
2
4
2

(2.3)

เมื่อ r คือรากของสมการที่อยู่ในช่วง [an , bn ] และช่วง [a0 , b0 ] = [a, b] เป็นช่วงเริ่มต้นที่ใช้ใน
การหาราก หรือกล่าวอีกอย่างหนึ่งได้ว่า ถ้าเราใช้วิธีแบ่งครึ่งช่วง ในการหารากของฟังก์ชัน
f ในช่วงเริ่มต้น [a, b] ที่มี f (a)f (b) < 0 ดังนั้น ในการแบ่งครึ่งช่วงครั้งที่ n รากที่
ประมาณได้จะมีค่าคลาดเคลื่อนอย่างมากที่สุดคือ (b − a)/2n+1
สมการ (2.3) เป็นตัวอย่างหนึ่งของการลู่เข้าแบบเส้นตรง (Linear Convergence) สำหรับ
อนุกรม xn ที่จะมีการลู่เข้าแบบเส้นตรงเข้าหาค่า r (รากของสมการ) ก็ต่อเมื่อมีค่าคงที่ C ที่อยู่
ในช่วง (0, 1] ที่ทำให้
|xn+1 − r| ≤ C|xn − r|

(2.4)

|xn+1 − r| ≤ C|xn − r| ≤ C 2 |xn−1 − r| ≤ · · · ≤ C n+1 |x0 − r|

(2.5)

สำหรับทุกๆ ค่า n ≥ 0 ดังนั้น

นั่นคือ ผลจากการลู่เข้าแบบเส้นตรง จะสรุปได้ว่า
|xn − r| ≤ AC n ,

C ∈ (0, 1]

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

(2.6)
DRAFT

2.3. วิธีการประมาณค่่าในช่วงเชิงเส้น (METHOD OF LINEAR INTERPOLATION)

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

|r − cn | < ε
n>

จงแสดงให้เห็นว่า

n

จะต้องเป็นไปตามสมการ

log(b − a) − log(2ε)
log 2

(ข) ถ้ากำหนดให้ a = 0.1 และ b = 1.0 จะต้องแบ่งครึ่งช่วงกี่ครั้งจึงจะได้รากของสมการ
ที่มีค่าคลาดเคลื่อนยินยอม หรือ Tolerance ไม่เกิน 12 × 10−8

2.3 วิธีการประมาณค่่าในช่วงเชิงเส้น (Method of linear
interpolation)
ทั่วไปวิธี นี้ เป็น ที่ รู้จัก ในชื่อ ว่า regula falsi method หรือ method of false position โดย
วิธีการหารากนี้จะขึ้นอยู่กับการประมาณค่าในช่วงด้วยเส้นตรง สำหรับวิธีนี้คล้ายวิธีแบ่งครึ่งช่วง
แตกต่างตรงที่การหาช่วงที่มีรากอยู่จะได้จากการหาจุดตัดของเส้นตรงที่เชื่อมระหว่างจุดสองจุด
ของฟังก์ชัน f (x) กับแกน X นั่นคือถ้า [a, b] เป็นช่วงที่มีรากอยู่ ให้ x1 = a และ x2 = b
ดังนั้นเส้นตรงที่เชื่อมจุด (x1 , f (x1 )) (x1 , f (x1 )) คือ
f (x1 ) − f (x2 )
y − f (x2 )
=
x1 − x2
x − x1

(2.7)

ดังนั้นจุด x3 คือจุดทีี่เส้นตรงตัดกับแกน X จะหาได้จาก การกำหนดให้ y = 0 นั่นคือ
f (x1 ) − f (x2 )
0 − f (x2 )
=
x1 − x2
x3 − x1

(2.8)

ทำให้ได้ค่าประมาณของรากตำแหน่งใหม่คือ
x3 = x2 − f (x2 )

(x2 − x1 )
(f (x2 ) − f (x1 ))

จากนั้นเราสามารถตรวจสอบได้ว่ารากของสมการจะอยู่ในช่วง [x1 , x3 ] หรือ [x3 , x2 ] เราก็จะได้
ช่วงที่แคบลงและทำซ้ำไปเรื่อยๆ เราสามารถเขียนสูตรในรูปทั่วไปได้ดังนี้
xn+1 = xn − f (xn )

DRAFT

(xn − xn−1 )
(f (xn ) − f (xn−1 ))

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

และจะหยุดการทำซ้ำเมื่อ

|f (xn )| ≤ ε หริิือ

|xn+1 − xn | ≤ ε

ข้อสังเกต จุดปลายของการทำซ้ำดัวยวิธีการประมาณค่าในช่วงเชิงเส้นนี้ จุดปลายของช่วงด้าน
ใดด้านหนึ่งจะอยู่คงที่ (stagnation point) ถ้าจะให้การทำซ้ำลู่เข้าสู่รากเร็วขึ้นได้ เช่น ถ้า x1
x +x
เป็นจุดปลายด้านที่อยู่คงที่ สามารถกำหนดให้ xn+1 = 1 n และการทำซ้ำด้วยวิธีนี้ ลำดับ
2
x1 , x2 , x3 , . . . ก็จะลู่เข้าสู่ราก rื แน่นอน

2.4

วิธีซีแคนต์ (Secant method)

การหารากของสมการโดยวิธีนี้ จะคล้ายกันกับวิธีของการประมาณค่าในช่วงเชิงเส้น เพราะค่า
ประมาณของรากได้มาจากการประมาณค่าราก xn+1 ด้วยจุดตัดของเส้นตรงที่ลากผ่านจุดสอง
จุดคือ (xn−1 , f (xn−1 )) และ (xn , f (xn )) กับแกน X และวิธีนี้ได้ชื่อมากจากเส้นผ่านจุด
(secant line) นั่นเอง (ดูรูปที่ 2.4 ประกอบคำอธิบาย)
y − f (xn )
f (xn − xn−1 )
=
x − xn
xn − xn−1

สมการเส้นตรง Secant นี้จะตัดแกน x ที่จุด (xn+1 , 0) นั่นคือ ค่าประมาณใหม่ xn+1 จะหาได้
จากความสัมพันธ์ต่อไปนี้
xn+1 = xn −

(xn − xn−1 )f (xn )
f (xn ) − f (xn−1 )

(2.9)

การหารากโดยวิธีซีแคนต์นี้ ต้องการจุดเริ่มต้นสองจุดเพื่อใช้ในการคำนวณหารากครั้งต่อไป
คล้ายวิธีการประมาณค่าในช่วงเชิงเส้น แต่ว่าวิธีนี้ในการทำซ้ำค่าประมาณอาจจะไม่ลู่เข้าสู่คำตอบ
เสมอไป เมื่อเทียบกับวิธีการประมาณค่าในช่วงเชิงเส้นนั้นจะรับประกันว่าในการทำซ้ำจะลู่เข้าสู่
รากเสมอ แต่ถ้าวิธีซีแคนต์นี้ถ้าลู่เข้า อัตราการลู่เข้าจะเร็วกว่าวิธีการประมาณค่าในช่วงเชิงเส้น
การวิเคราะห์การลู่เข้าของวิธี Secant นั้นค่อนข้างยุ่งยาก ผู้เขียนขอยกสูตรที่ใช้ในการหา
ค่าคลาดเคลื่อน ของวิธีนี้มาไว้ ณ ที่นี้ หากผู้อ่านต้องการศึกษาเพิ่มเติม ให้ดูรายละเอียดได้ใน [1]
สมการ (2.10) แสดงค่าคลาดเคลื่อนของวิธี Secant
en+1 =

en en−1 f 00 (ξn )
2 f 0 (ζn )

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

(2.10)
DRAFT

2.5. วิธีของนิวตัน

y
f ( x)
Á­o
œ˜¦Š Secant

r xn 1

xn 1 xn

x

รูปที่ 2.4: กราฟแสดงการคำนวณการหารากโดยวิธี Secant

2.5 วิธีของนิวตัน
วิธีการหารากของนิวตันหรือ Newton’s Method สามารถนำมาใช้ในการหาค่าศูนย์ของฟังก์ชัน
f โดยการใช้อนุกรมของการทำให้เป็นเส้นตรง (Sequence of Linearization) จะสามารถเขียน
ได้ดังสมการ (2.11)
xn+1 = xn −

f (xn )
f 0 (xn )

(2.11)

สำหรับ n = 0, 1, 2, . . . และขั้นตอนที่สำคัญขั้นหนึ่ง ก็คือการเลือกค่าเริ่มต้น x0 เพราะถ้าเลือก
ค่าเริ่มต้นไม่เหมาะสม ก็อาจจะทำให้ไม่ได้รับคำตอบหรืออนุกรมไม่ลู่เข้านั่นเอง

2.5.1 การหาที่มาของวิธีของนิวตันโดยวิธีเรขาคณิต
ถ้ากราฟของฟังก์ชัน y = f (x) ตัดแกน x ที่ x = r (ดูรูปที่ 2.5 ประกอบคำอธิบาย) กล่าวคือ
รากของสมการอยู่ที่ x = r นั่นเอง ถ้าเราให้ xn เป็นค่าประมาณของ r ครั้งที่ n (ของการทำซ้ำ
หลายๆ ครั้ง) ถ้าเราต้องการหาค่าประมาณใหม่ (ที่ใกล้ค่า r มากกว่า) หรือ xn+1 เราจะสามารถ
หาค่า xn+1 ได้โดยวิธีดังต่อไปนี้
• ลากเส้นสัมผัสบนกราฟของ y = f (x) ณ จุด (xn , f (xn ))
• หาจุดตัดแกน x ของเส้นสัมผัส และจุดตัดนั้นคือค่าประมาณใหม่ xn+1
หากจะเขียนวิธีการหาค่าประมาณ xn+1 ให้เป็นสมการทางคณิตศาสตร์ดังที่แสดงไว้ในสมการ
(2.11) จะต้องทำดังนี้
DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

y
f (x)
Slope

f c( xn )

r

xn 1 xn

x

รูปที่ 2.5: การคำนวณหารากโดยวิธีของนิวตัน (Newton’s Method).
1. ค่าความชันของเส้นสัมผัสบนกราฟ y = f (x) ณ จุด (xn , f (xn )) คือ m = f 0 (xn )
และจากสมการเส้นตรงทั่วไป ถ้าเรารู้จุดพิกัดและความชัน เราสามารถหาสมการเส้นตรง
นั้นๆ ได้ และสมการเส้นตรงที่ผ่านจุด (xn , f (xn )) และมีความชันเป็น f 0 (xn ) คือ
y = f (xn ) + (x − xn )f 0 (xn )

2. ขั้นตอนต่อไปคือหาจุดตัดแกน x ของสมการเส้นตรงนั้นๆ จากสมการข้างต้น ถ้าเราให้
y = 0 (ซึ่งก็คือจุดตัดแกน x นั่นเอง) เราจะได้สูตรของค่า xn+1 คือ
0 = f (xn ) + (xn+1 − xn )f 0 (xn )

เมื่อจัดรูปใหม่ เราจะได้สมการการหารากโดยวิธีของนิวตันดังแสดงไว้แล้วในสมการ (2.11)
xn+1 = xn −

f (xn )
f 0 (xn )

2.5.2 การหาที่มาของวิธีของนิวตันโดยวิธีพีชคณิต
นอกจากวิธีทางเรขาคณิตแล้ว เรายังสามารถใช้วิธีการทางพีชคณิตในการหาที่มาของสมการ (2.11)
ได้อีกด้วย ถ้าสมมุติว่า เราให้ค่า xn เป็นค่าประมาณของรากที่ทำให้ฟังก์ชัน f เป็นศูนย์ ซึ่งได้จาก
การคำนวณครั้งที่ n − 1 ค่าคลาดเคลื่อนจากการประมาณ h คือ h = r − xn หรือ r = xn + h
และเนื่องจาก r เป็นค่าที่ทำให้ฟังก์ชันเป็นศูนย์ ดังนั้น
f (xn + h) = 0

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.5. วิธีของนิวตัน

ถ้าเรากระจายอนุกรมเทย์เลอร์ (Taylor Series) ของฟังก์ชันข้างต้นที่ x = xn จะได้
1
f (xn ) + hf 0 (xn ) + h2 f 00 (xn ) + . . . = 0
2

(2.12)

เมื่อแทนค่า xn เข้าไปในสมการข้างบนนี้ เราจะได้สมการพหุนามที่มี h เป็นตัวแปรซึ่งที่ต้องแก้
สมการออกมา (และค่า h ที่ได้ เมื่อนำไปรวมกันกับ xn จะเป็นรากจริงๆ ของสมการ) แต่เนื่องจาก
ความยุ่งยากในการแก้สมการพหุนามที่มีกำลังสูงๆ ดังนั้น เราจะเลือกใช้เฉพาะสองเทอมแรก ซึ่ง
จะได้สมการเส้นตรงธรรมดาที่ใช้ในการหาค่า h นั่นคือ
f (xn ) + hf 0 (xn ) = 0,

หรือ
h=−

f (xn )
f 0 (xn )

เนื่องจากว่าเราตัดสมการ (2.12) ออกเหลือเพียงสองเทอม เพราะฉะนั้น h ที่ได้ จึงเป็นเพียงค่า
ประมาณ ดังนั้น ค่าของ xn + h = xn − f (xn )/f 0 (xn ) จึงเป็นเพียงค่าประมาณของรากจริง
เช่นกัน แต่เราเชื่อว่า ค่า xn + h เป็นค่าประมาณของรากที่ดีกว่า xn ดังนั้น เราจึงให้ xn + h
เป็นค่าประมาณใหม่ เรียกว่า xn+1 หรือ
xn+1 = xn −

f (xn )
f 0 (xn )

ซึ่งก็คือสมการ (2.11) นั่นเอง
ปัญหา: จงแสดงให้เห็นโดยการวาดกราฟว่าสมการต่อไปนี้
f (x) =

π
+ sin(x) − arctan(x)
2

มี จำนวนรากของสมการไม่ จำกัด จำนวน และให้ เขียนวิธีการประมาณหารากของสมการ
ดังกล่าว หรือ f (x) = 0 ด้วยวิธีการของนิวตัน

2.5.3 การหารากที่สองของ 2 โดยวิธีของนิวตัน
เมื่อเขียนสมการการหารากที่สองของ 2 ออกมา นั่นคือเราต้องการหาค่า
x2 − 2 มีค่าเป็นศูนย์ และจากสมการ (2.11) เราจะได้
xn+1

DRAFT

x

ที่ทำให้

f (x) =

x2n − 2
= xn −
2xn

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

f (x)

=

x2 − 2

f 0 (x)

=

2x

บทที่ 2. การหารากของสมการ F (X) = 0

หรือ
xn+1

1
=
2

µ

2
xn +
xn

ซึ่งก็คล้ายกันกับสมการ (2.2) นั่นเอง

2.5.4 Pseudocode ของวิธีของนิวตัน
Pseudocode ของวิธีการหารากของนิวตัน สามารถเขียนได้ดังนี้
procedure Newton(f,f’,x,nmax,epsilon,delta)
integer n,nmax
real x,fx,fp,epsilon,delta
interface external function f, f’
fx = f(x)
output O,x,fx
for n=1 to nmax do
fp = f’(x)
if |fp| < delta then
output "near root"
return
end if
d = fx/fp
x = x - d
fx = f (x)
output n, x, fx
if |d| < epsilon then
output "convergence"
return
end if
end for
end procedure Newton

วิธีใช้โปรแกรมนี้ก็คือ เราจะเดาค่าของ x เป็นค่าเริ่มต้น และจะทำการคำนวณแบบทำซ้ำ
เช่นนี้ไปเรื่อยๆ แต่จำนวนครั้งของการทำซ้ำจะไม่เกิน nmax ครั้ง เวลาจะใช้โปรแกรมนี้ จะต้อง
เขียน subroutine ที่จะทำการคำนวณหาค่า f (x) และ f 0 (x) สำหรับปริมาณ epsilon และ
delta นั้นคือค่าคลาดเคลื่อยินยอมหรือ Tolerance ที่ใช้ในการพิจารณาว่าการคำนวณหารากนี้
สมควรที่จะสิ้นสุดหรือยัง ซึ่งตัวเลขสองตัวนี้จะต้องเลือกใช้ให้ดี ให้สัมพันธ์กันกับเลขนัยสำคัญ
ของเครื่องคอมพิวเตอร์ที่ใช้คำนวณ
ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.6. การหารากของสมการพหุนามโดยวิธีนิวตันร่วมกับวิธีของฮอร์เนอร์

2.6 การหารากของสมการพหุนามโดยวิธีนิวตันร่วมกับวิธี
ของฮอร์เนอร์
ในการหารากของสมการพหุนามโดยใช้วิธีของนิวตัน ต้องมีการคำนวณหาค่าของ
อนุพันธ์ของ f (x) ด้วย
1
c=2
1

1
2

2
6
3

f (x)

และ

3
16
8

19=f(2)

ปัญหา: จงใช้โปรแกรมหารากด้วยวิธีของนิวตันที่เขียนขึ้นมา ใช้แก้สมการหาค่าของ x ใน
ปัญหาวัตถุทรงกลมลอยน้ำ หรือสมการ (2.1) โดยกำหนดให้ ρr = 1/3 และเปรียบเทียบ
คำตอบที่ได้กับตัวเลขที่ได้จากวิธีแบ่งครึ่งช่วง

2.6.1 Fixed-Point Iteration
ในหัวข้อนี้ เราจะศึกษาวิธี Fixed-Point Iteration ที่ใช้สำหรับแก้สมการ x = g(x) ลองพิจารณา
ดูปัญหาต่อไปนี้ ที่ต้องการหาค่าจำนวนจริง x ใดๆ ที่ทำให้
x = g(x)

เมื่อ g เป็นฟังก์ชันจำนวนจริง และวิธีการหาค่า x นั้น เราจะเริ่มต้นจากการเดาค่าเริ่มต้น x0
และแทนค่าลงไปในด้านซ้ายมือของสมการข้างต้น ค่าขวามือคือค่า x ใหม่สำหรับใช้ในการทำซ้ำ
ครั้งต่อไป ดังนี้
xn+1 = g(xn ),

n = 0, 1, 2, . . .

ถ้าอนุกรมของ {xn } ลู่เข้า ดังนั้น limit ของอนุกรมนี้ก็คือ รากของสมการไม่เชิงเส้น (Root of
Nonlinear Equation) นั่นเอง

ตัวอย่าง 2.6.1 กำหนดให้ฟังก์ชัน g(x) = 4 x − x เป็นปัญหา fixed-point ที่มีผลเฉลยสอง
ค่าคือ x = 0, 4 ถ้าเรากำหนดให้ค่าเริ่มต้น x0 = 1.0 ดังนั้นอนุกรมของ {xn } จะเป็นอนุกรม
ลู่เข้าดังแสดงไว้ตารางต่อไปนี้
DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0
n

xn

0
1.0
1
3.0
2 3.92820311
3 3.9996748
4
4.
5
4.
6
4.
7
4.
กล่าวโดยสรุปได้ว่า จุด fixed-point ของฟังก์ชัน g = g(x) คือจำนวนจริง x? ใดๆ ที่ทำ
ให้g(x? ) = x? และการคำนวณแบบทำซ้ำของ xn+1 = g(xn ) โดยที่ n = 0, 1, 2, . . . และ
x0 เป็นค่าเริ่มต้น จะเรียกว่า Fixed-Point Iteration หรือเป็นที่รู้จักกันดีในชื่อ Picard Iteration
ทฤษฎีต่อไปนี้จะกล่าวถึงการลู่เข้าของ Fixed-Point Iteration
ทฤษฎี 2.6.1 สมมุติให้
(a) g และ g0 เป็นฟังก์ชันต่อเนื่องในช่วง [a, b],
(b) มีค่า σ ∈ (0, 1] ใดๆ ที่ทำให้ |g0 (x)| ≤ σ สำหรับทุกๆ ค่าของ x ∈ [a, b], และ
(c) ฟังก์ชัน g(x) ∈ [a, b] สำหรับทุกๆ ค่า x ∈ [a, b]
ดังนั้น Fixed-Point Iteration จะลู่เข้าสู่ค่าๆหนึ่ง (Unique Fixed-Point) x? สำหรับค่าเริ่มต้น x0
ใดๆ ที่ x0 ∈ [a, b]
พิสูจน์ จากข้อจำกัด (a)-(c) ในทฤษฎี ที่ 2.6.1 สามารถแสดงให้ เห็นได้ว่า จะมี fixed-point
เพียงหนึ่งเดียวเท่านั้นในช่วง [a, b] และต่อไปนี้ เราจะพิสูจน์การลู่เข้าของอนุกรม {xn } ถ้าเรา
กำหนดให้ ค่าคลาดเคลื่อน en = r − xn เมื่อ r คือรากของสมการ เราจะได้
en = r − xn = g(r) − g(xn−1 )

และจาก Mean Value Theorem จะได้
|en | ≤ |g(r) − g(xn−1 )| ≤ |g 0 (ξn )| · |r − xn−1 |,

เมื่อ ξn อยู่ระหว่าง
ข้อจำกัดเป็น

r

และ

xn

และถ้าใช้ข้อจำกัด (b) ในทฤษฎี 2.6.1 ค่าคลาดเคลื่อนจะมี
|en | ≤ σ|en−1 |

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.6. การหารากของสมการพหุนามโดยวิธีนิวตันร่วมกับวิธีของฮอร์เนอร์

และถ้าใช้คุณสมบัติของความไม่เท่ากัน (Inequality) หลายๆ ครั้ง จะได้
|en | ≤ σ n |e0 |

เนื่องจาก σ < 1 ดังนั้น
lim σ n = 0

n→∞

นั่นคือ
lim |en | = 0

n→∞

และในที่สุด เราก็จะได้
lim xn = r

n→∞

ถ้าเราต้องการนำทฤษฎีที่ 2.6.1 ไปประยุกต์ใช้กับตัวอย่างในหัวข้อ 2.6.1 เราจะต้องกำหนด
ขอบเขตของช่วง [a, b] ให้ดี และในที่นี้ ถ้าเราให้ [a, b] = [1, 5] ซึ่งจะทำให้ฟังก์ชัน g(x) =

4 x − x สอดคล้องกับเงื่อนไข หรือข้อจำกัดทั้งสามข้อที่กล่าวไว้ใน (a)-(c) เพราะฉะนั้น fixedpoint iteration ของปัญหานี้จะลู่เข้า
โดยทั่วไปแล้ว การหารากของสมการหรือการหาค่าศูนย์ของฟังก์ชันนั้น จะสามารถเขียนให้
เป็นปัญหา fixed-point ได้เช่นกัน ลองพิจารณาดูปัญหาของการหาค่าของ x ที่ทำให้
f (x) = 0

เมื่อ f เป็นฟังก์ชันต่อเนื่อง และถ้าเรากำหนดให้ q = q(x) เป็นฟังก์ชันที่
ณ ที่ใดๆ ที่

q(x) 6= 0

f (x) = 0

นั่นคือ สำหรับปัญหาการหาค่าของ x ที่ทำให้ f (x) = 0 ก็จะเป็นปัญหาเช่นเดียวกันกับการหา
ค่าของ x ที่ทำให้
q(x)f (x) = 0

หรือ
x = x − q(x)f (x)

ซึ่งก็คือปัญหา fixed-point สำหรับฟังก์ชัน
g(x) = x − q(x)f (x)

แต่ปัญหาก็คือว่า เราจะหาฟังก์ชัน q = q(x) ได้อย่างไร ที่สอดคล้องกับเงื่อนไขที่กำหนดให้ตาม
ทฤษฎีที่ 2.6.1 และจะทำให้การทำซ้ำลู่เข้าสู่รากจริง

ปัญหา: จงแสดงให้เห็นว่าฟังก์ชัน g(x) = 4 x − x และช่วง [a, b] = [1, 5] สอดคล้องกับ
เงื่อนไขที่กำหนดให้ทั้งหมด (a-c) ในทฤษฎีที่ 2.6.1
DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

ข้อสังเกต: ในวิธีของนิวตันนั้น
ฟังก์ชัน q(x) = 1/f 0 (x)

บทที่ 2. การหารากของสมการ F (X) = 0

2.6.2 อันดับของการลู่เข้าของวิธีการทำซ้ำ
หัวข้อ นี้ จะกล่าวถึง อันดับ ของการลู่ เข้า ของวิธีการทำซ้ำ อย่างคร่าวๆ (Order of Convergent
Iterative Process) และในหัวข้อต่อไปจึงจะกล่าวถึงอันดับของการลู่เข้าของวิธีของนิวตันโดย
ละเอียดอีกครั้งหนึ่ง นักศึกษาควรที่จะเข้าใจว่า หัวใจของการวิเคราะห์วิธีการทำซ้ำใดๆ คือการ
วิเคราะห์หาอันดับของการลู่เข้า ถ้าอันดับสูง นั่นก็หมายความว่าเวลาในการคำนวณหารากก็จะ
น้อยลง
ถ้ามีจำนวนจริง p ≥ 1 ใดๆ ที่ทำให้
|xn+1 − r|
= C 6= 0
n→∞ |xn − r|p
lim

เมื่อ C คือค่าคงที่ใดๆ ที่ไม่เป็นศูนย์ เราะจะเรียกกระบวนการทำซ้ำแบบนี้ว่ามีอันดับของการลู่
เข้าคือ p (หมายเหตุ: ถ้า p = 1 ดังนั้น C < 1 อนุกรมจึงจะลู่เข้า) ข้อกำหนดที่บอกว่า C 6= 0
นั้นจะใช้สำหรับฟังก์ชัน g ทั่วๆ ไป แต่ก็มีข้อยกเว้นในบางกรณีที่จะมีค่า C = 0 สำหรับฟังก์ชัน
g บางชนิด ในกรณีเช่นนี้ การคำนวณแบบทำซ้ำจะลู่เข้าอย่างรวดเร็ว
การวิเคราะห์หาอันดับของการลู่เข้านั้น เราจะใช้ทฤษฎีต่อไปนี้
ทฤษฎี 2.6.2 อันดับของการลู่เข้าของการคำนวณแบบทำซ้ำใดๆ ที่มีสูตรเป็น
xn+1 = g(xn )

จะมีอันดับของการลู่เข้าเป็น p ถ้า
g(r) = r,

g (j) (r) ≡ 0,

1 ≤ j ≤ p,

g (p) (r)

(2.13)

พิสูจน์ ถ้าเรากระจายอนุกรมเทย์เลอร์ของ g(xn ) ใกล้ๆ ค่า r และใช้สมการ (2.13) เราจะได้
g(xn ) = r + (xn − r)g 0 (r) + · · · +
= r+

(xn − r)p−1 (p−1)
(xn − r)p (p)
g
(r) +
g (ξn )
(p − 1)!
p!

(xn − r)p (p)
g (ξn )
p!

เมื่อ ξn อยู่ระหว่าง xn และ r และเรารู้ว่า g(xn ) = xn+1 เราจะได้
xn+1 − r =

(xn − r)p (p)
g (ξn )
p!

เพราะฉะนั้น ถ้ากระบวนการทำซ้ำลู่เข้า เราจะได้
|xn+1 − r|
1
= g (p) (r) 6= 0
p
n→∞ |xn − r|
p!
lim

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.6. การหารากของสมการพหุนามโดยวิธีนิวตันร่วมกับวิธีของฮอร์เนอร์

ปัญหา: จงแสดงให้เห็นว่าวิธีของนิวตันจะมีการลู่เข้าแบบ Quadratic (หรือ p = 2) เข้าหา
ราก r ชนิด Simple (นั่นคือ f 0 (r) 6= 0) และจงแสดงให้เห็นว่า การลู่เข้าจะเป็นแบบเส้นตรง
(Linear) เข้าหาราก r ชนิด Double (นั่นคือ f 0 (r) = 0 แต่ f 00 (r) 6= 0)

2.6.3 การลู่เข้าของวิธีของนิวตัน
ในการวิเคราะห์หาอันดับของการลู่เข้าของวิธีทำซ้ำแบบนิวตันนั้น เราจะต้องใช้สูตรคำนวณหาค่า
คลาดเคลื่อนคือ en = r − xn และ en+1 = r − xn+1 และจากสมการ (2.11) จะได้
en+1 = en +

f (xn )
en f 0 (xn ) + f (xn )
=
f 0 (xn )
f 0 (xn )

และจากอนุกรมเทย์เลอร์
1
f (r) = f (xn ) + (r − xn )f 0 (xn ) + (r − xn )2 f 00 (ξn )
2

เมื่อ ξn อยู่ระหว่าง xn และ r และเนื่องจากว่า f (r) = 0 ดังนั้นเราจะได้
1
f (xn ) + en f 0 (xn ) = − e2n f 00 (ξn )
2

เพราะฉะนั้น
1 f 00 (ξn )
en+1 = − e2n 00
2 f (xn )

(2.14)

สมมุติให้ f (r) = 0 และ f 0 (r) 6= 0 นั่นคือ r เป็นรากของสมการชนิด Simple และจะมี
Neighborhood ของ r ที่ทำให้ f 0 ไม่เป็นศูนย์ หรือกล่าวอีกอย่างหนึ่งได้ว่า จะมีค่า δ0 > 0 ที่
ทำให้
|f 0 (x)| ≥ c0 > 0,
เมื่อ|x − r| ≤ δ0
นอกจากนี้เรายังสมมุติต่อไปว่าอนุพันธ์อันดับสองมีขอบเขตจำอยู่ใน Neighborhood ของ δ0
ดังนั้น จะมีค่าคงที่ M ใดๆ ที่ทำให้
¯ 00 ¯
¯ 1 f (η) ¯
¯
¯
¯ 2 f 0 (x) ¯ ≤ M

สำหรับทุกๆ ค่าของ η, x ∈ (r − δ0 , r + δ0 ) จากขอบเขตดังกล่าวและสมการ (2.14) เราจะได้
|en+1 | ≤ M |en |2

และจากผลข้างบนนี้ เราเห็นได้ชัดว่า การลู่เข้าของวิธีของนิวตันจะเป็นแบบ Quadratic (p = 2)
DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

ทฤษฎี 2.6.3 ถ้า f , f 0 , และ f 00 มีความต่อเนื่องในย่านใกล้เคียง (Neighborhood) ของราก r
ชนิด Simple ดังนั้น จะมีค่า δ > 0 ที่ทำให้ค่าเริ่มต้น x0 และ xn ซึ่งสอดคล้องกับ |r −xn | ≤ δ
เมื่อ n = 0, 1, 2, . . . ลู่เข้าสู่ราก r แบบ Quadratic
กล่าวโดยสรุปได้ว่า ในวิธีการหารากของนิวตันนั้น จะลู่เข้าสู่รากของสมการเสมอ ถ้าเราใช้
ค่าเริ่มต้นที่ไม่อยู่ไกลจากรากมากเกินไป
ตัวอย่าง 2.6.2 เราลองมาดูปัญหาการหารากที่สองของ 2 อีกครั้งหนึ่ง
xn+1

1
=
2

µ

2
xn +
xn

ถ้าเราเลือกค่าเริ่มต้น x0 = 1.4 เราจะได้ค่า xn ตามตารางต่อไปนี้
n

xn

0
1.4
1 1.4142857
2 1.4142136
3 1.4142136
ให้สังเกตอัตราการลู่เข้าสู่รากที่เป็นกำลังสองซึ่งจะทำให้การลู่เช้าเป็นไปอย่างรวดเร็วเนื่องจาก
เราเลือกค่าเริ่มต้นที่ใกล้รากของสมการตามเงื่อนไขข้างต้นนั่นเอง

2.6.4 การเลือกค่าเริ่มต้นของวิธีของนิวตัน
ปัญหาส่วนใหญ่ของการใช้วิธีของนิวตันคือ จะเลือกค่าเริ่มต้นที่เหมาะสมอย่างไรดี? ถ้าเลือกค่า
เริ่มต้นที่ไกลจากรากที่ต้องการ วิธีของนิวตันอาจจะลู่ออก หรือไม่ก็อาจจะลู่เข้าสู่รากอื่นที่เราไม่
ต้องการ ในกรณีเช่นนี้ การวาดกราฟและประมาณจุดตัดแกน x ก็จะช่วยให้เราเลือกค่าเริ่มต้นได้
ง่ายขึ้น ในบางครั้งจะต้องใช้วิธีแบ่งครึ่งช่วงก่อน เพื่อที่จะหาจุดเริ่มต้นที่เหมะสม และจากนั้นก็
ใช้วิธีของนิวตันเพื่อที่จะให้ได้ค่าประมาณที่ใกล้รากมากยิ่งขึ้น
ทฤษฎี 2.6.4 ถ้า f , f 0 , และ f 00 มีความต่อเนื่องในช่วง
กำหนดให้ต่อไปนี้ทุกเงื่อนไข โดย

[a, b]

(i)

f (a)f (b) < 0

(ii)

f 0 (x) 6= 0 สำหรับทุกๆ ค่า x ∈ [a, b]

(iii)

f 00 (x) ≥ 0 หรือ f 00 (x) ≤ 0 สำหรับทุกๆ ค่า x ∈ [a, b]

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

และสอดคล้องกับเงื่อนไขที่

DRAFT

2.7. วิธีของนิวตันกับการแก้ระบบสมการ

(iv) กำหนดให้ ξ เป็นจุดสิ้นสุด (Endpoint) ของ [a, b] ซึ่งทำให้ |f 0 (x)| มีค่าน้อยที่สุด ดังนั้น
¯
¯
¯ f (ξ) ¯
¯
¯
¯ f 0 (xi) ¯ ≤ b − a

เพราะฉะนั้น วิธีของนิวตันจะลู่เช้าสู่ราก r ของสมการ f (x) = 0 สำหรับทุกๆ ค่าของ x0 ใน
ช่วง [a, b]
เงื่อนไขที่หนึ่ง กล่าวว่า สมการ f (x) = 0 มีรากอย่างน้อยหนึ่งรากในช่วง [a, b] และจาก
เงื่อนไขที่สอง จะสรุปได้ว่า มีากเพียงรากเดียวเท่านั้นในช่วง [a, b] เงื่อนไขที่สามหมายความ
ว่า กราฟของ f (x) ในช่วง [a, b] จะมีความโค้งเพียงชนิดเดียวเท่านั้น (ไม่โค้งคว่ำก็โค้งหงาย)
และเงื่อนไขที่สี่กล่าวไว้ว่า เส้นสัมผัสของกราฟ y = f (x) ณ จุดสิ้นสุด (Endpoint) ที่มีค่าของ
|f 0 (x)| น้อยที่สุด จะตัดแกน x ในช่วง [a, b] เสมอ กล่าวอีกอย่างหนึ่งคือ สำหรับค่าเริ่มต้น x0
ใดๆ ที่อยู่ในช่วง [a, b] ค่าประมาณที่ n หรือ xn ก็จะยังคงอยู่ในช่วง [a, b] เสมอ การลู่เข้าจะ
เป็นไปตามทฤษฎีที่ 2.6.3
ตัวอย่าง 2.6.3 เรากลับมาดูตัวอย่างของการหารากที่สองของจำนวน m อีกครั้งหนึ่ง การหา
รากก็คือการแก้สมการหาค่าของ x ที่ทำให้ f (x) = x2 − m = 0 จากสมการดังกล่าว เราจะ
ได้ f 0 (x) = 2x และ f 00 (x) = 2 เพราะฉะนั้น f 0 (x) > 0 และ f 00 (x) > 0 สำหรับทุกๆ ค่า

x > 0. และในช่วง [a, b] ใดๆ ที่ 0 < a < m < b ค่าที่น้อยที่สุดของ f 0 (x) อยู่ที่ x = a
และจะสอดคล้องกับเงื่อนไขที่สี่ในทฤษฎี 2.6.4 สำหรับทุกๆ ค่าของ b ที่ทำให้
b≥



a+
2
a

นั่นก็คือ อนุกรมของตัวเลขที่ได้จากการคำนวณโดยวิธีนิวตัน หรือ
xn+1

จะลู่เข้าสู่ r =

1
=
2

µ

m
xn +
xn

m สำหรับทุกๆ ค่า x0 > 0

2.7 วิธีของนิวตันกับการแก้ระบบสมการ
การหาคำตอบของสมการที่มีหลายตัวแปร x1 , x2 , . . . , xm ซึ่งสอดคล้องกับระบบสมการ
f1 (x1 , x2 , . . . , xm ) = 0,
f2 (x1 , x2 , . . . , xm ) = 0,

..
.

(2.15)

fm (x1 , x2 , . . . , xm ) = 0,

DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

เมื่อกำหนดให้ fi = fi (x1 , x2 , . . . , xm ), i = 1, 2, . . . คือระบบสมการไม่เชิงเส้น ยก
ตัวอย่างเช่น m = 2 จะเป็นระบบสมการไม่เชิงเส้นของสองตัวแปร ดังนี้
q
f1 (x1 , x2 ) = x21 − x32 +

x1 x22 − 1

และ
f2 (x1 , x2 ) = 2x1 + x42 − 10

นั่นคือ เราต้องการที่จะแก้สมการหาค่าของ x1 และ x2 ที่ทำให้ระบบสมการต่อไปนี้เป็นจริง
q
x21

x32

+

x1 x22 − 1 = 0

2x1 + x42 − 10 = 0

จะเห็นได้ว่า เท่าที่เราเรียนมาในบทก่อนๆ เราจะไม่สามารถใช้วิธีการธรรมดาในการแก้ระบบ
สมการข้างต้น ดังนั้น ในหัวข้อ นี้ เราจะศึกษาการใช้ วิธี ของนิว ตัน มาแก้ ระบบสมการที่ มี ตัวแปร
หลายๆ ตัว ถ้าเรากำหนดให้เวกเตอร์ x = {x1 , x2 , . . . , xm }T เป็นเวกเตอร์ของตัวแปรต้น
และ f = {f1 , f2 , . . . , fm }T (x) เป็น เวกเตอร์ ของฟังก์ชัน นั่น คือ เราจะได้ ระบบสมการ
ไม่เชิงเส้นหลายตัวแปร ซึ่งสามารถเขียนโดยย่อได้เป็น
f (x) = 0

ถ้ากำหนดให้เวกเตอร์ r เป็นผลเฉลยของระบบสมการ (2.15) และ xn เป็น เป็นค่าประมาณครั้ง
ที่ n ของราก r และจากอนุกรมเทย์เลอร์ เราจะได้
f (r) = 0 = f (xn ) + [Df (xn )](r − xn ) + · · ·
นักศึกษา คงจะ จำ ได้ ว่า ถ้า เรา เมื่อกำหนดให้ Df (x) เป็น Jacobian Matrix ที่ประกอบด้วย อนุพันธ์ของเวกเตอร์ f ซึ่งมีขนาด
หา อนุพันธ์ ของ ฟังก์ชัน ที่ เป็น
m × m ดังนี้
µ

ฟังก์ชัน ของ เวกเตอร์ หลาย
∂fi
ตัวแปร เราจะได้ เมทริกซ์ ยก
Df (x) =
∂xj m×m
ตัวอย่างเช่น ถ้า เรามี f เป็น
ฟังก์ชันของเวกเตอร์สองตัวแปร
x หรือ f1 (x1 , x2 ) และ
ถ้าเราเลือกเฉพาะสองเทอมแรกของอนุกรมเทย์เลอร์ นั่นคือ r จะไม่เป็นคำตอบที่แท้จริงอีก
f2 (x1 , x2 ) นั่นเอง ดังนั้น ค่า
ต่อไป จริงๆ แล้วการตัดเทอมอื่นๆ อีกจากอนุกรมเทย์เลอร์นั้น ค่าของ r ควรจะเขียนเป็นค่า
ของ Df (x) คือ
 ∂f
1
 ∂x1
 ∂f2
∂x1

∂f1 
∂x2 
∂f2 
∂x2

ประมาณค่าใหม่ หรือ xn+1 กล่าวคือ

f (xn ) + [Df (xn )](xn+1 − xn ) = 0

เมื่อจัดรูปสมการข้างต้นเสียใหม่ เราจะได้สูตรในการคำนวณหาค่า xn+1 ดังนี้
xn+1 = xn − [Df (xn )]−1 f (xn )

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

(2.16)
DRAFT

2.7. วิธีของนิวตันกับการแก้ระบบสมการ

ในระบบสมการสองตัวแปร สมการข้างต้นจะเขียนได้เป็น
( )
x1
x2

n+1

( )
"
x1
=

x2
n

∂f1
∂x1
∂f2
∂x1

∂f1
∂x2
∂f2
∂x2

#−1 ( )
f1
f2

(2.17)

อย่างไรก็ตาม การหารากของระบบสมการไม่เชิงเส้นด้วยวิธีของนิวตันดังแสดงข้างต้นนี้ จะ
ต้องหาค่า อินเวอร์สของเมทริกซ์ ซึ่ง ไม่เป็นที่นิยมเท่าใดนัก ดังนั้น ถ้า เราไม่ต้องการแก้ระบบ
สมการด้วยการหาอินเวอร์ส จำต้องใช้เทคนิคที่เรียนมาในบทที่ ?? มาแก้ระบบสมการ ดังนี้
สมมุติให้ ∆x = xn − xn+1 ดังนั้นเราสามารถใช้เทคนิคที่ได้เรียนมาในบทที่ ?? ไม่ว่า
จะเป็น วิธี กำจัด แบบเก๊าส์ วิธีแยกตัว ประกอบ LU หรือวิธีทำซ้ำ แบบต่างๆ มาแก้ ระบบสมการ
[Df (xn )] ∆xn+1 = f (xn ) หรือ ถ้าเป็นระบบสมการสองตัวแปร จะได้
"

∂f1
∂x1
∂f2
∂x1

∂f1
∂x2
∂f2
∂x2

เมื่อแก้ระบบสมการหาค่าของเวกเตอร์
ความสัมพันธ์ ∆x = xn − xn+1

#(
)
∆x1
∆x2

∆x

n+1

( )
f1
=
f2

ได้แล้ว เราก็จะสามารถหาค่าของ

xn+1

ได้ จาก

ตัวอย่าง 2.7.1 จงแก้ระบบสมการไม่เชิงเส้นต่อไปนี้
f1 (x1 , x2 ) = x31 + 3x22 − 21
f2 (x1 , x2 ) = x21 + 2x2 + 2

โดยใช้วิธีของนิวตันเมื่อกำหนดให้ค่าคาดเดาเริ่มต้น (Initial Guess) คือ [x1 , x2 ]T0
จากสมการข้างต้น Jacobian Matrix คือ
"

Df (x) = J(x1 , x2 ) =

∂f1
∂x1
∂f2
∂x1

∂f1
∂x2
∂f2
∂x2

#

"

=

3x21 6x2
2x1 2

= [1, −1]T

#

และเนื่องจากปัญหานี้ มี เพียงสองตัวแปร ดังนั้น เราจะใช้ วิธีการหาอิน เวอร์ส มาแก้ ระบบสมการ
และในที่นี้อินเวอร์สของเมทริกซ์ Jacobian คือ
1
J−1 (x1 , x2 ) = 2
6x1 − 12x1 x2

"

2
−6x2
−2x1 3x21

#

เมื่อแทนเมทริกซ์นี้เข้าไปในสมการ (2.16) จะได้สูตรทั่วไปของวิธีนิวตันสำหรับปัญหานี้ คือ
"

x1
x2

#

n+1

"

x1
=
x2

แทนค่า [x1 , x2 ]T0
DRAFT

#

n

#
# "
"
x31 + 3x22 − 21
2
−6x2
1
− 2
6x1 − 12x1 x2 −2x1 3x21
x21 + 2x2 + 2

= [1, −1]T

n

n

ลงไปในสมการข้างต้น ผลการคำนวณจะได้ดังตารางข้างล่างนี้
ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0
n

x1

x2

|∆x1 |

|∆x2 |

0
1
2
3
4
5
6

1
2.5555556
1.8650491
1.6613369
1.6431734
1.6430381
1.6430381

-1
-3.0555556
-2.5008046
-2.3592708
-2.3498444
-2.3497870
-2.3497870

1.555556
0.690506
0.203712
0.018164
0.000135
7.33E-09

2.055556
0.554751
0.141534
0.009426
5.74E-05
2.89E-09

เพราะฉะนั้น รากของระบบสมการไม่เชิงเส้นคือ [x1 , x2 ]T
คลาดเคลื่อนยินยอมหรือ Tolerance ประมาณ 10−9

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

= [1.643, −2.350]

โดยมีความ

DRAFT

2.8. การประยุกต์ใช้เทคนิคการหารากของสมการ

ปัญหา: จงใช้อนุกรมเทย์เลอร์ของฟังก์ชันสองตัวแปร f (x, y) ซึ่งอยู่ในรูป
f (x + h, y + k) = f (x, y) + hfx (x, y) + kfy (x, y) + · · ·

เมื่อ

fx = ∂f /∂x และ fy = ∂f /∂y แสดงให้ เห็น ว่า
f (x, y) = 0 และ g(x, y) = 0 ด้วยวิธีของนิวตันคือ

สูตรที่ใช้ในการแก้ระบบสมการ

f gy − gfy
fx gy − gx fy
fx g − gx f
= yn −
fx g y − g x fy

xn+1 = xn −
yn+1

เมื่อฟังก์ชัน f, fx0 , . . . เป็นค่าที่คำนวณที่จุด (xn , yn ) และจงคำนวณหารากของระบบสมการ
ไม่เชิงเส้นต่อไปนี้โดยการทำซ้ำ 5 ครั้ง
x3 + sin(x + y) = 1,

y 2 − cos(xy) = 2

โดยใช้ค่าเริ่มต้น (x0 , y0 ) = (1, −1)

2.8 การประยุกต์ใช้เทคนิคการหารากของสมการ
ตอนนี้เราได้ศึกษาเทคนิคต่างๆ ที่นำมาใช้ในการหารากของสมการเชิงเส้นทั้งแบบเส้นตรงและ
ไม่ เป็น เส้นตรง รวมไปถึง การหากของระบบสมการไม่เชิง เส้น ด้วย ในหัวข้อ นี้ เราจะมาดู ว่า
วิธีการหารากเหล่านี้ จะนำไปใช้ในสาขาวิชาอื่นๆ ได้อย่างไร

2.8.1 การหาค่า pH ของสารละลาย
กรดคาร์บอนิก (Carbonic Acid) เป็นกรดที่มีอยู่ทั่วไปตามธรรมชาติ เนื่องจากในชั้นบรรยากาศ
มีปริมาณก๊าซคาร์บอนไดออกไซค์ (CO2 ) อยู่ประมาณ 0.038% โดยปริมาตร หรือเมื่อเทียบเป็น
ความดันย่อย (Partial Pressure, PCO ) จะมีความดันเป็น 10−3.42 บรรยากาศ (หรือ atm)
ดังนั้น แหล่งน้ำในธรรมชาติต่างๆ จะมีก๊าซคาร์บอนไดออกไซค์ละลายอยู่ด้วยเสมอ และดังเช่น
ที่พบได้ในสารละลายกรดทั่วๆ ไป กรดคาร์บอนิกที่ละลายน้ำจะแตกตัวให้อนุมูลไฮโดรเจนอิออน
(H+ ) ทำให้แหล่งน้ำนั้นมีมีฤทธิ์เป็นกรดอ่อนๆ
ในช่วงสองถึงสามทศวรรษที่ผ่านมา เคมีของกรดคาร์บอนิกในแหล่งน้ำธรรมชาติ ได้รับการ
ศึกษาอย่างละเอียด เนื่องจากรดคาร์บอนิกเป็นกรดสำคัญที่เกิดขึ้นตามธรรมชาติ ที่มีผลกระทบ
ต่อ สิ่ง แลดล้อมโดยตรง ยกตัวอย่างเช่น การกัดกร่อนของหิน และฝั่ง แม่น้ำ นอกจากนี้ กรด
2

DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

คาร์บอนิก ยัง เป็น บัฟเฟอร์ (Natural Buffer) ช่วยให้ สภาวะความเป็น กรด-เบสหรือ pH ของ
น้ำในแหล่งน้ำ ไม่เปลี่ยนแปลงมากจนเกินไป
ในที่นี้ เราจะวิเคราะห์สารละลายคาร์บอเนตที่อยู่ในระบบเปิดที่มีปริมาณก๊าซคาร์บอนไดออก
ไซค์เท่ากับ PCO และเราจะสมมุติต่อไปว่า สารละลายจะอยู่ในสภาวะสมดุล (Equilibrium) กับ
ก๊าซคาร์บอนไดออกไซค์ ในอากาศ ตารางที่ 2.1 แสดงถึง สมการเคมี ที่ เกี่ยวข้องกับ ระบบของ
คาร์บอเนตชนิดนี้ สมการ (E1) แสดงถึงความสามารถในการละลายของก๊าซคาร์บอนไดออกไซค์
ตามกฎของเฮนรี่ ส่วนสมการ (E2) และ (E3) เป็นสมการแสดงถึงการแตกตัวของกรดคาร์บอนิก
ครั้งที่หนึ่ง และสอง ตามลำดับ และสมการ (E4) เป็นสมการที่ แสดงถึงการแตกตัวของน้ำ ณ
อุณหภูมิ 25◦ C และความดัน 1.0 บรรยากาศ
2

ในการวิเคราะห์ นี้ เราจะสมมุติ
ว่า Activity Coefficient ของ
อิออน ทุก ตัว มี ค่า เท่า กับ หนึ่ง
ดังนั้น Activity ของ สาร ทุก
ตัว จะ มี ค่า ความ เข้มข้น หรือ
aH2 CO3 = [H2 CO3 ]

ตารางที่ 2.1: ปฏิกิริยาเคมีของคาร์บอเนตและค่าคงที่ปฏิกิริยา ณ อุณหภูมิ 25◦ C และความดัน
1.0 บรรยากาศ
ปฏิกิริยาเคมี

สมการของค่าคงที่

CO2(g) + H2 O

­

H2 CO3(aq)

H2 CO3

­

H+ + HCO−
3

HCO−
3

­

H+ + CO2−
3

H2 O

­

H+ + OH−

[H2 CO3 ]
KH =
PCO2
+
[HCO−
3 ][H ]
Ka1 =
[H2 CO3 ]
+
[CO2−
3 ][H ]
Ka2 =
[HCO−
3]
+
Kw = [H ][OH− ]

ค่าคงที่สมดุล สมการ
10−1.47
(E1)
10−6.4

(E2)

10−10.3

(E3)

10−14

(E4)

ในสารละลายใดๆ เมื่อ อิออนทุก ชนิด อยู่ ในสภาวะสมดุล จำนวนประจุ บวกและประจุ ลบจะ
ต้องเท่ากันเสมอ และในที่นี้ สมการ Charge Balance สามารถเขียนได้ดังนี้
2−
[H+ ] = [OH− ] + [HCO−
3 ] + 2[CO3 ]

เมื่อแทนค่าของ [OH− ], [HCO−3 ], และ [CO2−
3 ] จากสมการ (E4), (E2), และ (E3) ตามลำดับ
จะได้
[H+ ] =

Ka1 [H2 CO3 ] 2Ka1 Ka2 [H2 CO3 ]
Kw
+
+
+
[H ]
[H+ ]
[H+ ]2

เมื่อแทนค่า [H2 CO3 ] = KH PCO จากสมการ (E1) ลงไปในสมการข้างต้น และจัดรูปเสีย
ใหม่ เราจะได้สมการกำลังสามของ [H+ ] ดังนี้
2

[H+ ]3 − (Kw + Ka1 KH PCO2 ) [H+ ] − 2Ka1 Ka2 KH PCO2 = 0

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.8. การประยุกต์ใช้เทคนิคการหารากของสมการ

ถ้าเรากำหนดให้ x = [H+ ], α = Kw + Ka1 KH PCO , และ β = 2Ka1 Ka2 KH PCO
สมการข้างต้นจะเขียนใหม่ได้เป็น
2

2

f (x) = x3 − αx − β = 0

เราจะลองมาใช้วิธีของนิวตันในการหาค่าของ x ที่ทำให้ f (x) = 0 สูตรในการคำนวณหาราก
โดยวิธีของนิวตันคือ
xn+1 = xn −

f (xn )
x3n − αxn − β
=
x

n
f 0 (xn )
3x2n − α

เนื่องจากเราทราบคร่าวๆ ว่าสารละลายนี้ควรมีฤทธิ์เป็นกรด เพราะเป็นสารละลายของกรด
คาร์บอนิก นั่นคือ pH ของสารละลายควรจะน้อยกว่า 7 หรือ x = [H+ ] < 10−7 mol/L นั่นเอง
ถ้าเรากำหนดให้ค่าคาดเดาเริ่มต้น (Initial Guess) เป็น x0 = 10−5 ตารางต่อไปนี้แสดงถึง
ขั้นตอนการคำนวณหาราก 10 ครั้ง
n

0
1
2
3
4
5
6
7
8
9
10

pH
5
5.168587796
5.328200964
5.469188144
5.575395846
5.630926311
5.643950545
5.644566114
5.644567426
5.644567426
5.644567426

xn

f (xn )

f 0 (xn )

0.00001
6.78285E-06
4.69677E-06
3.39478E-06
2.6583E-06
2.33923E-06
2.27012E-06
2.26691E-06
2.2669E-06
2.2669E-06
2.2669E-06

9.48613E-16
2.77204E-16
7.94735E-17
2.16783E-17
5.12456E-18
7.79392E-19
3.31885E-20
7.03775E-23
3.18865E-28
6.99654E-34
6.99654E-34

2.94861E-10
1.32883E-10
6.10403E-11
2.9435E-11
1.60611E-11
1.12774E-11
1.03218E-11
1.0278E-11
1.02779E-11
1.02779E-11
1.02779E-11

จะเห็นได้ว่า การคำนวณด้วยวิธี ของนิว ตัน นี้ ลู่ เข้า สู่ คำตอบภายใน 8 ครั้ง และ pH ของ
สารละลายกรดคาร์บอนิกในระบบเปิดนี้มีค่า 5.64 ซึ่งสารละลายมีฤทธิ์เป็นกรดตามที่เราคาดเดา
ไว้ตั้งแต่แรก

DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

2.9

แบบฝึกหัดท้ายบท

1. จงหารากของ f (x) = x3 + 2x − 3 ในช่วง 0 ≤ x ≤ 7/5 โดยใช้วิธีแบ่งครึ่งช่วง
2. ถ้าฟังก์ชัน f (x) = x2 − 2.6x − 2.31 มีหนึ่งรากในช่วง [3, 4] จงหาว่าจะต้องใช้วิธี
แบ่งครึ่งช่วงกี่ครั้งที่จะหารากนี้โดยมีความคลาดเคลื่อนยินยอม |∆x|ไม่เกิน 10−5
3. จงหารากของสมการ e2x − 7x = 0 โดยวิธีแบ่งครึ่งช่วง
4. พิจารณาฟังก์ชันต่อไปนี้
f (x) = x4 − 5x3 +

8
22 2 116
x −
x+
3
27
9

(a) ให้ตรวจสอบดูว่าฟังก์ชัน f (x) ข้างต้นมีราก α1 อยู่ในช่วง [0, 1] และอีกรากหนึ่ง
α2 อยู่ในช่วง [1, 4]
(b) ให้คำนวณหารากทั้งสองตัวโดยวิธีแบ่งครึ่งช่วง
5. จงวาดกราฟของฟังก์ชัน f (x) = tan x + tanh x และให้หาช่วงที่มีรากซึ่งเป็นจำนวน
บวกที่น้อยที่สุด และให้หารากนั้นๆ โดยวิธีแบ่งครึ่งช่วง
6. จงใช้วิธีของนิวตันหาค่าศูนย์ของฟังก์ชัน
f (x) = x5 − 3x3 − 5x + 4

ให้มีความคลาดคลาดเคลื่อนไม่เกิน 10−9 โดยให้ใช้ค่าคาดเดาเริ่มต้น x0 = 1
7. จงหารากของ x + sin(x) − cos(2x) = 0 โดย
(a) ใช้วิธีของนิวตัน เมื่อกำหนดให้ x0 = 0
(b) ใช้วิธี Secant เมื่อกำหนดให้ x0 = 0 และ x1 = 1
8. จงใช้วิธีของนิวตันหาค่าของ x ที่ทำให้จุดบนกราฟ y = x2 อยู่ใกล้กับจุดพิกัด (x, y) =
(3, 2) มากที่สุด (ใช้ x0 = 0)
9. สมการ x − cos(x) = 0 มีรากอยู่ใกล้ x = 0 และ x = 1 จงหารากนี้ให้มีความ
คลาดเคลื่อนยินยอม |∆x|ไม่เกิน 10−4 โดยใช้ทั้งวิธีของนิวตันและวิธี Secant
ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.9. แบบฝึกหัดท้ายบท

10. จงแสดงให้เห็นว่าสูตรในการคำนวณโดยวิธีนิวตันของฟังก์ชัน
f (x) =

คือ

xn+1 = 2xn − 5x2n
x0 = 1/4

1
−5
x

และให้ หาค่า ศูนย์ ของฟังก์ชัน

11. จงแสดงวิธีหาสูตร
xn =

f

นี้ โดยให้ ค่า เริ่มต้น เป็น

x2n−1 − b
2xn−1 − a

เพื่อหารากของสมการกำลังสอง x2 − ax − b = 0 โดยใช้วิธีของนิวตัน และใช้สูตรนี้หา
รากที่เป็นจำนวนจริงบวกของ x2 − 13x − 1
12. กำหนดให้สูตรที่ใช้ในการหารากของวิธีนิวตันของฟังก์ชัน f (x) เป็น
xn+1 = xn + ae−xn − 1

เมื่อ a เป็นจำนวนจริงบวก จงหารูปแบบของฟังก์ชัน f (x) นี้
13. จงหารากที่เป็นจำนวนจริงบวกของ
x3 − x2 − 1 = 0

ให้มีความคลาดเคลื่อนยินยอม |∆x| ≤ 10−4 โดยใช้วิธี Secant เมื่อกำหนดให้ x0 = 1
และ x1 = 2 จากนั้น ให้คำนวณหาค่าของ |en | และ |en+1 |/|en en−1 | สำหรับ n =
2, 3, 4 เพื่อยืนยันผลที่ได้ตามสมการ (2.10)
14. จงแสดงให้เห็นว่าอนุกรมที่ได้จากสูตรต่อไปนี้
xn =

จะลู่เข้าสู่

xn−1
3
+
,
2
2xn−1

3 เมื่อใดก็ตามที่ใช้ค่าเริ่มต้น x0 >

for

n≥1

3

15. ฟังก์ชัน f (x) = x4 − x3 − 1 มีรากหนึ่งอยู่ในช่วง [1, 2] ให้ใช้วิธีของนิวตันหารากนี้
และให้มีความคลาดเคลื่อนยินยอม |∆x| ไม่เกิน 10−5 จากนั้นให้คำนวณหาค่าของ |en |
และ |en+1 |/|e2n | สำหรับ n = 2, 3, 4 เพื่อยืนยันผลการพิสูจน์ที่ได้จากสมการ (2.14)
16. จงแก้สมการต่อไปนี้ด้วยวิธี Fixed-Point Iteration
DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

บทที่ 2. การหารากของสมการ F (X) = 0

(a)
(b)
(c)

x = sin(x) + x + 1 ในช่วง x ∈ [3.5, 5]

x = x2 + 1 − x + 1 ในช่วง x ∈ [0, 3]
x = ln(x2 ) + x − 2 ในช่วง x ∈ [−4, −2]

17. สำหรับฟังก์ชันต่อไปนี้ จงหาช่วงที่ทำให้ Fixed-Point Iteration มีการลู่เข้า
(a)
(b)

x = 0.2 sin(x) + 1
x = 1 − 0.25x2

18. สมการกำลังสอง x2 − 2x − 3 = 0 มีสองราก และสมการนี้สามารถจัดรูปเพื่อที่จะหา
รากโดยวิธี Fixed-Point Iteration ได้หลายรูปแบบ ให้พิจารณารูปแบบต่างๆ ของสมการ
กำลังสองต่อไปนี้ แล้วหารากโดยเริ่มต้นจาก x0 = 4
(a)
(b)
(c)

x=

2x + 3

x = 3/(x − 2)
x = (x2 − 3)/2

19. ถ้ากำหนดให้ฟังก์ชัน g(x) = (x + 4)/2
(a) จงแสดงให้เห็นว่า α = 4 เป็น Fixed-Point ของ g(x)
(b) และถ้ากำหนดให้ x0 = 5 จงแสดงให้เห็นว่า |α − xn | = |α − x0 |/2n สำหรับ
n = 1, 2, . . .

20. จงหาเมทริกซ์ Jacobian J ที่จุด (x, y) = (−1, 4) ของระบบสมการไม่เชิงเส้นต่อไปนี้
f1 (x, y) = x3 − y 2 + y = 0
f2 (x, y) = xy + x2 = 0

21. จงหาคำตอบของระบบสมการต่อไปนี้ด้วยวิธีของนิวตัน
x2 + y 2 = 4
x2 − y 2 = 1

22. จงหาคำตอบของระบบสมการต่อไปนี้ด้วยวิธีของนิวตัน
f1 (x, y) = 3x − y − 3 = 0
f2 (x, y) = x − y + 2 = 0

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

DRAFT

2.9. แบบฝึกหัดท้ายบท

23. จงหาคำตอบของระบบสมการต่อไปนี้ด้วยวิธีของนิวตัน
f1 (x, y, z) = x2 + y 2 + z 2 − 9 = 0
f2 (x, y, z) = xyz − 1 = 0
f3 (x, y, z) = x + y − z 2 = 0

24. จงใช้วิธีของนิวตันคำนวณหารากของระบบสมการไม่เชิงเส้นต่อไปนี้
x+y+z = 0
x2 + y 2 + z 2 = 0
xy + xz + 1 = 0

โดยใช้ค่าเริ่มต้น ( 34 , 12 , − 12 ) และนอกจากนี้ ให้ลองใช้ค่าเริ่มต้น (x0 , y0 , z0 ) ที่จุดอื่นๆ
อีกสามจุด แล้วดูว่าจะได้คำตอบเดียวกันหรือไม่?

DRAFT

ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่

Sign up to vote on this title
UsefulNot useful