Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH

BÀI TẬP LỚN MÔN HỌC PHƯƠNG PHÁP TÍNH

ĐỀ TÀI

PHƯƠNG PHÁP NEVILLE TRONG NỘI SUY XẤP XỈ ĐA THỨC

GVHD: PGS.TS Phan Thành An

Lớp: N1HT – HK222

Sinh viên: Vũ Minh Mẫn – 1850029

Email: man.vu216@hcmut.edu.vn

TP. HỒ CHÍ MINH, NĂM 2023


MỤC LỤC
1) Ý Tưởng .......................................................................................................... 3

2) Định nghĩa ...................................................................................................... 4

3) Định lý ............................................................................................................. 4

4) Bảng trình bày theo phương pháp Neville .................................................. 4

5) Ưu điểm và nhược điểm ................................................................................ 5

4.1. Ưu điểm ................................................................................................... 5

4.2. Nhược điểm ............................................................................................. 5

6) Thuật toán Mathlab và bài tập ví dụ ........................................................... 5

6.1. Thuật toán Mathlab................................................................................. 5

6.2. Bài tập 1 .................................................................................................. 6

6.3. Bài tập 2 (exercise 2a, 2b of sect 3.2) ..................................................... 8

6.4. Bài tập 3 (excercise 3a of sect 3.2) ......................................................... 8

6.5. Bài tập 4 ( exercise 5 of sect 3.2) ............................................................ 9

TÀI LIỆU THAM KHẢO ............................................................................... 11


1) Ý Tưởng

Với 2 điểm (x0,y0) và (x1,y1) (x0 ≠ x1), thì phép nội suy được xác định bằng công thức
dưới đây
𝑥− 𝑥1 𝑥−𝑥0
P0,1(x) = 𝑦0 + 𝑦1 (1)
𝑥0 −𝑥1 𝑥1 −𝑥0

Bây giờ, chúng ta xem xét trường hợp của 3 điểm. Sau đó, nội suy một điểm giữa (x0,y0)
và (x1,y1), và một điểm giữa (x1,y1) và (x2,y2):
𝑥− 𝑥2 𝑥−𝑥1
P1,2(x) = 𝑦1 + 𝑦2 (2)
𝑥1 −𝑥2 𝑥2 −𝑥1

Giả sử 2 điểm ta nội suy rất gần với (x0,y0) và (x1,y1)


𝑥−𝑥2 𝑥−𝑥0
𝑃0,1 + 𝑃 = 𝑃0,1,2 (3)
𝑥0 −𝑥2 𝑥2 −𝑥0 1,2

(𝑥−𝑥1 )(𝑥−𝑥2 ) (𝑥−𝑥0 )(𝑥−𝑥2 ) (𝑥−𝑥0 )(𝑥−𝑥1 )


(1), (2), (3) => (𝑥 𝑦 +
) 0
𝑦 +
) 1
𝑦
(𝑥2 −𝑥0 )(𝑥2 −𝑥1 ) 0
= 𝑃0,1,2
0 −𝑥1 )(𝑥0 −𝑥2 (𝑥1 −𝑥0 )(𝑥1 −𝑥2

Từ đó, ta có đệ quy như sau:


𝑥 − 𝑥0 𝑥 − 𝑥𝑛
P0,1,….,n = 𝑃1,2,…𝑛 (𝑥) + 𝑃0,1,2,…𝑛−1 (𝑥)
𝑥𝑛 − 𝑥0 𝑥0 − 𝑥𝑛

Từ các bước trên ta có thể khái quát như sau

Đệ quy cho thuật toán của Neville


2) Định nghĩa

Cho hàm f được xác định tại các điểm x0, x1, x2, …. xn và m1, m2, … mk và k là số nguyên
phân biệt sao cho 0 ≤ mi ≤ n. Khi đó, đa thức Largange cho hàm f(x) tại k điểm xm1, xm2,
… xmk được kí hiệu là Pm1,m2,…mk(x)

3) Định lý

