nhom5-matlab

8
Trường đại học công nghiệp Hà Nội Khoa công nghệ thông tin --- --- BÁO CÁO BÀI TẬP LỚN Môn : Một Số Phương Pháp Tính Toán Khoa Học Và Phần Mềm Tính Toán Đề tài: 30. Nội suy Newton Nhóm thực hiện: NHÓM 5- KHMT3-K3 1. Nguyễn Văn Tâm. 2. Nguyễn Đăng Tú. 1

Upload: pham-hung

Post on 05-Aug-2015

41 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: nhom5-matlab

Trường đại học công nghiệp Hà Nội

Khoa công nghệ thông tin

--- ---

BÁO CÁO BÀI T P L NẬ Ớ

Môn : Một Số Phương Pháp Tính Toán Khoa Học

Và Phần Mềm Tính Toán

Đề tài: 30. Nội suy Newton

Nhóm thực hiện: NHÓM 5- KHMT3-K3

1. Nguyễn Văn Tâm.

2. Nguyễn Đăng Tú.

3. Bùi Quang Huy.

Hà nội,ngày 25 tháng 10 năm 2011

I. ĐẶT VẤN ĐỀ:

1

Page 2: nhom5-matlab

Trong thực tế nhiều khi ta cần tính giá trị của hàm y=f(x) tại một giá trị x trong một đoạn [a, b] nào đó mà chỉ biết một số nhất định các giá trị của hàm tại một số diểm cho trước. Các giá trị này được cung cấp qua thực nghiệm hay tính toán. Vì vậy nảy sinh vấn đề toán học là trên đoạn a ≤ x ≤ b cho một loạt các điểm xi ( i = 0, 1, 2...) và tại các điểm xi này giá trị của hàm là yi = f(x i) đã biết và ta cần tìm y = f(x) dựa trên các giá trị đã biết đó. Lúc đó ta cần tìm đa thức: Pn(x) = a0xn + a0xn-1 + …+an-1x + an sao cho Pn(xi) = f(xi) = yi. Đa thức Pn(x) được gọi là đa thức nội suy của hàm y=f(x). Ta chọn đa thức để nội suy hàm y = f(x) vì đa thức là loại hàm đơn giản, luôn có đạo hàm và nguyên hàm. Bây giờ ta sẽ đi xét một cách để xây dựng đa thức nội suy gọi là phương pháp Newton.

II. MÔ TẢ PHƯƠNG PHÁP:

Trước hết ta đưa vào một khái niệm mới là tỉ hiệu.

Giả sử hàm y = y(x) có giá trị cho trong bảng sau:

Tỉ hiệu cấp 1 của y tại xi, xj là :

Tỉ hiệu cấp hai của y tại xi, xj, xk là :

v.v.

Với y(x) = Pn(x) là một đa thức bậc n thì tỉ hiệu cấp 1 tại x, x0 :

là một đa thức bậc (n - 1). Tỉ hiệu cấp 2 tại x, x0, x1 :

2

Page 3: nhom5-matlab

là một đa thức bậc (n-2) v.v và tới tỉ hiệu cấp (n + 1) thì :

Pn[ x, x0,.., xn] = 0

Từ các định nghĩa tỉ hiệu ta suy ra :

Pn(x) = Pn(x0) + ( x- x0)Pn[x, x0]

Pn[x, x0] = Pn[x0, x1] + ( x – x1)Pn[x, x0,x1]

Pn[x, x0, x1] = Pn[x0, x1, x2] + ( x – x2)Pn[x, x0, x1, x2]

............

Pn[x, xn,.., xn-1] = Pn[x0, x1,.., xn] + ( x – xn)Pn[x, x0,.., xn]

Do Pn[ x, x0,.., xn] = 0 nên từ đó ta có :

Pn(x) = Pn(x0) + (x – x0)Pn[x0, x1] + (x – x0)(x – x1)Pn[x0, x1,x2] + … + (x – x0)…(x – xn-1)Pn[x0,…, xn]

Nếu Pn(x) là đa thức nội suy của hàm y = f(x) thì:

Pn(xi) = f(xi) = yi với i = 0 ÷ n

Do đó các tỉ hiệu từ cấp 1 đến cấp n của Pn và của y là trùng nhau và như vậy ta có :

Pn(x) = y0 + (x – x0)y[x0, x1] + (x – x0)(x – x1)y[x0, x1, x2] + .. +

(x – x0)(x – x1)...(x – xn-1)y[x0,..,xn]

Đa thức này gọi là đa thức nội suy Newton tiến xuất phát từ nút x 0 của hàm y = f(x). Ngoài đa thức tiến còn có đa thức nội suy Newton lùi xuất phát từ điểm xn có dạng như sau :

Pn(x) = yn + (x – xn)y[xn, xn-1] + (x – xn)(x – xn-1)y[xn, xn-1,xn-2] +..+

