Tải bản đầy đủ (.ppt) (26 trang)

Bài giảng phương pháp tính chương 3 nội suy và bình phương cực tiểu TS nguyễn quốc lân

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (972.16 KB, 26 trang )

BỘ MÔN TOÁN ỨNG DỤNG - ĐHBK

PHƯƠNG PHÁP TÍNH – HK 2 0506
CHƯƠNG 3
NỘI SUY VÀ BÌNH PHƯƠNG CỰC TIỂU

TS. NGUYỄN QUỐC LÂN (04/2006)
NỘI DUNG

1- NỘI SUY ĐA THỨC LAGRANGE
2- SAI SỐ NỘI SUY LAGRANGE
5- BÌNH PHƯƠNG CỰC TIỂU
3- NỘI SUY NEWTON (MỐC CÁCH ĐỀU)
4- NỘI SUY GHÉP TRƠN (SPLINE) BẬC BA
BÀI TOÁN TỔNG QUÁT VỀ NỘI SUY

x
k
: mốc nội suy, y
k
: giá trị (hàm) nội suy
Từ bảng này, nội suy giá trị y
bảng
tại điểm x = α?
Moác noäi suy x
0
x
1
… x = α ∉{ x
k
} … x


n-1
x
n

Giaù trò noäi suy y
0
y
1
… y = ? … y
n-1
y
n

Nội suy đa thức: Xác định đa thức y = P(x) thoả điều kiện nội
suy P(x
k
) = y
k
, k = 0 … n ⇒ y
bảng
≈ P(α)
Nội suy: Bảng chứa (n+1) cặp dữ liệu { (x
k
, y
k
) }, k = 0 → n
NỘI SUY ĐA THỨC LAGRANGE

Bảng chứa (n+1) cặp số liệu {(x
k

,y
k
)} , k = 0 → n
∃! đa thức L(x), bậc ≤ n, thoả đ/kiện nội suy L(x
k
) = y
k
, k = 0 … n
Cách 1: 3 mốc ⇒ n = 2 ⇒ L(x) = ax
2
+ bx + c (3 hệ số cần tìm)
Tìm đa thức nội suy Minh hoạ bảng 3 dữ liệu: {(x
k
,y
k
)} , k=0→2
Tại x = 3, y
bảng
≈?
Moác noäi suy x
k
2 2.5 4
Giaù Trò noäi suy y
k
0.5 0.4 0.25
( )
( )
( )






=
=
=
25.04
4.05.2
5.02
L
L
L





=++
=++
=++

25.0416
4.05.225.6
5.024
cba
cba
cba
y
bảng
≈ L(3) = 0.325

VÍ DỤ SAI SỐ

[ ]
( )
( )
( )
( ) ( )
xn
n
ba
xxxx
n
xf
xLxf
taïi suy Noäi
∆=−−
+
≤−
+

