111
Chương 5NỘISUYVÀXẤPXỈHÀM
5.1 NỘISUY BẰNG ĐA THỨC
Nội suy là cơ sở của nhiều khái niệm trong giải tích số. Đó là công cụ để
khôi phục các đặc trưng liên tục của một hàm số y=f(x) từ các tập hợp dữ liệu rời
rạc do đo đạc hay quan sát được. Khi f(x) là một hàm phức tạp, khó tính toán và
khảo sát thì cũng cần được xấpxỉ bởi một đa thức. Nộisuy đơn giản nhất là nội
suy bằng đa thức. Lý do đa thức là một hàm đơn giản: dễ tính đạo đạo hàmvà
nguyên hàm…
Nội suy bằng đa thức là tìm một đa thức P(x
i
) bậc n-1 qua n mốc nộisuy x
i
với
1,
i n
thỏa mãn P(x
i
)= f(x
i
). Nói cách khác, có thể mô tả tập các điểm dữ
liệu rời rạc của hàm y = f(x) dưới dạng bảng:
x x
1
x
2
x
n
y y
1
y
2
y
n
Sau đó tính các hệ số của đa thức P(x) bậc n-1 thỏa mãn:
y
i
=P (x
i
),
1,
i n
(5.1)
Bây giời ta cần xây dựng công thức tính các hệ số của đa thức P(x). Giả sử
đa thức P(x) được viết dưới dạng tường minh:
P(x) = p
1
x
n-1
+ p
2
x
n-2
+ +p
n-1
x+ p
n
Từ điều kiện (5.1), để tìm các hệ số p
i
của đa thức nộisuy P(x) ta có thể giải
hệ phương trình sau đây:
1 2
1 1 2 1 1 1 1
1 2
1 2 2 2 1 1 2
1 2
1 2 1
n n
n n
n n
n n
n n
n n n n n n
p x p x p x p y
p x p x p x p y
p x p x p x p y
112
hay
1 2
1 1 1
1 1
1 2
2 2
2 2 2
1 2
1
1
1
n
n
n
n n
n n n
x x x
p y
p y
x x x
p y
x x x
.
Ma trận hệ số của hệ phương trình chính là ma trận Vandermonde của
vector x=( x
1
,x
2
, x
n
). Do đó, để giải hệ phương trình trên có thể sử dụng một câu
lệnh đơn giản trong Matlab:
>> p =vander(x)\y (5.2)
Đa thức nộisuy được tính theo công thức trên đơn giản, nhưng khá cồng
kềnh. Tính hệ số của đa thức nộisuy dạng tường minh bằng giải hệ phương trình
như trên sẽ mất nhiều công sức tính toán khi số nút nộisuy lớn. Do đó ta cần phải
nghiên cứu một số phương pháp tìm đa thức nộisuy khác, đơn giản hơn.
Định lý 5.1 (Tính duy nhất của đa thức nội suy). Đa thức nộisuy bậc n-1
thoả mãn (5.1) là duy nhất.
Chứng minh.
Thật vậy. Giả sử có 2 đa thức nộisuy bậc n-1 là P(x) và Q(x) cùng thoả mãn
điều kiện (5.1). Nghĩa là y
i
=P(x
i
)=Q(x) với
1,
i n
.
Xét đa thức R(x)=P(x)-Q(x). Rõ ràng là:
R(x
i
)=P(x
i
)-Q(x
i
) =0 ,
1,
i n
.
Như vậy R(x) là đa thức bậc không quá n-1 nhưng có tới n nghiệm khác
nhau x
1
,x
2
, x
n
. Do đó R(x) =0 với mọi x, hay P(x)
Q(x). Điều đó chứng tỏ rằng
đa thức nộisuy bậc n-1 thỏa mãn (5.1) là duy nhất (đ.p.c.m).
Khi số nút nộisuy lớn, thì việc giải hệ phương trình như trên tốn rất nhiều
công sức. Sau đây chúng ta sẽ nghiên cứu một số phương pháp khác để tìm đa
thức nộisuy mà không cần giải hệ phương trình.
5.1.1 Đa thức nộisuy Lagrange
Trước hết ta xây dựng các đa thức cơ bản như sau:
1 2 1 1
i
1 2 1 1
L x
i i N
i i i i i i i N
x x x x x x x x x x
x x x x x x x x x x
với
1,
i n
.
113
Dễ thấy các đa thức cơ bản có tính chất:
0 khi i j
1 khi i j
i j
L x
Do đó nếu đặt P (x) =
n
i
ii
xLy
1
)( (5.3)
thì P(x) là đa thức bậc không quá n thoả mãn P(x
i
)=y
i
, với
1,
i n
. Do đó
P(x) chính là đa thức nộisuy bậc n-1 của hàm số đã cho. Đa thức dạng (5.3) còn
gọi là đa thức nộisuy Lagrange. Nó có dạng tổng của n đa thức bậc n-1.
Thí dụ 1. Xây dựng đa thức nộisuy Lagrange bậc 2 từ bảng dữ liệu có dạng
sau đây:
x x
1
x
2
x
3
y y
1
y
2
y
3
Giải: Ta có các đa thức nộisuy cơ bản:
2 3 1 3
1 2
1 2 1 3 2 1 2 3
( ) , ( )
x x x x x x x x
L x L x
x x x x x x x x
và
1 2
3
3 1 3 2
( )
x x x x
L x
x x x x
.
Do đó
2 3 1 3 1 2
1 2 3
1 2 1 3 2 1 2 3 3 1 3 2
( )
x x x x x x x x x x x x
P x y y y
x x x x x x x x x x x x
.
5.1.2 Đa thức nộisuy Newton
Nội suy bằng đa thức Lagrange là một phương pháp khá đơn giản, sử dụng
rất ít các kiến thức về đại số, nên dễ nhớ. Tuy nhiên đây lại là một phương pháp
kém hiệu quả. Bây giờ xét trường hợp giữ bảng dữ liệu cũ và bổ sung thêm một
nút nộisuy mới (để hàm số được nộisuy chính xác hơn) thì tất cả các đa thức nội
suy cơ bản lại phải tính toán lại từ đầu. Thay cho công thức nộisuy dạng
Lagrange ta viết đa thức nộisuy P(x) dưới dạng:
P(x)= a
1
+ a
2
(x-x
1
) + a
3
(x-x
1
)(x-x
2
)+…+ a
N
(x-x
1
)(x-x
2
)(x-x
3
) (x-x
n-1
) (5.4)
Các hệ số a
i
của đa thức có thể được tính trong bảng tỉ hiệu (tỉ sai phân)
theo công thức qui nạp như sau:
114
1
1 1
1
,
i i
i i
i i
y y
f x x
x x
: Tỉ hiệu cấp 1 tại x
i
;
1 1 2 1 1
2 1 2
2
[ , ] [ , ]
, ,
i i i i
i i i
i i
f x x f x x
f x x x
x x
: Tỉ hiệu cấp 2 tại x
i
;…
1 1 2 1 1 1
[ , , , ] [ , , , ]
, ,
k i i i k k i i i k
k i i k
i k i
f x x x f x x x
f x x
x x
:Tỉ hiệu cấp k tại x
i
;
…
2 2 3 2 1 2 1
1 1 2
1
[ , , , ] [ , , , ]
, , ,
n n n n
n n
n
f x x x f x x x
f x x x
x x
:Tỉ hiệu cấp n-1 tại x
1
.
Tại nút x
i
chỉ phải tính các tỉ hiệu cấp 1 đến cấp n-i. Ta lập một bảng để
thuận tiện khi tính toán các tỉ hiệu.
Bảng 5-1
Bảng tỉ hiệu với 6 núy nộisuy
x y
f
1
f
2
f
3
f
4
f
5
x
1
y
1
f
1
[x
1
,x
2
]
f
1
[x
2
,x
3
]
f
1
[x
3
,x
4
]
f
1
[x
4
,x
5
]
f
1
[x
5
,x
6
]
x
2
y
2
f
2
[x
1
,x
2
,x
3
]
f
3
[x
1
,x
2
,x
3
,x
4
]
f
3
[x
2
,x
3
,x
4
,x
5
]
f
3
[x
3
,x
4
,x
5
,x
6
]
x
3
y
3
f
2
[x
2
,x
3
,x
4
]
f
4
[x
1,
x
2
,x
3
,x
4
,x
5
]
f
5
[x
1
,x
2
,x
3
,x
4
,x
5
,x
6
]
x
4
y
4
f
2
[x
3
,x
4
,x
5
]
f
4
[x
2
,x
3
,x
4
,x
5
,x
6
]
x
5
y
5
f
2
[x
4
,x
5
,x
6
]
x
6
y
6
Khi đó các hệ số của đa thức nộisuy (5.4) được xác định như sau:
a
1
=y
1
, a
2
= f
1
[x
1
,x
2
], a
3
= f
2
[x
1
,x
2
,x
3
] a
n
= f
n-1
[x
1
,x
2
,x
3
, ,x
n
].
Công thức (5.4) với cách tính các hệ số a
i
như trên gọi là công thức nộisuy
Newton tiến xuất phát từ x
1
. Với công thức này, khi thêm một nút nộisuy mới
x
n+1
thì ta chỉ cần tính thêm một hệ số mới a
n+1
. Khi đó bảng tỉ hiệu chỉ phải thêm
một dòng. Mặt khác, nếu chú ý ta thấy công thức Newton không đòi hỏi sự sắp
xếp thứ tự về giá trị của dữ liệu, nên khi đảo ngược thứ tự của dữ liệu thì dạng
mới của đa thức nộisuy là:
P(x)=b
1
+ b
2
(x-x
n
) + b
3
(x-x
n
)(x-x
n-1
)+…+b
n
(x-x
n
)(x-x
n-1
)(x-x
n-2
) (x-x
2
) ( 5.5)
Khi đó các hệ số của đa thức nộisuy dạng (5.5) được xác định như sau:
b
1
=y
n
, b
2
= f
1
[x
n-1
,x
n
], b
3
= f
2
[x
n-2
,x
n-1
,x
n
] b
n
= f
n-1
[x
1
,x
2
,x
3
, ,x
n
].
115
Công thức với cách tính các hệ số b
i
như trên gọi là công thức nộisuy
Newton lùi xuất phát từ x
n
. Do định lý 5.1 có thể thấy công thức Lagrange và
các công thức Newton tiến hay lùi đều xác định cùng một đa thức, chỉ có hình
thức thể hiện là khác nhau và thuận tiện áp dụng cho các trường hợp khác nhau.
Thí dụ 2. Cho hàm y =f(x) dưới dạng bảng số sau:
x 1 2 3 5 6 8
y 5,230 2,092 1,406 -1,202 -1,321 0,015
Hãy lập đa thức nộisuy cho hàm F(x) đã cho dưới dạng:
a. Tường minh;
b. Lagrange;
c. Newton tiến xuất phát từ x
1
=1.
d. Newton lùi xuất phát từ x
6
=8.
Giải.
a. Để tìm hệ số tường minh của đa thức P(x) ta sử dụng công thức (5.2):
>> x=[1 2 3 5 6 8];
>> y=[ 5.230 ; 2.092; 1.406; -1.202 ; -1.321; 0.015];
>> p=vander(x)\y
p =
-0.0187
0.4201
-3.4803
13.2919
-24.3719
19.3890
Do đó :
5 4 3 2
0,0187 0,4201 3,4803 + 13.2919 24,3719 19,389
0
P x x x x x x
b. Lập đa thức nộisuy Lagrange:
( 2)( 3)( 5)( 6)( 8) ( 1)( 3)( 5)( 6)( 8)
( ) 5,230 2,092
(1 2)(1 3)(1 5)(1 6)(1 8) (2 1)(2 3)(2 5)(2 6)(2 8)
x x x x x x x x x x
P x
133
BÀI TẬP
A. Cài đặt chương trình và lập hàm.
1. Cho tập dữ liệu {(x
i
,y
i
)},
ni ,1
. Cài đặt hàm tính vector hệ số:
a=(a
1
,a
2
, a
3
,…, a
n
)
của đa thức nộisuy Newton tiến bậc n-1, xuất phát từ x
1
:
P(x) = a
1
+a
2
(x-x
1
)+ a
3
(x-x
1
)(x-x
2
)
+ + a
n
(x-x
1
)(x-x
2
)…(x-x
n-1
)
theo bảng tỉ hiệu. Lệnh gọi hàm có dạng:
a = NewtonFit(x,y).
2. Cho tập dữ liệu (x
i
,y
i
)},
ni ,1
. Cài đặt hàm tính xấpxỉ giá trị của đa thức nội
suy P(x) bậc n-1 tại xx=(xx
1
, xx
2
,xx
3
,…,xx
m
) bằng phương pháp Lagrange.
Lệnh gọi hàm có dạng:
yy = Lagrange(x,y,xx)
trong đó yy là vector giá trị hàm tại xx tính được.
3. Cho tập dữ liệu {(x
i
,y
i
)},
ni ,1
. Cài đặt hàm tính hệ số a, b và c của quan hệ
hàm y = ax
2
+ bx + c theo phương pháp bình phương tối thiểu. Lệnh gọi hàm
có dạng:
[a,b,c] =ParaboFit(x,y).
4. Cho tập dữ liệu {(x
i
,y
i
)},
ni ,1
. Cài đặt hàm tính hệ số a, b và c của quan hệ
hàm y = a +b cosx+ c sinx theo phương pháp bình phương tối thiểu. Lệnh gọi
hàm có dạng:
[a,b,c] =CosSinFit(x,y).
5. Cho tập dữ liệu {(x
i
,y
i
)},
ni ,1
. Xây dựng công thức tính và cài đặt hàm tính
hệ số a và b của quan hệ hàm y = ae
bx
(a>0) theo phương pháp bình phương
tối thiểu. Lệnh gọi hàm có dạng:
[a,b] =ExpFit(x,y).
134
B. Sử dụng các hàmnội trú của Matlab.
1. Tìm xấpxỉ các hệ số của đa thức P(x) bậc 3 được cho trong bảng bằng phương
pháp bình phương tối thiểu và tính P(x) tại x= 1; 1,2; 1.4; ; 2,8; 3.
x
1 1,5 2 2,5 3 3,5
y 1,2341 3,9242 2,4563 - 0,2224 -1,3215 0,5506
2. Đa thức P(x)= ax
3
+ bx
2
+cx +d
đo được dưới dạng bảng:
x
1 1,5 2 2,5 3 3,5
y 5,23401 2,09242 1,40563 - 1,20224 -1,32105 0,01501
- Tìm các hệ số a, b, c, d bằng phương pháp bình phương tối thiểu.
- Tính P(x) tại x = 1,5; 1,6; 1,7; 3,2.
3. Hàm số y=f(x) được cho dưới dạng bảng:
x 1,0 1,5 2,0 2,5 3,0 3,5
y -2,95001 -2,90250 -1,00020 2,75754 8,37002 15,83752
Tính xấpxỉhàm f(x) tại x= 1; 1.1; 1.2; ; 3 bằng phương pháp spline bậc 3.
4. Hàm số y=f(x)
được cho bởi bảng số. Tính gần đúng f(x) tại x=1,25 bằng
phương pháp spline bậc 3:
x 1,0 1,1 1,2 1,3 1,4 1,5
y 3,85011 -2,30650 -1,12320 4,85754 8,36602 10,99154
5. Dùng ma trận pascal, đưa ra màn hình vector hệ số của khai triển nhị thức
Newton bậc 10
.
6. Hàm số y=f(x) được cho dưới dạng bảng, Tính vector hệ số của đa thức nội
suy bậc 5 bằng cách sử dụng ma trận Vandermonde
x 1,0 1,5 2,0 2,5 3,0 3,5
y -2,30650 -1,12320 -1,00020 2,75754 8,37002 15,83752
7. Cho 2 vector:
5x
10
+
12x
9
-4x
7
+3x
6
-5
x
2
-10 = 0
-3x
8
+
6x
5
+8x
7
+3x
3
+2x
4
-11x -2
= 0
Hãy tính vector p, q và s tương ứng là hệ số của tổng tích, thương và phần
dư phép chia của 2 đa thức đã cho.
.
111
Chương 5
NỘI SUY VÀ XẤP XỈ HÀM
5. 1 NỘI SUY BẰNG ĐA THỨC
Nội suy là cơ sở của nhiều khái niệm trong giải. xấp xỉ bởi một đa thức. Nội suy đơn giản nhất là nội
suy bằng đa thức. Lý do đa thức là một hàm đơn giản: dễ tính đạo đạo hàm và
nguyên hàm
Nội suy