(x – xn)(x – xn-1)...(x – x1)y[xn,.., x0]

Đặc biệt, trường hợp các nút cách đều thì xi = x0 + ih với i = 0, 1,..., n. Ta gọi sai phân tiến cấp 1 tại i là:

3

Page 4: nhom5-matlab

Δyi = yi+1 – yi

và sai phân tiến cấp hai tại i:

Δ2yi = Δ(Δyi) = yi+2 - 2yi+1 + yi

.........

và sai phân tiến cấp n là :

Δnyi = Δ(Δn-1yi)

Khi đó ta có:

Bây giờ đặt x = x0 + ht trong đa thức Newton tiến ta được:

thì ta nhận được đa thức Newton tiến xuất phát từ x0 trong trường hợp nút cách đều.

Với n = 1 ta có :

P+1(x0 + ht) = y0 + Δy0

Với n = 2 ta có:

Một cách tương tự ta có khái niệm các sai phân lùi tại i:

∇yi = yi – yi-1

∇2yi = ∇(∇yi) = yi - 2yi-1 + yi-2

.........

4

Page 5: nhom5-matlab

∇nyi = ∇(∇n-1yi)

và đa thức nội suy Newton lùi khi các điểm nội suy cách đều:

.

III. VÍ DỤ MINH HỌA:1. Trường hợp tổng quát: Cho hàm dưới dạng bảng:

x -2 -1 1 2 4y -6 0 0 6 60

Ta có: y[x0,x1] = (y0 – y1) / (x0 – x1) = (-6 – 0) / (-2 – (-1)) = 6 y[x1,x2] = (y1 – y2) / (x1 – x2) = (0 – 0) / (-1 – 1) = 0 y[x2,x3] = (y2 – y3) / (x2 – x3) = 6 y[x3,x4] = (y3 – y4) / (x3 – x4) = 27 y[x0,x1,x2] = (y[x0,x1] - y[x1,x2]) / (x0 – x2) = -2 y[x1,x2,x3] = (y[x1,x2] - y[x2,x3]) / (x1 – x3) = 2 y[x2,x3,x4] = (y[x2,x3] - y[x3,x4]) / (x2 – x4) = 7 y[x0,x1,x2 ,x3] = (y[x0,x1,x2] - y[x1,x2,x3]) / (x0 – x3) = 1 y[x1,x2,x3 ,x4] = (y[x1,x2,x3] - y[x2,x3,x4]) / (x1 – x4) = 1 y[x0,x1,x2 ,x3,x4] = (y[x0,x1,x2,x3] - y[x1,x2,x3,x4]) / (x0 – x4) = 0 Vậy ta có đa thức nội suy Newton tiến là:P4(x) = y0 + (x – x0)y[x0, x1] + (x – x0)(x – x1)y[x0, x1, x2] + (x – x0)(x – x1) (x- x2)y[x0, x1, x2,x3] + (x – x0)(x – x1)(x- x2)(x- x3)y[x0, x1, x2,x3,x4] = -6 + (x - (-2))6 + (x – (-2))(x – (-1))(-2) + (x – (-2))(x – (-1))(x – 1)1 (x – (-2))(x – (-1))(x – 1)(x – 2)0 = x3 – x

2. Trường hợp các nút cách đều:

Cho hàm dưới dạng bảng:

x -2 -1 1 2 4y -6 0 0 6 60

5

Page 6: nhom5-matlab

Ta lập bảng sai phân:

xi f(xi) Δf(xi) Δ2f(xi) Δ3f(xi) Δ4f(xi)

-2 -14

-1 -3 11

0 0 3 -8

1 1 1 -2 6

2 6 5 4 6 0

Vậy ta có hàm nội suy Newton : Pn(x) = -14 + 11(x – (-2))/1 + (-8)(x - (-2))(x – (-1))/2! + 6(x - (-2))(x – (-1))x/3! + 0(x - (-2))(x – (-1))x(x – 1)/4! = x3 – x2 + x

IV. NHẬN XÉT: Khi bổ sung các điểm quan sát thì ta không phải tính lại phần đa thức đã có. Thí dụ, từ điểm quan sát (x0, y0), (x1, y1),..., (xk, yk) ta tính dươc da thức Pk(x). Khi bổ sung thêm các điểm (xk+1, yk+1),..., (xn, yn) thì đa thức nội suy tương ứng với mẫu quan sát (x0,y0),..., (xn, yn) sẽ có dạng Pn(x) = Pk(x) + u(x). Vì thế nội suy Newton khắc phục được nhược điểm của nội suy Lagrange. Công thức nội suy Newton tiến thường được dùng để nội suy các giá trị của hàm f(x) ở vùng đầu bảng. Để nội suy các giá trị ở cuối bảng ta thường dùng phương pháp sai phân lùi.

6