0
1
,
!1
max
)()(
Sai số:
Giải:
( )
[ ] [ ]

2
5
144,100
)3(
,
8
3
max)(max

==⇒= xxfMxxf
ba
( ) ( )
≤− 115115 Lf
( )( )( )
144115121115100115
!3
1
M −−−⋅⋅
Kết quả: Nhắc lại: Sai số: luôn làm tròn lên!
Ước lượng sai số của việc xấp xỉ giá trị

bằng đa thức
nội suy Lagrange bậc hai hàm y =

xây dựng tại các mốc
x
0
= 100, x
1
= 121, x

2
= 144. Yêu cầu: Làm tròn kết quả (sai
số) đến chữ số lẻ thứ 4
115
x
NHIỀU MỐC → ĐA THỨC NỘI SUY CƠ SỞ

Đa thức nội suy cơ sở tại x
k
: L
k
(x
k
) = 1, L
k
(x
i
) = 0 ∀ i ≠ k
( )
( )( )
( )( )
45.225.2
42
1
−−
−−
=
xx
xL
( )

( )( )
( )( )
5.2424
5.22
2
−−
−−
=
xx
xL
Đa thức nội suy: L(x) = 0.5L
0
(x) + 0.4L
1
(x) + 0.25L
2
(x)
Moác NS 2 2.5 4
Giaù Trò NS 0.5 0.4 0.25
ÑTNSCS L
0
(x) 1 0 0
ÑTNSCS L
1
(x) 0 1 0
ÑTNSCS L
2
(x) 0 0 1
Thiết lập công thức tổng quát với (n + 1) mốc {(x
k

, y
k
)}?
3 mốc ⇒ 3 ĐT NSCS
( )
xL
0
( )
xL
1
( )
xL
2
( )
xL
( )( )
( )( )
425.22
45.2
)(
0
−−
−−
=
xx
xL
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
cơ sở L

k
(x) tại x
k
(k = 0 … n): L
k
(x
k
) = 1, L
k
(x
i
) = 0 ∀ i ≠ k:
( )
( ) ( ) ( ) ( ) ( )



=======
=
+−
0
1
1110 nkkkkkkk
kk
xLxLxLxLxL
xL

( ) ( )( ) ( )
( ) ( )( ) ( )
nk

xxxxxxxx
xxxxxxxx
xL
nkkkkkk
nkk
k
≤≤
−−−−
−−−−
=
+−
+−
0,)(
110
110


)()()()(
1100
xLyxLyxLyxL
nn
+++=⇒  suy noäi thöùc Ña
Ư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 {x
k
} (0 ≤ k ≤ n), không phụ thuộc y
k
VÍ DỤ

Bảng 4 mốc 1, 2, 3, 4 ; 4 giá trị 5, 7, 8, 9. Viết ra biểu thức

các đa thức nội suy cơ sở. Tính giá trị bảng tại x = 3.5?
=)5.3(
2
L
=)5.3(
3
L
( )
( )( )( )
( )( )( )
413121
432
0
−−−
−−−
=
xxx
xL
( )
0625.05.3
0
=⇒ L
( )
( )( )( )
( )( )( )
=
−−−
−−−
=
423212

45.335.315.3
5.3
1
L
( )
)(98)(7)(5)(
3210
xLxLxLxLxL +++=
( )
4375.85.3 =⇒ L
Viết biểu thức L
k
(x) (Không tính!) Thay x → Giá trị
NỘI SUY NEWTON – MỐC CÁCH ĐỀU

Bảng {(x
k
,y
k
)} , k = 0 → n, mốc nội suy cách đều: x
0
, x
1
=
x
0
+ h, x
2
= x
1

+ h … x
n
= x
n-1
+ h. Lập bảng sai phân :
Moác NS Gtrò NS

x
0
y
0

x
1
y
1

x
2
y
2

x
3
y
3

k
y∆
k

y
2

k
y
3

0
y∆
1
y∆
2
y∆
0
2
y∆
1
2
y∆
0
3
y∆

2
y
k
= ∆y
k+1
– ∆y
k


Cấp 1: ∆y
k
= y
k+1
– y
k
Ví dụ: ∆y
0
= y
1
– y
0

2
3
x
k
y
k
∆y ∆
2
y
1 2
2 4
3 7
1
VD: Bảng sai
phân 3 mốc
(cách đều)

ĐA THỨC NỘI SUY NEWTON

Đa thức nội suy Newton tiến: x ≈x
0
(đầu bảng)
h
xx
t
0

=
⇔ x = x
0
+th ⇒ Đa thức nội suy tiến:
( )
( )
00
2
00
!
)1()1(
!2
1
y
n
nttt
y
tt
ytyxN
n


+−−
++∆

+∆+=


Đa thức nội suy Newton lùi: x ≈ x
n
(cuối bảng)
h
xx
t
n

=
⇔ x = x
n
+ th ⇒ Đa thức nội suy lùi:
( )
( )
02
2
1
!
)1(
!2
1
y
n

ntt
y
tt
ytyxN
n
nnn

−+
++∆
+
+∆+=
−−


Đa thức theo t & Sai phân nằm trên đường chéo tiến
Sai phân nằm trên đường chéo lùi (từ cuối bảng đi lên)
VÍ DỤ NỘI SUY NEWTON

Cho bảng giá trị sinx từ 15° → 55°. Xây dựng đa
thức nội suy tiến (lùi) cấp 3 & tính sin16° (sin54°)
x y ∆y ∆
2
y ∆
3
y
15 0.2588
20 0.3420
25 0.4226
30 0.5
35 0.5736

40 0.6428
45 0.7071
50 0.7660
55 0.8192
VÍ DỤ NỘI SUY NEWTON

Tất cả sai phân: Nội suy Newton ≡ Lagrange!
Đa thức nội suy tiến: x ≈ 15°
( ) ( )( )
!3
21
0006.0
2
1
0026.00832.02588.0)(
1
−−


−+=
ttttt
ttN
tx
x
t 515
5
15
+=⇔

=⇒

x = 16° ⇒
t = 0.2 ⇒ N
1
(0.2) = 0. 2756
sin16° = 0. 2756
Đa thức nội suy lùi: x ≈ 55°
tx
x
t 555
5
55
+=⇔

=⇒
( ) ( )( )
!3
21
0003.0
2
1
0057.00532.08192.0)(
2
++

+
−+=
ttttt
ttN
x = 54°


t = –0.2 ⇒ N
2
(–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?
HIỆN TƯỢNG RUNGE

Nội suy hàm f(x) = 1/(1+ 25x
2
), x ∈ [-1, 1] bằng đa
thức nội suy, 5 mốc cách đều. Tính L(0.95), so sánh
giá trị tính được với giá trị chính xác f(0.95)
Lập bảng nội suy: 5 mốc cách đều trên [–1, 1] ⇒
x
0
= –1, x
1
= –0.5, x
2
= 0, x
3
= 0.5, x
4
= 1 & y
k
= f(x
k
)
038.0
138.0

1
138.0
038.0
Giá trị L(0.95) = Giá trị chính xác f(0.95) = 0.04
x
k
–1 –0.5 0. 0.5 1.
y
k
KẾT QUẢ

So sánh đồ thị hàm ban đầu f(x) và đa thức nội suy P
4
(x)
Tăng số nút có thể khiến sai số tăng!
NỘI SUY GHÉP TRƠN

Nội suy Lagrange: Bậc quá lớn ⇒ Đồ thị phức tạp
Thay đa thức
nội suy bậc n
bằng đa thức
nội suy bậc
thấp (bậc 1, 2,
3 …) trên
từng đoạn
[x
k
, x
k+1
],

k = 0 … n – 1
Ý TƯỞNG NỘI SUY GHÉP TRƠN BẬC 3

[ ]
10
, xx
[ ]
21
, xx
[ ]
32
, xx
( )
xS
0
( )
xS
1
( )
xS
2
( ) ( )
( ) ( )
( ) ( )





=

=
=
1110
1110
1110
''''
''
xSxS
xSxS
xSxS
( )
0''
00
=xS
( )
000
yxS =
( )
110
yxS =
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
hàm đến cấp 2 nội suy bảng số liệu sau:
Hàm nội suy:
( )
( )
[ ]
( )
[ ]




∈+++=
∈+++=
=
3,2,
2,1,
3
1
2
1111
3
0
2
0000
xxdxcxbaxS
xxdxcxbaxS
xS
Dạng thuận tiện hơn:
( )
( ) ( )
[ ]
( ) ( )
[ ]



∈+−+=
∈+−+=

=
3,2,2
2,1,1
111
000
xxbaxS
xxbaxS
xS


x 1 2 3
y 2 3 –4
NỘI SUY SPLINE (GHÉP TRƠN) BẬC 3

1/ Hàm dạng bậc 3 trên từng đoạn [x
k
,x
k+1
], k = 0 → n –1
2/ Điều kiện nội suy: S(x
k
) = y
k
, k = 0, 1 … n
3/ Ghép trơn:

4/ Điều kiện biên tự nhiên: S’’(x
0
) = S’’(x
n

) = 0





( ) ( )
111 +++
=
kkkk
xSxS
( ) ( )
111
''
+++
=
kkkk
xSxS
( ) ( )
111
""
+++
=
kkkk
xSxS
( )
20 −→= nk
( ) ( ) ( )
[ ]
( ) ( ) ( )

[ ]
( ) ( )
[ ]







∈+−+−+=
∈−+−+−+=
∈−+−+−+=
=
−−−−−−− nnnnnnnn
xxxxxcxxbaS
xxxxxdxxcxxbaS
xxxxxdxxcxxbaS
S
,,
,,
,,
1
2
111111
21
3
11
2
111111

10
3
00
2
000000


GIẢI THUẬT NỘI SUY SPLINE BẬC 3

I/ Độ dài h
k
= x
k+1
– x
k
, k = 0 … n –1. Hệ số a
k
= y
k
, k = 0 … n
Bước III:
II/ c = [c
0
, … c
n
]
T
là nghiệm (c
n
= S’’(x

n
)/2) hệ Ac = e với


















+
+
+
=
−−−−
10 0
)(20

0)(20
00)(2

00001
1122
2211
1100
nnnn
hhhh
hhhh
hhhh
A










































=

−−


0
)(3)(3

)(3)(3
)(3)(3

0
2
21
1
1
1
12
2
23
0
01
1
12
n
nn
n
nn
h
aa
h
aa
h
aa
h
aa
h
aa
h
aa
e

1 0,
3
)2(
11
−=
+


=
++
nk
cch
h
aa
b
kkk
k
kk
k
10,
3
1
−=

=
+
nk
h
cc
d

k
kk
k

VÍ DỤ NỘI SUY SPLINE (GHÉP TRƠN) BẬC 3

Lập hàm nội suy spline bậc 3 g(x) thoả điều kiện biên
tự nhiên và nội suy bảng sau
Bước I: Độ dài bước chia

.1
210
=== hhh
Moác NS x
0
= 1 x
1
= 2 x
2
= 3 x
3
= 4
Giaù trò NS y
0
= 2 y
1
= 1 y
2
= 3 y
3

= 2





=S
( ) ( ) ( )
[ ]
2,1,111
3
0
2
000
∈−+−+−+ xxdxcxba
( ) ( ) ( )
[ ]
3,2,222
3
1
2
111
∈−+−+−+ xxdxcxba
( ) ( ) ( )
[ ]
4,3,333
3
2
2
222

∈−+−+−+ xxdxcxba
Hàm spline

2,3,1,230,
3210
====⇒≤≤= aaaakya
kk
Hệ số:

BẢNG TÍNH NỘI SUY SPLINE (GHÉP TRƠN) BẬC 3

Bước II: c
3
= g”(x
3
)/2 ⇒ c = [c
0
, c
1
, c
2
, c
3
]
T
là nghiệm
k h
k
a
k

b
k
e
k
c
k
d
k

0 1 2 0 0
1 1 1
2 1 3
3 2 0 0
III/ b
k
, d
k
, 0 ≤ k ≤ 2:


0
01
0
3h
cc
d

=
( )


3
2
100
0
01
0
cch
h
aa
b
+


=
BÌNH PHƯƠNG CỰC TIỂU

Thực nghiệm: Thống kê lượng mưa 12 tháng & vẽ đồ thị
Thaùng 1 2 3 4 5 6 7 8
Löôïng möa 550 665 540 580 610 605 570 …
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU (BPCT)

Nhiều dữ liệu & y
k
có sai số: Aùp đặt L(x
k
) = y
k
: vô nghĩa!
)(xhy =
( )

kk
yxh −
[ ]
min)(
1
2
→−=

=
n
k
kk
yxhF
Giải quyết: h(x) xấp xỉ bảng {(x
k
, y
k
)} theo nghĩa BPCT
TRƯỜNG HỢP TUYẾN TÍNH

h tuyến tính: h(x) = ax + b
( )
[ ]

=
−+=⇒
n
k
kk
ybaxbaF

1
2
,
Điểm dừng:






=


=


0
0
b
F
a
F







=+

=+

∑∑
∑∑∑
==
===
n
k
k
n
k
k
n
k
kk
n
k
k
n
k
k
ynbxa
yxxbxa
11
111
2
Giải hệ 2 phương trình 2 ẩn tìm a, b. So với đường cong y
= h
1
(x) ⇔ Tổng S = Σ (h

1
(x
k
) – y
k
)
2
: càng bé càng tốt
VD: Tìm hàm bậc 1 xấp xỉ bảng sau theo nghĩa BPCT
x
k
1 2 3 4 5 6 7 8 9 10
y
k
1.3 3.5 4.2 5.0 7.0 8.8 10.1 12.5 13. 15.6
ĐA THỨC BÌNH PHƯƠNG CỰC TIỂU BẬC CAO

h(x) = ax
2
+ bx + c
( )
[ ]

=
−++=⇒
n
k
kkk
ycbxaxcbaF
1

2
2
,,
Điểm dừng:








=


=


=


0
0
0
c
F
b
F
a
F










=++
=++
=++




=
=
=



ncbxa
cbxa
cbxa
n
k
k
n
k

k
n
k
k
1
2
1
3
1
4
Tổng quát: Điểm dừng hàm tổng bình phương độ lệch
h = ax
2
+ bx
( )
[ ]

=
−+=⇒
n
k
kkk
ybxaxbaF
1
2
2
,
0=



=



b
F
a
F

×