Cho hàm f xác định tại x0, x1,…., xk với xj và xi là hai số riêng biệt trong bộ số đó. Khi đó

(𝑥− 𝑥𝑖 )𝑃0,1,…,𝑗−1,𝑗+1…𝑘 (𝑥) − (𝑥− 𝑥𝑖 )𝑃0,1,…,𝑖−1,𝑖+1,…,𝑘 (𝑥)


P(x) =
(𝑥𝑖 − 𝑥𝑗 )

Sau đó ta kí hiệu lại 𝑃0,1,…,𝑗−1,𝑗+1…𝑘 và 𝑃0,1,…,𝑖−1,𝑖+1,…,𝑘 lần lượt là 𝑄̂ 𝑣à 𝑄

(𝑥− 𝑥𝑖 )𝑄̂(𝑥) − (𝑥− 𝑥𝑖 )𝑄(𝑥)


 P(x) =
(𝑥𝑖 − 𝑥𝑗 )

Đây gọi là công thức Neville

4) Bảng trình bày theo phương pháp Neville


Phương pháp Neville được trình bày theo bảng sau:

Để tránh cồng kềnh và ghi nhiều chỉ số dưới, chúng ta đặt Qi,j(x), với 0 < j < i để biểu thị
phép nội suy đa thức
Qi,j = Pi-j,i-j+1,…,i-1,i

5) Ưu điểm và nhược điểm


4.1. Ưu điểm
Ưu điểm của phương pháp nội suy Neville là khi cho một điểm cần nội suy thì không
cần phải tính toán lại toàn bộ tất cả các hệ số. Hơn nữa phương pháp Neville có một lợi thế
lớn khi ta dùng các để viết các chương trình máy tính như mathlab hay python.
4.2. Nhược điểm
Nhược điểm của phương pháp nội suy Neville là mọi công việc phải được thực hiện lại
cho mỗi giá trị mới của x đã tìm được. Từ đó dẫn đến việc nội suy của một giá trị bậc cao
hơn sẽ phụ thuộc vào giá trị của giá trị bậc thấp hơn. Vì vậy hãy tính toán cẩn thận khi tính
giá trị mới của x.
6) Thuật toán Mathlab và bài tập ví dụ
6.1. Thuật toán Mathlab
% Neville's iterated interpolation algorithm

n = input('Enter n for (n+1) nodes, n: '); % nhập số nút cần chương trình lập
xx = zeros(1,n+1); % lệnh zeros của mathlab cho phép người dùng tạo một bảng giá trị
q = zeros(n+1,n+1);

for i = 0:n
fprintf('Enter x(%d) and f(x(%d)) on separate lines: \n', i, i);
xx(i+1) = input(' '); % chương trình nầy để nhập giá trị x và f(x) sau đó
q(i+1,1) = input(' '); % đem chúng vào bộ nhớ của máy tính
end
x = input('Now enter a point at which to evaluate the polynomial, x = ');

d = zeros(1,n+1);
d(1) = x-xx(1);
for i = 1:n
d(i+1) = x-xx(i+1); % chương trình thứ 2 này dùng để chuyển đổi logic lập bảng và nhập công thức Neville dưới dạng code
for j = 1:i
q(i+1,j+1) = (d(i+1)*q(i,j)-d(i-j+1)*q(i+1,j))/(d(i+1)-d(i-j+1));
end
end

fprintf('Table for interpolation evaluated at x = %11.8f: \n', x);


for i = 0:n
fprintf('%11.8f ', xx(i+1));
for j = 0:i
fprintf('%11.8f ', q(i+1,j+1)); % chương trình cuối cùng này để mathlab sẽ hiện ra toàn bộ bảng mà ta cần lấy giá trị
end % cũng như chương trình sẽ in ra bảng hoàn chỉnh một cách nhanh và chính xác
fprintf('\n');
end
Dựa vào công thức Neville và các logic ta sẽ chuyển đổi chúng thành dạng code trong
mathlab. Như đã nói ở trên, phương pháp Neville có lợi thế về chương trình máy tính
vì chỉ cần nhập giá trị của x và f(x) ta sẽ được tất cả các giá trị nhanh và chính xác,
trình bày theo bảng phương pháp Neville

