LỜI CẢM ƠN
Để hoàn thành khóa luận với đề tài “Sử dụng ngôn ngữ lập trình Wolfram
Mathematica xấp xỉ hàm số bằng đa thức nội suy”, bên cạnh sự nỗ lực của bản
thân đã vận dụng những kiến thức tiếp thu được ở trường, tìm tòi học hỏi, em
luôn nhận được sự giúp đỡ, hướng dẫn tận tình của cô giáo Phạm Hồng Minh.
Em xin tỏ lòng biết ơn sâu sắc nhất đến cô – người đã trực tiếp hướng dẫn, chỉ
bảo để em hoàn thành khóa luận của mình.
Em xin chân thành cảm ơn Ban giám hiệu trường Đại học Quảng Bình,
toàn thể các thầy cô, đặc biệt là thầy cô giáo khoa Khoa học tự nhiên đã tận tình
giảng dạy và giúp đỡ em trong suốt thời gian qua. Cũng như những sự động
viên, giúp đỡ từ gia đình và bạn bè đã tạo điều kiện thuận lợi cho em trong suốt
quá trình thực hiện khóa luận.
Mặc dù đã có nhiều cố gắng để thực hiện khóa luận một cách hoàn chỉnh
nhất, song với thời gian và khả năng còn hạn chế, khóa luận không thể tránh
khỏi những thiếu sót. Em rất mong nhận được sự góp ý chân tình từ các thầy, cô
và bạn bè.
Cuối cùng, em xin kính chúc quý thầy, cô giáo sức khỏe và nhiều thành
công.
Em xin chân thành cảm ơn!
Đồng Hới, tháng 5 năm 2017
Sinh viên
Hoàng Thị Hòa
i
MỤC LỤC
LỜI CẢM ƠN ....................................................................................................... i
MỤC LỤC ............................................................................................................ ii
PHẦN MỞ ĐẦU .................................................................................................. 1
3.1. Các phép tính đại số ................................................................................... 27
4. Danh sách trong Mathematica ..................................................................... 30
4.1. Xây dựng danh sách ................................................................................... 30
4.2. Đếm các phần tử trong danh sách ............................................................ 31
4.3. Chuyển đổi dạng một danh sách ............................................................... 31
4.4. Tính toán với danh sách: ........................................................................... 31
5. Đồ họa với Mathematica ............................................................................... 32
5.1.Vẽ đồ thị trong mặt phẳng.......................................................................... 32
II. Lập trình Mathematica trong giải bài toán nội suy .................................. 35
1. Phép nội suy Lagrange trong Mathematica .............................................. 35
2. Phép nội suy Newton trong Mathematica .................................................. 36
KẾT LUẬN ........................................................................................................ 44
TÀI LIỆU THAM KHẢO ................................................................................ 46
iii
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Lý thuyết nội suy – một lý thuyết toán học có lịch sử phát triển lâu dài gắn
liền với tên tuổi của nhiều nhà toán học nổi tiếng trên thế giới như Lagrange,
Newton, Chebyshev,…
Lý thuyết nội suy còn là cơ sở cho nhiều lý thuyết toán học khác nhau,
chẳng hạn trong việc giải gần đúng phương trình vi phân thường, phương trình
đạo hàm riêng nhờ sai phân…
Bài toán cơ bản của lý thuyết nội suy là dựng một hàm đơn giản xấp xỉ một
hàm cho trước được cho bằng bảng hoặc là có công thức giải tích phức tạp. Từ
đó ta có thể tính gần đúng đạo hàm, gần đúng tích phân hay giải gần đúng một
số bài toán về phương trình đã nêu.
Về cơ bản bài toán nội suy đã được sử dụng sớm bởi Newton vào năm
- Nghiên cứu một số ứng dụng của lý thuyết nội suy.
4. Đối tượng và phạm vi nghiên cứu
- Đa thức nội suy Lagrange, đa thức nội suy Newton và các vấn đề liên
quan.
- Ngôn ngữ lập trình Mathematica và ứng dụng của nó trong vẽ đồ thị và
giải bài toán nội suy.
5. Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Đọc và tìm hiểu các đa thức nội suy,
phân tích, làm rõ các bước hình thành nên đa thức.
- Bằng những ví dụ cụ thể để áp dụng đa thức nội suy.
- Thực hiện các lập trình cơ bản để xây dựng đa thức nội suy và vẽ đồ thị.
2
PHẦN NỘI DUNG
CHƯƠNG I
KIẾN THỨC CHUẨN BỊ
I. ĐẶT VẤN ĐỀ
Trong thực tế tính toán, ta thường phải tính giá trị của hàm số y f ( x) với
x bất kì trên đoạn [a, b] , trong khi chỉ biết các giá trị:
yi f ( xi ) , xi [a, b], i 0,1,..., n.
Ở một số trường hợp khác, biểu thức giải tích của f ( x) đã biết, nhưng quá
phức tạp. Với những trường hợp như vậy, người ta thường xây dựng một hàm
số P( x) đơn giản và thỏa mãn điều kiện P( xi ) f ( xi ) , i 0,1,..., n và
xi x j , i j, xi [a, b] ; ngoài ra tại x a, b ,
x xi thì P( x) xấp xỉ
i 0
i j
n
(x
i 0
i j
j
xi )
( x x0 )( x x1 )...( x xi 1 )( x xi 1 )...( x xn )
( x j x0 )( x j x1 )...( x j xi 1 )( x j xi 1 )...( x j xn )
Rõ ràng: deg j ( x) n, j 0,1,..., n và :
( xi x0 )( xi x1 )...( xi xi 1 )( xi xi 1 )...( xi xn )
j ( xi ) =
( x j x0 )( x j x1 )...( x j xi 1 )( x j xi 1 )...( x j xn )
0 (i j )
1 (i j )
Đặt Ln ( x)
n
Đặt:
n
n1 ( x) ( x xi ) ( x x0 )( x x1 )...( x xi 1 )( x xi )( x xi 1 )...( x xn ).
i 0
Ta có:
'n1 ( x) ( x x1 )( x x2 )...( x xn ) ( x x0 )( x x2 )...( x xn ) ...
( x x0 )( x x1 )...( x xn 1 ).
Thay x lần lượt bằng x0 , x1 ,...., x j , ta có:
'n1 ( x0 ) ( x0 x1 )( x0 x2 )...( x0 xn ),
'n1 ( x1 ) ( x1 x0 )( x1 x2 )...( x1 xn ),
…
n
'n1 ( x j ) ( x j x0 )( x j x1 )...( x j x j 1 )( x j x j 1 )...( x j xn ) ( x j xi ).
i 0
i j
Ta có:
n
(x x )
n
n
j 0
( x) [Ln ( x) Ln ( x)] thì deg ( x) n và nhận ít nhất là (n 1) nghiệm
x0 , x1 ,..., xn , do đó ( x) 0 , do vậy Ln ( x) Ln ( x) .
Như vậy tồn tại duy nhất một đa thức với các điều kiện nêu trên.
Ví dụ 1:
Xây dựng đa thức nội suy Lagrange của hàm số y f ( x) cho dưới dạng bảng
sau:
xi
0
2
3
5
f ( xi ) yi
1
3
2
5
Lời giải:
5
( x 2)( x 3)( x 5) x( x 3)( x 5) x( x 2)( x 5) x( x 2)( x 3)
(30)
2
(3)
6
x3 10 x 2 31x 30 x3 8 x 2 15 x x3 7 x 2 10 x x 3 5 x 2 6 x
30
2
3
6
3
2
9 x 65 x 124 x 30
30
3
13
62
x3 x 2 x 1
10
6
5
Hãy tính đa thức nội suy Lagrange L3 ( x) của nó trên đoạn [0 , 3] và tính gần
1
1
1
đúng f bằng cách đặt f L3 .
2
2
2
6
Lời giải:
Ta có: n 3
Nên: n1 ( x) 4 ( x) x( x 1)( x 2)( x 3)
'n1 ( x) ( x 1)( x 2)( x 3) x( x 2)( x 3) x( x 1)( x 3) x( x 1)( x 2)
'4 (0) (0 1)(0 2)(0 3) 6
'4 (1) 1(1 2)(1 3) 2
'4 (2) 2(2 1)(2 3) 2
'4 (3) 3(3 1)(3 2) 6
L3 ( x) 1
9 2 9
x x 1.
2
2
2
1
1
1
1 91 9 1
1
Suy ra: f L3
4
2
2
2 22 2 2
2. Đa thức nội suy Lagrange với mốc cách đều
Giả sử xi 1 xi h , i 0,1,...,(n 1) , x0 a, xn b . Khi đó dùng phép
đổi biến x x0 th, x j x0 jh với j 0,1,...(n 1) và thay vào biểu thức
j ( x)
n 1 ( x)
( x x j ) 'n 1 ( x)
Ta có:
n1 ( x) ( x x0 )( x x1 )...( x xi 1 )( x xi )( x xi 1 )...( x xn )
(t j ) j !(n j )!(1) j n
Từ đó ta thu được :
Ln ( x) Ln ( x0 th)
n
t (t 1)...(t n)
n!
t (t 1)...(t n) (1)n j
yj
y j (1)n j
(t j )n !
j !(n j )!
(t j )
j !(n j )!
i 0
i 0
n
Cnj
t (t 1)...(t n) n
n j
(1)
yj.
n!
(t j )
i 0
f ( xi ) yi
1
0
2
1
Hãy tính đa thức nội suy Lagrange L3 ( x) của nó trên đoạn [0, 3] và tính gần
1
1
1
đúng f bằng cách đặt f L3 .
2
2
2
Lời giải:
Áp dụng công thức (2)
Ta có: n 3
Suy ra:
L3 ( x) L3 ( x0 th) mà x0 0; h 1
L3 ( x) L3 (t )
1
2
3
(t 2)
(t 3)
(t 1)(t 2)(t 3) t (t 1)(t 3) t (t 1)(t 2)
6
1
6
3
2
6t 27t 27t 6
6
9
9
t 3 t 2 t 1
2
2
3
Vậy đa thức nội suy cần tìm là: L3 ( x) x
3
2
9 2 9
f ( x ) Ln ( x )
n 1 ( x )
Dễ thấy F ( x) có ít nhất (n 2) nghiệm x0 , x1 ,..., xn , và x ở trên đoạn [a, b] ,
theo định lý Rolle thì F '( x) có ít nhất (n 1) nghiệm phân biệt trên (a, b) , và
F ( n1) ( x) có ít nhất 1 nghiệm x* (a, b) , nghĩa là:
f n1 ( x* ) Lnn1 ( x* ) C (n 1)! 0
f n 1 ( x* )
Vậy: C
, Từ đó ta thu được:
(n 1)!
f n1 ( x* )
f ( x ) Ln ( x )
n1 ( x )
(n 1)!
n 1
Gọi M Max f ( x) , x [a, b] khi đó có ước lượng:
Rn ( x) Ln ( x) f ( x)
M
n1 ( x)
(n 1)!
Hệ thức trên cho ước lượng sai số của hàm số y f ( x) cho trước và đa thức
nội suy Lagrange của nó tại mỗi điểm.
10
2
x1
Áp dụng công thức (1), với n 2
1
1
3 ( x) x( x )( x )
6
2
1
1
1
1
'3 ( x) ( x )( x ) x( x ) x( x )
6
2
2
6
'3 0
1
1
1
1 1
; '3 ; '3
12
18
6
2 6
2
1 M 1
1 1 1 1
Áp dụng công thức (3) thì R2
0
8 3! 8
8 6 8 2
Vì f ( x) sin x nên f '''( x) 3 cos x nên M 3
25
1
3 1
Vậy sai số R2
,
khi
đó
sin
.
3
8 64
8 6 8
III. ĐA THỨC NỘI SUY NEWTON
1. Tỷ sai phân và một vài tính chất
11
a) Khái niệm tỷ sai phân
Giả sử hàm số thực y f ( x) xác định trên [a, b]
và xi [a, b] , i 0,1,..., n, xi x j .
Ta chứng minh tính chất iii)
Giả sử P( x) là đa thức bậc m , ta cần chứng minh P( x; x0 ; x1 ;...; xm ) 0
x a, b và (m 2) số x, x0 ,..., xm là đôi một khác nhau. Ta có:
P( x; x0 )
P( x) P( x0 )
là đa thức bậc (m 1).
x x0
Từ đó có: P( x; x0 ; x1 )
P( x; x0 ) P( x0 ; x1 )
là đa thức bậc (m 2).
x x1
Bằng phương pháp quy nạp toán học ta chứng minh được:
12
P( x; x0 ; x1 ;...; xk ) là đa thức có bậc [m (k 1)]
Vậy P( x; x0 ; x1 ;...; xm1 ) là đa thức bậc 0, từ đó:
P( x; x0 ; x1 ;...; xm1 ; xm ) 0.
2. Đa thức nội suy Newton với mốc bất kỳ
Với nội suy Newton, khi sử dụng các mốc không cách đều thì công thức nội
suy phức tạp hơn.
Trong thực tế, các điểm x0 , x1 ,..., xn có thể không cách đều. Lúc này khoảng
cách xi 1 xi không phải là hằng số.
13
Ln ( x) f ( x0 ) f ( x0 ; x1 )( x x0 ) f ( x0 ; x1 ; x2 )( x x0 )( x x1 )
(3)
... f ( x0 ; x1 ...xn )( x x0 )( x x1 )...( x xn 1 )
Đa thức Ln ( x) cho bởi công thức (3) được gọi là đa thức nội suy Newton với
mốc bất kì.
Chú ý:
+) Nếu thêm một vài mốc nội suy thì để tính đa thức nội suy Newton, ta chỉ
tính thêm một vài số hạng mới, không phải tính từ đầu.Đây chính là ưu điểm căn
bản của đa thức nội suy Newton so với đa thức nội suy Lagrange.
+) Đa thức nội suy Newton cũng chính là đa thức nội suy Lagrange ở dạng
khác.
Ví dụ 5: Xét hàm số y f ( x) cho bởi bảng:
xi
0
2
3
5
f ( xi ) yi
1
3
2
xi
yi
0
1
2
TSP cấp 3
5
6
Áp dụng công thức (3) ta có:
2
3
L3 ( x) 1 1( x 0) ( x 0)( x 2) ( x 0)( x 2)( x 3)
3
10
2
3
3
3
Ví dụ 6: Cho hàm số y f ( x) cho bởi bảng sau:
xi
0
1
2
3
f ( xi ) yi
1
0
2
1
Hãy tính đa thức nội suy Newton của nó trên đoạn [0, 3] và tính gần đúng
1
1
1
f bằng cách đặt f L3 .
2
2
2
yi
0
1
1
3
2
Áp dụng công thức (3) ta có:
3
L3 ( x) 1 1( x 0) ( x 0)( x 1) 1( x 0)( x 1)( x 2)
2
3
3
1 x x 2 x x3 3x 2 2 x
2
2
9
9
x3 x 2 x 1
2
2
3
số y f ( x) tại x . Một cách tổng quát ta có:
0 f ( x) f ( x),
1 f ( x) f ( x),
...
n f ( x) ( n 1 f ( x)), n N , n 1.
lần lượt là sai phân cấp 0, cấp 1,..., cấp n của hàm số y f ( x) tại x.
b) Tính chất
Tính chất 1:
là toán tử tuyến tính xác định trên không gian vectơ X các hàm số thực xác
định trên đoạn [a, b] . Nghĩa là, , R , f , g X , ta có:
( f g ) f g
(c) 0 với c = const.
Tính chất 2:
n ( x n ) n !h n
m ( xn ) 0, m n.
Ta chứng minh tính chất 2:
Thật vậy:
( x n ) ( x h) n x n nhx n 2 ...
2 ( x n ) (nhx n 1 ) ... nh( x n 1 ) ... n(n 1)h 2 x n 2 ...
n
n
n
n
n f ( x)
.
hn
4. Đa thức nội suy Newton với mốc cách đều
a) Đa thức nội suy ở đầu bảng:
Giả sử x0 x1 ... xn và xi 1 xi h , i 0,1,...( n 1) . Ta tìm được
đa thức nội suy Ln ( x) ở dạng:
Ln ( x) a0 a1 ( x x0 ) a2 ( x x0 )( x x1 ) ... an ( x x0 )...( x xn1 )
Thay thế x lần lượt là x0 , x1 ,..., xn và chú ý rằng
Ln ( xi ) f ( xi ) yi , i 0,1,...n.
Ta có:
Ln ( x0 ) a0 0 a0 y0
Ln ( x1 ) a0 a1 ( x1 x0 ) 0 y1 y0 a1 ( x0 h x0 )
y1 y0 a1 h a1
y1 y0 y0
h
h
Ln ( x2 ) a0 a1 ( x2 x0 ) a2 ( x2 x0 )( x2 x1 ) 0
y0
( x0 2h x0 ) a2 ( x0 2h x0 )( x0 2h x0 h)
h
y2 y0 2y0 a2 2h 2
( x x0 )( x x1 )...( x xn1 )
1!h
2!h2
n !h n
17
Nếu ta đổi biến x x0 th , x j x0 jh , j 0,1,...,( n 1) . Thì ta có:
y0
2 y0
n y0
Ln ( x0 th) y0
t
t (t 1) ...
t (t 1)...(t n 1)
1!
2!
n!
(4)
Công thức (4) cho ta đa thức nội suy Newton ở đầu bảng.
Ví dụ 7: Cho hàm số y f ( x) cho bởi bảng sau:
xi
0
1
Áp dụng công thức (4), ta được:
L3 ( x) L3 ( x0 th) với x0 0, h 1
L3 ( x) L3 (t ) 1
( 1)
3
( 6)
t
t (t 1)
t (t 1)(t 2)
1!
2!
3!
3 2
(t t ) t (t 1)(t 2)
2
3
3
1 t t 2 t t 3 3t 2 2t
2
2
9
9
t 3 t 2 t 1
2
2
1 t
Ln ( x) a0 a1 ( x xn ) a2 ( x xn )( x xn1 ) ... an ( x xn )( x xn1 )...( x x1 )
Nếu thay thế x lần lượt là xn , xn 1 ,..., x0 và chú ý rằng:
Ln ( xi ) f ( xi ) yi , i 0,1,...n.
Ta có:
Ln ( xn ) a0 a1 ( xn xn ) ... a0 yn
Ln ( xn 1 ) a0 a1 ( xn 1 xn ) a2 ( xn 1 xn )( xn 1 xn 1 ) ...
yn 1 yn a1 ( xn (n n 1)h xn )
yn 1 yn a1 h
a1
yn yn 1 yn 1
h
h
Ln ( xn 2 ) a0 a1 ( xn 2 xn ) a2 ( xn 2 xn )( xn 2 xn 1 )
a3 ( xn 2 xn )( xn 2 xn 1 )( xn 2 xn 2 ) ...
yn 1
( xn (n n 2)h xn )
h
a2 ( xn (n n 2)h xn )( xn (n n 2)h xn (n n 1)h)
yn 2 yn
yn 2 yn 2yn 1 a2 2h 2
a2
( x xn )( x xn 1 ) ...
1!h
2!h 2
n y0
( x xn )...( x x1 )
n !h n
Nếu ta đổi biến x xn th , x j xn (n j )h , j 0,1,..., n, thì ta có:
yn1 2 yn2
n y0
Ln ( xn th) yn
t
t (t 1) ...
t (t 1)...(t n 1)
1!
2!
n!
(5)
Công thức (5) cho ta đa thức nội suy Newton ở cuối bảng.
Ví dụ 8: Cho hàm số y f ( x) cho bởi bảng sau:
xi
0
1
2
(1)
( 3)
( 6)
t
t (t 1)
t (t 1)(t 2)
1!
2!
3!
3 2
(t t ) (t 3 3t 2 2t )
2
3
3
1 t t 2 t t 3 3t 2 2t
2
2
9
9
t 3 t 2 t 1
2
2
1 t
Mà x xn th 3 t t x 3
20
2
2
2 22 2 2
c) Đa thức nội suy Newton ở giữa bảng:
Nhận xét rằng, đa thức nội suy Newton ở đầu bảng hay cuối bảng mang đặc
trưng là một phía. Trong nhiều trường hợp, việc áp dụng công thức nội suy chứa
những giá trị trước và sau giá trị ban đầu sẽ có lợi, trong những công thức nội
suy như vậy người ta thường dùng công thức sai phân trung tâm. Trong mục này
sẽ trình bày một công thức dạng “một tiến, một lùi”.
Giả sử xi x0 ih , i 0,1,..., n . Ta sẽ tìm đa thức nội suy ở dạng:
L2 n1 ( x) a0 a1 ( x x0 ) a2 ( x x1 )( x x0 ) a3 ( x x1 )( x x0 )( x x1 )
... a2 n 1 ( x x ( n 1) )...( x x1 )( x x0 )( x x1 )...( x xn1 )
a2 n ( x x n )...( x x1 )( x x0 )( x x1 )...( x xn 1 )
Thay thế x lần lượt bởi xi , (i 0, 1, 2,..., n) , ta có:
L2n1 ( x0 ) a0 0 a0 y0
L2 n 1 ( x1 ) a0 a1 ( x1 x0 ) 0
y1 y0 a1 ( x0 h x0 ) a1
y0 y1 y1
h
h
L2 n 1 ( x1 ) a0 a1 ( x1 x0 ) a2 ( x1 x1 )( x1 x0 ) 0
y1
( x0 h x0 ) a2 ( x0 h x0 h)( x0 h x0 )
h
6h 3
2 y1 2 y2 3 y2
6h 3
6h 3
Tương tự như vậy, ta được:
a2i 1
2i 1 yi
2 i y i
, a2i
(2i 1)!h 2i 1
(2i)! h 2i
Từ đó ta rút ra:
y1
2 y1
L2 n 1 ( x) y0
( x x0 )
( x x1 )( x x0 )
1!h
2!h 2
3 y2
( x x1 )( x x0 )( x x1 ) ...
3!h3
(6)