Phương pháp tính- ĐH BKHCM- HCMUT
Trang 1Chương 4 NỘI SUY VÀ XẤP XỈ HÀM
1
I ĐẶT BÀI TOÁN :
Để tính giá trị của một hàm liên tục bất kỳ, ta có thể xấp xỉ hàm bằng một
đa thức, tính giá trị của đa thức từ đó tính được giá trị gần đúng của hàm
2
Xét hàm y = f(x) cho dưới dạng bảng số
x xo x1 x2 xn
y yo y1 y2 yn
Các giá trị xk, k = 0, 1, , n được sắp theo
thứ tự tăng dần gọi là các điểm nút nội suy
Các giá trị yk= f(xk) là các giá trị cho trước
của hàm tại xk
Bài toán : xây dựng 1 đa thức pn(x) bậc ≤n
thoả điều kiện pn(xk) = yk, k=0,1, n Đa thức
này gọi là đa thức nội suy của hàm f(x)
II ĐA THỨC NỘY SUY LAGRANGE: Cho hàm y = f(x) và bảng số
Ta xây dựng đa thức nội suy hàm f(x) trên [a,b]=[x0, xn]
Trang 2( ) 0,
0,
( )
n
i
k i i k
k i
i i k
= ≠
= ≠
−
=
−
=
∏
∏
Ta có
0
k
i k
i k
=
≠
5
Đa thức
( ) 0
k
=
có bậc ≤ n và thỏa điều kiện Ln(xk) = yk gọi là đa thức nội suy Lagrange của hàm f
Ví dụ : Cho hàm f và bảng số
x 0 1 3
y 1 -1 2
Xây dựng đa thức nội suy Lagrange và tính gần đúng f(2).
6
n = 2 (0)( ) ( 1)( 3) 1( 2 4 3)
(0 1)(0 3) 3 n
p x = − − = x − x +
Giải
(1)( ) ( 0)( 3) 1( 2 3 )
(1 0)(1 3) 2 n
p x = − − = − x − x
(2)( ) ( 0)( 1) 1( 2 )
(3 0)(3 1) 6 n
p x = − − = x − x
Đa thức nội suy Lagrange
n
L x = x − x + + x − x + x − x = x − x +
f(2) ≈ Ln(2) = -2/3
Cách biểu diễn khác :
'( )( )
k n
x
p x
x x x
ω ω
−
0
( ) ( )
'( )( )
n
k n
y
x x x
ω
ω
=
−
∑
với Dk= ω’(xk) (x-xk)
0
( ) ( ) n k n
y
D
ω
=
0 0
k i
i k
ω
= =
≠
0
i
i k
ω
=
≠
0
i
=
Trang 3Để tính giá trị của Ln(x), ta lập bảng
x0
x1
…
xn
x- x0 x0- x1 x0- xn
x1- x0 x- x1 x1- xn
xn- x0 xn- x1 x- xn
D0
D1
…
Dn
ω(x)
tích dòng
tích đường chéo
9
Ví dụ : Cho hàm f và bảng số
x -9 -7 -4
y -1 -4 -9
Tính gần đúng f(-6)
Ta lập bảng tại x = -6
x = -6 -9 -7 -4 -9
-7 -4
3 -2 -5
2 1 -3
5 3 -2
30 -6 -30
-6
Vậy f(-6) ≈ Ln(-6) = -6(-1/30+4/6+9/30) = -5.6
10
Ví dụ : Cho hàm f và bảng số
x 0 1 3 4
y 1 1 2 -1
Tính gần đúng f(2)
Ta lập bảng tại x = 2
x = 2 0 1 3 4
0 1 3 4
2 -1 -3 -4
1 1 -2 -3
3 2 -1 -1
4 3 1 -2
-24 6 6 -24
4
Vậy f(2) ≈ Ln(2) = 4(-1/24 + 1/6 + 1/3 +1/24) = 2
• TH đặc biệt : các điểm nút cách đều với bước h = xk+1 – xk
Đặt ( x x 0 )
q
h
−
=
Ta có xk= xo + kh
⇒ x-xk = x- xo-kh = (q-k)h
xi-xj = (xo+ih)-(xo+jh) = (i-j)h
⇒ ω(x)=(x-x0)(x-x1) (x-xn)=q(q-1)…(q-n)h n+1
ω’(xk) = (xk-x0) (xk-xk-1)(xk-xk+1) … (xk-xn)
= k.(k-1) … 1.(-1)(-2) … (k-n)h n
= (-1) n-k k! (n-k)! h n
Dk = ω’(xk)(x-xk) = (-1) n-k k! (n-k)! (q-k)h n+1
Trang 4( ) ( ) n k
n
y
D
ω
=
0
( 1) ( ) ( 1) ( )
!( )!( )
n k n
k n
k
y
k n k q k
−
=
−
∑
Ví dụ : Cho hàm f và bảng số
x 1.1 1.2 1.3 1.4
y 15 18 19 24
Tính gần đúng f(1.25)
13
Ta có n = 3 x = 1.25
h = 0.1 q = (1.25-1.1)/0.1 = 1.5
Vậy f(1.25) ≈ 18.375
3!(1.5) 2!(0.5) 2!( 0.5) 3!( 1.5) 18.375
n
= giải
14
Công thức đánh giá sai số :
Giả sử hàm f(x) có đạo hàm đến
cấp n+1 liên tục trên [a,b].
1 max |[ , ] n ( ) |
Ta có công thức sai số
1
| ( ) ( ) | | ( ) |
( n1)!
n
M
+
+
Ví dụ : Cho hàm f(x)=2 x trên đoạn [0,1] Đánh giá sai số khi tính gần đúng giá trị hàm tại điểm x=0.45 sử dụng đa thức nội suy Lagrange khi chọn các điểm nút xo=0, x1=0.25, x2=0.5, x3=0.75, x4=1
Giải
Ta có n = 4, f(5)(x) = (ln2)52x
⇒ M5 = max |f(5)(x)| = 2(ln2)5
1
5
5
| ( ) ( ) | | ( ) |
( 1)!
2(ln 2) |(0.45)(0.20)( 0.05)( 0.30)( 0.55)| 0.198*10 5!
n n
M
n + ω
−
+
công thức sai số
Trang 5III ĐA THỨC NỘI SUY NEWTON:
1 Tỉ sai phân :
Cho hàm y = f(x) xác định trên [a,b]=[xo, xn]
và bảng số
1
1
( ) ( )
k k
f x f x
f x x
+ +
+
−
=
−
gọi là tỉ sai phân cấp 1 của hàm f trên [xk,xk+1]
17
Tỉ sai phân cấp 2
2
[ , ] [ , ]
f x x f x x
f x x x
+
−
=
− Bằng qui nạp ta định nghĩa tỉ sai phân cấp p
1
[ , , , ] [ , , , ] [ , , , ] k k k p k k k p
k p k
f x x x
+
−
=
−
18
Ví dụ : Cho hàm f và bảng số
x 1.0 1.3 1.6 2.0
y 0.76 0.62 0.46 0.28
Tính các tỉ sai phân
k xk f(xk) f[xk,xk+1] f[xk,xk+1,xk+2] f[xk,xk+1,xk+2,xk+3]
0
1
2
3
1.0
1.3
1.6
2.0
0.76 0.62 0.46 0.28
-0.4667 -0.5333 -0.45
-0.111 0.119
0.23
Giải : ta lập bảng các tỉ sai phân
2 Đa thức nội suy Newton :
Tỉ sai phân cấp 1
0 0
0
( ) ( ) [ , ]
f x f x
f x x
x x
f x y f x x x x
−
=
−
Tỉ sai phân cấp 2
0 1
1
[ , ] [ , ] [ , , ]
[ , ] [ , ] [ , , ]( )
f x x f x x
f x x x
x x
f x x f x x f x x x x x
−
=
−
⇒ f x ( ) = y0 + f x x [ , ](0 1 x x − 0) + f x x x [ , , ](0 1 x x − 0)( x x − 1)
Trang 6Tiếp tục bằng qui nạp ta được
Đặt
(1)
n
−
−
Ta được f x ( ) = ℵ (1)n ( ) x + ℜn( ) x
Công thức này gọi là công thức Newton tiến
Tương tự ta có công thức Newton lùi
(1) (2)
( ) : ( ) : ( ) :
n n n
x đa thức nội suy Newton tiến
x đa thức nội suy Newton lùi
x xác định sai số
ℵ ℵ ℜ
(2)
−
(2)
(1)n ( ) (2)n ( ) n( )
Ta có ℵ x = ℵ x = L x
Để đánh giá sai số của đa thức nội suy Newton, ta dùng công thức sai số của đa thức nội suy Lagrange
22
Ví dụ : Cho hàm f xác định trên [0,1] và bảng số
x 0 0.3 0.7 1
y 2 2.2599 2.5238 2.7183
Tính gần đúng f(0.12) bằng Newton tiến và
f(0.9) bằng Newton lùi
xk f(xk) f[xk,xk+1] f[xk,xk+1,xk+2] f[xk,xk+1,xk+2,xk+3]
0
0.3
0.7
1
2 2.2599
2.5238
2.7183
0.8663 0.6598 0.6483
-0.2950 -0.0164
0.2786
Giải : ta lập bảng các tỉ sai phân
Newton lùi Newton tiến
(1)
(0.12) (0.12)
2 0.8663(0.12) 0.2950(0.12)( 0.18) 0.2786(0.12)( 0.18)( 0.58) 2.1138
n
=
(2)
2.7183 0.6483( 0.1) 0.0164( 0.1)(0.2) 0.2786( 0.1)(0.2)(0.6) 2.6505
n
=
Ta có
Trang 73 TH các điểm nút cách đều :
Sai phân hữu hạn cấp 1 của hàm tại điểm xk
∆yk = yk+1 - yk
Bằng qui nạp, Sai phân hữu hạn cấp p của hàm
tại điểm xk
∆pyk = ∆(∆p-1yk) = ∆p-1yk+1 - ∆p-1yk
Ta có công thức
1
!
p k
y
p h
∆
=
25
Công thức Newton tiến
0
(1)
2
0
n
n
x x Đặt q
h
n
−
−
=
Công thức Newton lùi
2
n
n
x x Đặt p
h
n
−
=
26
Ví dụ : Cho hàm f xác định và bảng số
x 30 35 40 45
y 0.5 0.5736 0.6428 0.7071
Tính gần đúng f(32) bằng Newton tiến và f(44)
bằng Newton lùi
xk f(xk) ∆yk ∆2yk ∆3yk
30
35
40
45
0.5 0.5736
0.6428
0.7071
0.0736 0.0692 0.0643
-0.0044 -0.0049
-0.0005 Giải : ta lập bảng các sai phân hữu hạn
Newton lùi Newton tiến
Tính gần đúng f(32) : dùng công thức Newton tiến
n = 3, xo = 30, q=(32-30)/5 = 0.4 (1)
(32) (32)
0.0736 0.0044 0.0005 0.5 (0.4) (0.4)( 0.6) (0.4)( 0.6)( 1.6)
0.529936
n
f ≈ℵ
=
Tính gần đúng f(44) : dùng công thức Newton lùi
n = 3, xn = 45, p=(44-45)/5 = -0.2 (2)
(44) (44)
0.0643 0.0049 0.0005 0.7071 ( 0.2) ( 0.2)(0.8) ( 0.2)(0.8)(1.8)
0.694656
n
f ≈ℵ
=
Trang 8IV SPLINE bậc 3 :
Với n lớn, đa thức nội suy bậc rất lớn, khó xây
dựng và khó ứng dụng.
Một cách khắc
phục là thay đa
thức nội suy bậc n
bằng các đa thức
bậc thấp (≤ 3) trên
từng đoạn [xk,xk+1],
k=0,1,…,n-1
29
1 Định nghĩa :
Cho hàm y=f(x) xác định trên đoạn [a,b] và bảng số
Một Spline bậc 3 nội suy hàm f(x) là hàm g(x) thỏa các điều kiện sau :
(i) g(x) có đạo hàm đến cấp 2 liên tục trên [a,b] (ii) g(xk) = yk, k=0,1, …, n
(iii) Trên mỗi đoạn [xk,xk+1], g(x)=gk(x) là 1 đa thức bậc 3, k=0,1, ,n-1
30
2 Cách xây dựng Spline bậc 3 :
Đặt hk= xk+1 – xk
gk(x) là đa thức bậc 3 nên có dạng :
gk(x) = ak+bk(x-xk)+ck(x-xk)2+dk(x-xk)3
Ta có g’k(x) = bk+2ck(x-xk)+3dk(x-xk) 2
g”k(x) = 2ck+6dk(x-xk)
g’k+1(x) = bk+1+2ck+1(x-xk+1)+3dk+1(x-xk+1) 2
g”k+1(x) = 2ck+1+6dk+1(x-xk+1)
Ta có g(xk) = yk
⇒ ak = yk, k = 0,1,…, n (1)
g(x) khá vi liên tục đến cấp 2 nên
" ''
( ) ( ) ( ), 0,1, , 1
=
=
Điều kiện (A) suy ra
1 2 1
(2)
k
a b h c h d h y
h
+ +
−
Trang 9Điều kiện (C) suy ra
1 1
(3) 3
k
k
c c d
h
+ +
−
Thay (3) vào (2) ta đước
(4) 3
k
k
b
h
Điều kiện (B) suy ra
2 1 2
b c h d h b
+
33
Thay (3) và (4) vào (5) ta được
1
1,2, , 1
−
Phương trình (5) là hệ phương trình tuyến tính gồm n-1 pt, dùng để xác định các hệ số ck Từ
ck và (1) (3) (4) ta xác định được tất cả các hệ số của đa thức gk(x)
34
Phương trình (6) có số ẩn = n+1 > số pt nên có
vô số nghiệm, để có nghiệm duy nhất ta cần bổ
sung thêm 1 số điều kiện
Định nghĩa :
Spline tự nhiên là spline với điều kiện
g”(a) = g”(b) = 0
Spline ràng buộc là spline với điều kiện
g’(a) = α, g’(b) = β
3 Spline tự nhiên :
Giải thuật xác định spline tự nhiên :
Điều kiện g”(a)=g”(b) = 0 suy ra co = cn = 0 B1 Tính hk=xk+1- xk, k = 0, n-1
ak= yk, k = 0, n B2 Giải hệ Ac = b tìm c = (co, c1, …, cn)t
1 0
2 1
0
0
y y
y y
−
−
− +
Trang 10B3 Tính các hệ số bk, dk.
1
3
3
k
k
k
k
h
d
h
+
−
=
Ví dụ : Xây dựng spline tự nhiên nội suy hàm
theo bảng số
x 0 2 5
y 1 1 4
37
Giải
B1 ho = 2, h1= 3 ao = 1, a1 = 1, a2= 4 B2 Giải hệ Ac = b với c = (c0, c1, c2)t
0
3( ) 3( )
0
y y
y y
−
−
n = 2
⇒ co = c2 = 0, c1 = 3/10
0 1 2
c c c
=
38
B3 Tính các hệ số bk, dk
0
0
1
1
,
b
h
b
h
Kết luận :spline tự nhiên
3 0
1
5 20 ( )
g x
=
Ví dụ : Xây dựng spline tự nhiên nội suy hàm theo bảng số
x 0 1 2 3
y 1 2 4 8
B1 ho = h1= h2= 1 ao = 1, a1 = 2, a2 = 4, a3= 8
n = 3 B2 Giải hệ Ac = b với c = (c0, c1, c2,c3)t
A
+
Trang 111 0
0
3 6
0 0
y y
y y
b
−
1 2
0
Giải ta được co= c3= 0, c1= 2/5, c2= 7/5
0 1 2 3
c c c c
41
B3 Tính các hệ số bk, dk
2
2
b
h
Kết luận :spline tự nhiên
3 0
1
2
13 2
15 15
4 Spline ràng buộc :
Giải thuật xác định spline ràng buộc :
B1 Tính hk=xk+1- xk, k = 0, n-1
ak= yk, k = 0, n
Điều kiện g’(a) = α, g’(b) = β xác định 2 pt :
0
1
1
n
y y
h c h c
h
y y
h
α
−
−
1 0 0
1 0
2 1
3( ) 3( )
3( ) 3( ) 2( )
3 3
y y h
y y
y y
y y y y
y
α
β
−
−
−
−
− +
1
n n
n
y h
−
−
B2 Giải hệ Ac = b tìm c = (co, c1, …, cn)t
B3 Tính các hệ số bk, dk
1
3
3
k
k
k
h
d
h
+
−
=
Trang 12Ví dụ : Xây dựng spline ràng buộc nội suy hàm
theo bảng số
x 0 1 2
y 1 2 1
với điều kiện g’(0)=g’(2) = 0
Giải
B1 ho = h1 = 1 ao= 1, a1 = 2, a2 = 1
n = 2
45
B2 Giải hệ Ac = b với c = (c0, c1, c2)t
1 0 0
1 0
2 1
2 1 1
3 3( ) 3( )
6 3
3 3
y y h
y y
y y b
y y h
α
β
−
−
0
2
c
c
46
B3 Tính các hệ số bk, dk
0
0
1
1
0 3
0 3
b
h
b
h
Kết luận :spline ràng buộc
2 3 0
1
( )
g x
=
V BÀI TOÁN XẤP XỈ THỰC NGHIỆM :
Xét bài toán thống kê lượng mưa trong 12 tháng Thực nghiệm (k=1 12)
xk 1 2 3 4 5 6 7 8
yk 550 650 540 580 610 605 .
Các giá trị yk được xác định bằng đo đạc hay thực nghiệm nên thiếu chính xác Khi đó việc xây dựng một đường cong đi qua tất cả các điểm Mk(xk, yk) cũng không còn chính xác
Trang 13Bài toán xấp xỉ thực nghiệm : là tìm hàm f(x)
xấp xỉ bảng {(xk,yk)} theo phương pháp bình
phương cực tiểu :
2
( ) ( ( )k k) min
g f =∑ f x − y đạt
Hàm f tổng quát rất đa dạng Để đơn giản,
trong thực tế thường ta tìm hàm f theo các
dạng sau :
- f(x) = A + Bx
- f(x) = A+Bx+Cx2
- f(x) = Asinx+Bcosx
- f(x) = AeBx
- f(x) = AxB
- f(x) = AlnBx …
49
1 Trường hợp f(x) = A+ Bx :
Phương trình bình phương cực tiểu có dạng
2
g A B =∑ A Bx + − y Bài toán qui về tìm cực tiểu của hàm 2 biến g(A,B)
g
A Bx y A
g
A Bx y x B
∂
∂
∂
∂
∑
∑ Suy ra
2
k
50
Ví dụ : Tìm hàm f(x) = A + Bx xấp xỉ bảng số
x 1 1 2 2 2 3 3 4 5 6
y 1 2 2 3 4 4 5 5 6 7
Theo pp BPCT
Giải hệ pt
2
⇒
Nghiệm A = 0.7671, B=1.0803
Vậy f(x) = 0.7671+1.0803x
giải
2 Trường hợp f(x) = Acosx + Bsinx :
Phương trình bình phương cực tiểu có dạng
2
( , ) ( cos k sin k k)
g A B =∑ A x + B x − y Bài toán qui về tìm cực tiểu của hàm 2 biến g(A,B)
Điểm dừng 2 ( cos sin )cos 0
g
A g
B
∂
∂
∂
∂
∑
∑
2
Trang 14Ví dụ : Tìm hàm f(x)=Acosx+Bsinx xấp xỉ bảng số
x 10 20 30 40 50
y 1.45 1.12 0.83 1.26 1.14
Theo pp BPCT
Giải hệ pt
Nghiệm A = -0.1633, B=0.0151
Vậy f(x) = -0.1633cosx+0.0151sinx
2
2
( cos ) ( sin cos ) cos ( sin cos ) ( sin ) sin
⇒
rad
53
3 Trường hợp f(x) = Ax2 + Bsinx :
Phương trình bình phương cực tiểu có dạng
( , ) ( k sin k k)
g A B =∑ Ax + B x − y Bài toán qui về tìm cực tiểu của hàm 2 biến g(A,B)
Điểm dừng
2
g
Ax B x y x A
g
B
∂
∂
∂
∂
∑
∑
54
Ví dụ : Tìm hàm f(x)=Ax 2 +Bsinx xấp xỉ bảng số
x 1.3 1.5 1.8 2.0 2.4 2.6 2.7
y 2.7 1.8 3.51 3.1 3.78 3.9 4.32
Theo pp BPCT
Giải hệ pt
Nghiệm A = 0.4867, B=1.4657
Vậy f(x) = 0.4857x 2 + 1.4657sinx
166.4355 21.1563 112.015 21.1563 4.6033 17.0441
⇒
4 Trường hợp f(x) = A+ Bx+Cx2:
Phương trình bình phương cực tiểu có dạng
g A B C =∑ A Bx + + Cx − y Bài toán qui về tìm cực tiểu của hàm 3 biến g(A,B,C)
2
g
A B x C x y A
g
A Bx C x y x B
g
A Bx C x y x C
∂
∂
∂
∂
∂
∂
∑
∑
∑
Trang 15Ví dụ : Tìm hàm f(x) = A + Bx+Cx 2 xấp xỉ bảng số
x 1 1 2 3 3 4 5
y 4.12 4.18 6.23 8.34 8.38 12.13 18.32
Theo pp BPCT
Giải hệ pt
Nghiệm A = 4.3, B=-0.71, C=0.69
Vậy f(x) = 4.3-0.71x+0.69x 2
2
( ) ( )
( ) ( ) ( )
( ) ( ) ( )
k
k
nA x B x C y
x A x B x C x y
x A x B x C x y
57