6.2. Bài tập 1


6.2.1. Giải tay
Cho x0 = 1.0, x1 = 1.3, x2 = 1.6, x3 = 1.9, x4 = 2.2. Và Q0,0 = f(1.0), Q1,0 =
f(1.3), Q2,0 = f(1.6), Q3,0 = f(1.9) và Q4,0 = f(2.2). Đây là 5 đa thức bậc 0 có dữ
liệu là bảng bên dưới. Tính xấp xỉ của f(1.5)

x f(x)

1.0 0.7651977

1.3 0.6200860

1.6 0.4554022

1.9 0.2818186

2.2 0.1103623

(x− x0 )Q1,0 − (x− x1 )Q0,0 (1.5− 1.0)Q1,0 − (1.5− 1.3)Q0,0


Q1,1(1.5) = =
x1 − x0 1.3− 1.0

(1.5− 1.0)0.6200860 − (1.5− 1.3)0.7651977


=
1.3− 1.0

= 0.5233449
Tương tự

(1.5− 1.3)0.4554022 − (1.5− 1.6)0.6200860


Q2,1 (1.5) = = 0.5102968
1.6− 1.3

Q3,1 (1.5) = 0.5132634 và Q4,1 (1.5) = 0.5104270

Theo cách tương tự, các xấp xỉ cho đa thức bậc cao hơn được tính:

(1.5− 1.0)0.5102968 − (1.5− 1.6)0.5233449


Q2,2 (1.5) = = 0,5124715
1.6− 1.0

Q3,2(1.5) = 0.5112857 và Q4,2(1.5) = 0.5137361.

6.2.2. Giải bằng chương trình mathlab

So sánh giữa tính bằng tay và bằng chương trình máy tính:
Chương trình máy tính cho ra kết quả giống nhau so với tính bằng tay nhưng
ưu thế là nhanh và có phần số thập phân chính xác hơn.
6.3. Bài tập 2 (exercise 2a, 2b of sect 3.2)

Dùng chương trình Mathlab ở trên ta dễ dàng có:


Câu 2a

Câu 2b

6.4. Bài tập 3 (excercise 3a of sect 3.2)


Từ dữ liệu đề bài ta có:

x f(x)
x0 = -2 f(-2) = 3-2 = 0.1111
x1 = -1 f(-1) = 3-1 = 0.3333
x2 = 0 f(0) = 30 = 1
x3 = 1 f(1) = 31 = 3
x4 = 2 f(2) = 32 = 9

Giá trị của 3√3 = 6.70499185

Dùng chương trình mathlab ta có bảng nội suy theo Neville:

Vậy sai số tuyệt đối là : |𝑓(√3) − 𝑄4,4| = |6.70499185 − 6.78023939| = 0.0752

6.5. Bài tập 4 ( exercise 5 of sect 3.2)


Áp dụng công thức Neville ta tính được P2:
(𝑥− 𝑥2 )𝑃3 −(𝑥− 𝑥3)𝑃2
𝑃2,3 =
𝑥3 −𝑥2

(0.4 − 0.5)8 − (0.4 − 0.75)𝑃2


↔ 2.4 =
0.75 − 0.5
↔ 𝑃2 = 4

Dùng chương trình mathlab ta nhanh chóng tìm được P1,2 và P0,1,2

P1,2 = 3.2

P0,1,2 = 3.08
TÀI LIỆU THAM KHẢO

1) Yijie Xu, Runqi Xu. (2022). Research on Interpolation and Data Fitting:
Basis and Applications.
2) Richard L. Burden, Douglas J. Faires, Annette M. Burden. (2014). Data
Approximation and Neville's Method. In Numerical Analysis (p. 115).
United States of America.
3) Schlegel, A. (2017). Neville’s Method for Polynomial Interpolation.
4) Lê Thái Thanh, Giáo trình Phương Pháp Tính, ĐHQG-HCM, 2017

You might also like