BỘ MÔN TOÁN ỨNG DỤNG - ĐHBK
om
-------------------------------------------------------------------------------------
ne
.C
PHƯƠNG PHÁP TÍNH – HK 2 0506
Zo
CHƯƠNG 3
nh
Vi
en
NỘI SUY VÀ BÌNH PHƯƠNG CỰC TIỂU
TS. NGUYỄN QUỐC LÂN (04/2006)
Si
•
SinhVienZone.com
/>
NỘI DUNG
-------------------------------------------------------------------------------------------------------------
.C
om
1- NỘI SUY ĐA THỨC LAGRANGE
Zo
ne
2- SAI SỐ NỘI SUY LAGRANGE
nh
Vi
en
3- NỘI SUY NEWTON (MỐC CÁCH ĐỀU)
4- NỘI SUY GHÉP TRƠN (SPLINE) BẬC BA
Si
5- BÌNH PHƯƠNG CỰC TIỂU
SinhVienZone.com
/>
BÀI TOÁN TỔNG QUÁT VỀ NỘI SUY
--------------------------------------------------------------------------------------------------------------------------
x0
x1
…
x = xk
…
xn-1
xn
Giá trò nội suy
y0
y1
…
…
yn-1
yn
ne
Mốc nội suy
.C
om
Nội suy: Bảng chứa (n+1) cặp dữ liệu { (xk, yk) }, k = 0 n
y=?
nh
Vi
en
Zo
xk : mốc nội suy, yk : giá trò (hàm) nội suy
Từ bảng này, nội suy giá trò ybảng tại điểm x = ?
Si
Nội suy đa thức: Xác đònh đa thức y = P(x) thoả điều kiện
nội suy P(xk) = yk, k = 0 … n ybảng P()
SinhVienZone.com
/>
NỘI SUY ĐA THỨC LAGRANGE
--------------------------------------------------------------------------------------------------------------------------
om
Bảng chứa (n+1) cặp số liệu {(xk,yk)} , k = 0 n
.C
! đa thức L(x), bậc n, thoả đ/kiện nội suy L(xk) = yk, k = 0 … n
Zo
ne
Tìm đa thức nội suy Minh hoạ bảng 3 dữ liệu: {(xk,yk)} , k=02
2
Giá Trò nội suy yk
0.5
nh
Vi
en
Mốc nội suy xk
2.5
4
0.4
0.25
Tại x = 3, ybảng ?
Cách 1: 3 mốc n = 2 L(x) = ax2 + bx + c (3 hệ số cần tìm)
4 a 2 b c 0 .5
6 . 25 a 2 . 5 b c 0 . 4
16 a 4 b c 0 . 25
Si
L 2 0 .5
L 2 .5 0 .4
L 4 0 . 25
SinhVienZone.com
ybảng L(3) = 0.325
/>
VÍ DỤ SAI SỐ
-----------------------------------------------------------------------------------------------------------------------------------
f (x) L(x)
n 1
x
x x 0 x x n Nội
om
a ,b
f
n 1 !
.C
Sai số:
max
ne
Ước lượng sai số của việc xấp xỉ giá trò
Zo
nội suy Lagrange bậc hai hàm y =
suy tại x
bằng đa thức
115
xây dựng tại các
x
nh
Vi
en
mốc x0 = 100, x1 = 121, x2 = 144. Yêu cầu: Làm tròn kết
quả (sai số) đến chữ số lẻ thứ 4
f 115
f x
x M max
Si
Giải:
a ,b
L 115 M
1
f
(3)
( x ) max
115 100
100
, 144
3
8
5
x
2
115 121 115 144
3!
Kết quả:
SinhVienZone.com
Nhắc lại: Sai số: luôn làm tròn lên!
/>
NHIỀU MỐC ĐA THỨC NỘI SUY CƠ SỞ
----------------------------------------------------------------------------------------------------------------------
Mốc NS
2
2.5
4
Giá Trò NS
0.5
0.4
.C
om
Đa thức nội suy cơ sở tại xk: Lk(xk) = 1, Lk(xi) = 0 i k
ĐTNSCS L0(x)
1
0
ĐTNSCS L1(x)
0
x 2 x 4
2 . 5 2 2 . 5 4
Si
L1 x
ne
Zo
0
0
1
0
0
1
nh
Vi
en
ĐTNSCS L2(x)
0.25
L2 x
3 mốc 3 ĐT NSCS
L0 ( x )
x 2 . 5 x 4
2 2 . 5 2 4
L2 x
x 2 x 2 . 5
Lx
L1 x
4 2 4 2 . 5
L0 x
Đa thức nội suy: L(x) = 0.5L0(x) + 0.4L1(x) + 0.25L2(x)
Thiết lập công thức tổng quát với (n + 1) mốc {(xk, yk)}?
SinhVienZone.com
/>
CÔNG THỨC TỔNG QUÁT
--------------------------------------------------------------------------------------------------------------------------
(n+1) mốc (n+1) đa thức nội suy cơ sở. Đa thức nội suy
ne
.C
1
L k x1 L k x k 1 L k x k 1 L k x n 0
Zo
Lk xk
Lk x0
om
cơ sở Lk(x) tại xk (k = 0 … n): Lk(xk) = 1, Lk(xi) = 0 i k:
nh
Vi
en
Lk (x)
x x 0 x x k 1 x x k 1 x x n
x k x 0 x k x k 1 x k x k 1 x k x n
,0 k n
Si
Đa thức nội suy L ( x ) y 0 L 0 ( x ) y 1 L 1 ( x ) y n L n ( x )
Ưu điểm: Công thức tổng quát cho đa thức nội suy L(x)
Chỉ phụ thuộc bộ mốc {xk} (0 k n), không phụ thuộc yk
SinhVienZone.com
/>
VÍ DỤ
---------------------------------------------------------------------------------------------------------------------
om
Bảng 4 mốc 1, 2, 3, 4 ; 4 giá trò 5, 7, 8, 9. Viết ra biểu thức
ne
1 2 1 3 1 4
L 0 3 . 5 0 . 0625
L1 3 .5
nh
Vi
en
Zo
L0 x
x 2 x 3 x 4
.C
các đa thức nội suy cơ sở. Tính giá trò bảng tại x = 3.5?
3 . 5 1 3 . 5 3 3 . 5 4
2 1 2 3 2 4
L 2 (3 .5 )
L 3 (3 .5 )
Si
L ( x ) 5 L 0 ( x ) 7 L 1 ( x ) 8 L 2 x 9 L 3 ( x ) L 3 . 5 8 . 4375
Viết biểu thức Lk(x) (Không tính!) Thay x Giá trò
SinhVienZone.com
/>
NỘI SUY NEWTON – MỐC CÁCH ĐỀU
----------------------------------------------------------------------------------------------------------------
Bảng {(xk,yk)} , k = 0 n, mốc nội suy cách đều: x0, x1
Gtrò NS
x0
y0
x1
y1
x2
x3
.C
Mốc NS
nh
Vi
en
om
= x0 + h, x2 = x1 + h … xn = xn-1 + h. Lập bảng sai phân :
3
2
yk
yk
Zo
ne
yk
y0
y2
y1
y3
y2
2
y0
3
y0
2
y1
VD: Bảng sai
xk
yk
Ví dụ: y0 = y1 – y0
phân 3 mốc
1
2
3
2
4
7
Si
Cấp 1: yk = yk+1 – yk
2yk = yk+1 – yk …
SinhVienZone.com
(cách đều)
/>
y 2y
2
1
3
ĐA THỨC NỘI SUY NEWTON
-----------------------------------------------------------------------------------------------------------------
h
t t 1
2!
2
y0
t ( t 1) ( t n 1)
n!
n
y0
Zo
N x y 0 t y 0
.C
x = x0 +th Đa thức nội suy tiến:
ne
t
x x0
om
Đa thức nội suy Newton tiến: x x0 (đầu bảng)
nh
Vi
en
Đa thức theo t & Sai phân nằm trên đường chéo tiến
Đa thức nội suy Newton lùi: x xn (cuối bảng)
h
x = xn + th Đa thức nội suy lùi:
Si
t
x xn
N x y n t y n 1
t t 1
2!
2
yn2
t ( t n 1)
n!
n
y0
Sai phân nằm trên đường chéo lùi (từ cuối bảng đi lên)
SinhVienZone.com
/>
VÍ DỤ NỘI SUY NEWTON
-----------------------------------------------------------------------------------------------------------------
Cho bảng giá trò sinx từ 15 55. Xây dựng đa
0.3420
0.4226
0.5
0.5736
0.6428
0.7071
0.7660
0.8192
ne
20
25
30
35
40
45
50
55
y
2y
Zo
y
0.2588
Si
nh
Vi
en
x
15
.C
om
thức nội suy tiến (lùi) cấp 3 & tính sin16 (sin54)
SinhVienZone.com
/>
3y
VÍ DỤ NỘI SUY NEWTON
--------------------------------------------------------------------------------------------------------------------------
Đa thức nội suy tiến: x 15
x 15
t
x 15 5 t
om
5
t t 1
.C
N 1 ( t ) 0 . 2588 0 . 0832 t 0 . 0026
0 . 0006
2
3!
sin16 = 0. 2756
Zo
ne
x = 16 t = 0.2 N1(0.2) = 0. 2756
nh
Vi
en
Đa thức nội suy lùi: x 55
t
N 2 ( t ) 0 . 8192 0 . 0532 t 0 . 0057
t t 1 t 2
x 55
x 55 5 t
5
t t 1
0 . 0003
t t 1 t 2
2
3!
Si
x = 54 t = –0.2 N2(–0.2) = 0.80903 sin54 = 0. 8090
Câu hỏi: Tính tại x = 54 với Nội suy tiến. Nhận xét?
Tất cả sai phân: Nội suy Newton Lagrange!
SinhVienZone.com
/>
HIỆN TƯNG RUNGE
---------------------------------------------------------------------------------------------------------------
Nội suy hàm f(x) = 1/(1+ 25x2), x [-1, 1] bằng đa
om
thức nội suy, 5 mốc cách đều. Tính L(0.95), so sánh
ne
.C
giá trò tính được với giá trò chính xác f(0.95)
Zo
Lập bảng nội suy: 5 mốc cách đều trên [–1, 1]
nh
Vi
en
x0 = –1, x1 = –0.5, x2 = 0, x3 = 0.5, x4 = 1 & yk = f(xk)
yk
–1
Si
xk
0 . 038
Giá trò L(0.95) =
SinhVienZone.com
–0.5
0.
0 . 138
1
0.5
1.
0 . 138
0 . 038
Giá trò chính xác f(0.95) = 0.04
/>
KẾT QUẢ
--------------------------------------------------------------------------------------------------------------
Si
nh
Vi
en
Zo
ne
.C
om
So sánh đồ thò hàm ban đầu f(x) và đa thức nội suy P4(x)
Tăng số nút có thể khiến sai số tăng!
SinhVienZone.com
/>
NỘI SUY GHÉP TRƠN
-------------------------------------------------------------------------------------------------------------
om
Nội suy Lagrange: Bậc quá lớn Đồ thò phức tạp
.C
Thay đa thức
nh
Vi
en
nội suy bậc
Zo
bằng đa thức
ne
nội suy bậc n
thấp (bậc 1, 2,
3 …) trên từng
Si
đoạn
[xk,
xk+1],
k=0…n–1
SinhVienZone.com
/>
YÙ TÖÔÛNG NOÄI SUY GHEÙP TRÔN BAÄC 3
-----------------------------------------------------------------------------------------------------------
om
ne
S2 x
nh
Vi
en
Zo
S0 x
S1x
.C
S 0 x1 y1
S 0 x0
0
Si
S ' '0 x 0
y0
x 0 , x1
SinhVienZone.com
S 0 x1 S 1 x1
S ' 0 x 1 S '1 x 1
S ' ' 0 x 1 S ' '1 x 1
x1 , x 2
/>
x2 , x3
XÂY DỰNG HÀM NỘI SUY GHÉP TRƠN BẬC 3
-----------------------------------------------------------------------------------------------------------------
Tìm hàm bậc 3 trên từng đoạn, liên tục và có đạo
2
2
3
3
–4
.C
y
Zo
ne
1
nh
Vi
en
Hàm nội suy:
x
om
hàm đến cấp 2 nội suy bảng số liệu sau:
S 0 x a 0 b 0 x c 0 x d 0 x , x 1 , 2
S x
2
3
S
x
a
b
x
c
x
d
x
, x 2 ,3
1
1
1
1
1
2
3
Si
Dạng thuận tiện hơn:
S 0 x a 0 b 0 x 1 , x 1 , 2
S x
S 1 x a 1 b1 x 2 , x 2 , 3
SinhVienZone.com
/>
NỘI SUY SPLINE (GHÉP TRƠN) BẬC 3
--------------------------------------------------------------------------------------------------------------------------
om
1/ Hàm dạng bậc 3 trên từng đoạn [xk,xk+1], k = 0 n –1
S 0 a 0 b 0 x x 0 c 0 x x 0 d 0 x x 0 , x x 0 , x1
2
3
S 1 a 1 b1 x x 1 c 1 x x 1 d 1 x x 1 , x x 1 , x 2
S
2
S
a
b
x
x
c
x
x
, x x n 1 , x n
n 1
n 1
n 1
n 1
n 1
n 1
3
nh
Vi
en
Zo
ne
.C
2
2/ Điều kiện nội suy: S(xk) = yk, k = 0, 1 … n
Si
3/ Ghép trơn:
S x k 1 S k 1 x k 1
k
S k ' x k 1 S k 1 ' x k 1 k 0
S k " x k 1 S k 1 " x k 1
4/ Điều kiện biên tự nhiên: S’’(x0) = S’’(xn) = 0
SinhVienZone.com
/>
n 2
GIẢI THUẬT NỘI SUY SPLINE BẬC 3
------------------------------------------------------------------------------------------------------------------------
om
I/ Độ dài hk = xk+1 – xk, k = 0 … n –1. Hệ số ak = yk, k = 0 … n
.C
II/ c = [c0, … cn]T là nghiệm (cn = S’’(xn)/2) hệ Ac = e với
Si
nh
Vi
en
Zo
ne
0
0 0
0
1
h 0 2 ( h 0 h1 ) h1 0
0
0
h1 2 ( h1 h 2 ) h 2 0
A
.......... .......... .......... .......... .......... ..........
0
hn 2 2 ( hn 2 hn 1 ) hn 1
0
1
0 .......... .......... ....
Bước III:
bk
dk
SinhVienZone.com
a k 1 a k
hk
c k 1 c k
3hk
0
3 ( a 2 a1 )
3 ( a1 a 0 )
h1
h0
3(a3 a2 )
3 ( a 2 a1 )
h2
h1
e
.......... .......... .......... .......... ..
3 ( a n 1 a n 2 )
3 ( a n a n 1 )
hn 1
hn 2
0
h k ( 2 c k c k 1 )
, k 0 ... n 1
3
,
k 0
n 1
/>
VÍ DỤ NỘI SUY SPLINE (GHÉP TRƠN) BẬC 3
-------------------------------------------------------------------------------------------------------------------
om
Lập hàm nội suy spline bậc 3 g(x) thoả điều kiện biên
x0 = 1
Giá trò NS
y0 = 2
x1 = 2
x2 = 3
x3 = 4
y1 = 1
y2 = 3
y3 = 2
nh
Vi
en
Zo
ne
Mốc NS
.C
tự nhiên và nội suy bảng sau
a 0 b 0 x 1 c 0 x 1 d 0 x 1 , x 1 , 2
3
2
3
S a 1 b1 x 2 c 1 x 2 d 1 x 2 , x 2 , 3
a b x 3 c x 3 2 d x 3 3 , x 3 , 4
2
2
2
2
Si
Hàm spline
2
Bước I: Độ dài bước chia
Hệ số:
h 0 h1 h 2 1 .
a k y k , 0 k 3 a 0 2 , a 1 1, a 2 3 , a 3 2
SinhVienZone.com
/>
BẢNG TÍNH NỘI SUY SPLINE (GHÉP TRƠN) BẬC 3
-------------------------------------------------------------------------------------------------------------------------------
1
2
1
1
1
2
1
3
2
ck
0
0
0
0
dk
nh
Vi
en
3
ek
om
0
bk
.C
ak
ne
hk
Zo
k
Si
Bước II: c3 = g”(x3)/2 c = [c0, c1, c2, c3]T là nghiệm
III/ bk, dk, 0 k 2:
SinhVienZone.com
d0
c1 c 0
3 h0
b0
a1 a 0
h0
/>
h 0 2 c 0 c1
3
BÌNH PHƯƠNG CỰC TIỂU
---------------------------------------------------------------------------------------------------------
1
2
3
4
5
6
.C
Tháng
om
Thực nghiệm: Thống kê lượng mưa 12 tháng & vẽ đồ thò
7
Si
nh
Vi
en
Zo
ne
Lượng mưa 550 665 540 580 610 605 570
SinhVienZone.com
/>
8
…
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU (BPCT)
---------------------------------------------------------------------------------------------------------------------
Nhiều dữ liệu & yk có sai số: p đặt L(xk) = yk: vô nghóa!
.C
om
Giải quyết: h(x) xấp xỉ bảng {(xk, yk)} theo nghóa BPCT
n
2
ne
F h ( x k ) y k
hxk
Si
y h(x)
nh
Vi
en
Zo
k 1
min
SinhVienZone.com
/>
yk
TRƯỜNG HP TUYẾN TÍNH
--------------------------------------------------------------------------------------------------------------------------
F a , b ax
om
h tuyến tính: h(x) = ax + b
n
2
k 1
ne
.C
n
n
n 2
a
x b xk xk yk
F
k
0
k 1
a
k 1
k 1
n
n
F
0
a x k nb
b
yk
k 1
k 1
nh
Vi
en
Zo
Điểm dừng:
k
b yk
Giải hệ 2 phương trình 2 ẩn tìm a, b. So với đường cong y
= h1(x) Tổng S = (h1(xk) – yk)2: càng bé càng tốt
Si
VD: Tìm hàm bậc 1 xấp xỉ bảng sau theo nghóa BPCT
xk
1
2
3
4
5
6
7
yk
1.3
3.5
4.2
5.0
7.0
8.8
10.1
SinhVienZone.com
8
9
10
12.5 13. 15.6
/>
ĐA THỨC BÌNH PHƯƠNG CỰC TIỂU BẬC CAO
------------------------------------------------------------------------------------------------------------------------------
+ bx + c
n
F a , b , c
ax
om
h(x) =
ax2
2
k
bx
k
c yk
2
k 1
4
a xk b c
k 1
n
3
a xk b c
k 1
n
2
a
x
k b nc
k 1
ne
Zo
nh
Vi
en
Điểm dừng:
F
0
a
F
0
b
0
F
c
.C
n
Si
Tổng quát: Điểm dừng hàm tổng bình phương độ lệch
h = ax2 + bx
SinhVienZone.com
n
F a , b
ax
k 1
2
k
bx
k
yk
2
F
a
/>
F
b
0