Cách chuyển từ bài toán có các mốc nội suy không đều về bài toán có mốc cách đều Phần 3: THUẬT TOÁN... Cách chuyển từ bài toán có các mốc nội suy không đều về bài toán có mốc cách đều:
Trang 1DÙNG CÔNG THỨC NỘI SUY NEWTON
Giảng viên hướng dẫn: TS TRỊNH CÔNG DIỆU
Sinh viên thực hiện:
Trang 2TÓM TẮT NỘI DUNG
Phần 1: MỞ ĐẦU
Phần 2: CƠ SỞ LÝ LUẬN
I Lũy thừa suy rộng bậc n của số thực a với bước nhảy h
II Các dạng biểu diễn đa thức
2 Bảng sai phân dùng tính sai phân các cấp của hàm f tại điểm x0
3 Công thức tính sai phân
VIII Nội suy NEWTON:
1 Đa thức nội suy NEWTON
2 Đa thức nội suy NEWTON có mốc nội suy cách đều
a Định lý của công thức nội suy NEWTON thứ nhất
b Công thức nội suy NEWTON thứ hai
IX Cách chuyển từ bài toán có các mốc nội suy không đều về bài toán có mốc cách đều Phần 3: THUẬT TOÁN
Trang 3NHÓM 3- LỚP: VB2-TOÁN-K2
II Thuật toán:
1.Trường hợp 1: Khi các mốc nội suy cách đều (bước nhảy h đều)
2 Trường hợp 2: Khi các mốc nội suy không cách đều
III Mã giả
Phần 4: MỘT SỐ VÍ DỤ CHI TIẾT
Phần 5: ĐOẠN CHƯƠNG TRÌNH
NHẬN XÉT CHUNG
Trang 4PHẦN 1: MỞ ĐẦU
Trong toán học, ta thường gặp những bài toán khảo sát và tính giá trị của hàm số y = f(x) nhưng trên thực tế, nhiều trường hợp ta chỉ nhận được những giá trị rời rạc: y0, y1, … yn tại các điểm tương ứng x0, x1, … xn (Các giá trị này được cung cấp qua thực nghiệm hay tính toán) Vấn đề đặt
ra là xác định giá trị của hàm số tại các điểm còn lại
Cần xây dựng hàm g x( ) sao cho:
I Lũy thừa suy rộng bậc n của số thực a với bước nhảy h :
Cho a h, ,n * Ta gọi lũy thừa suy rộng bậc n của số thực a với bước nhảy h là số:
II Các dạng biểu diễn đa thức:
Cho P x là đa thức bậc n theo biến x
Dạng chính tắc của P(x) là:
0
n i i i
i
P x b x x
với b b0, , ,1 b n là các hằng số
Trang 5i h i
i
P x d x x
với d0, d , , d1 n là các hằng số
Nhận xét : Dạng chuẩn tắc suy rộng là dạng tổng quát của 3 dạng trên
Khi x0 0,h0 thì dạng chuẩn tắc suy rộng trở thành dạng chính tắc
Khi h0thì dạng chuẩn tắc suy rộng trở thành dạng chuẩn tắc
Khi x0 0,h1thì dạng chuẩn tắc suy rộng trở thành dạng chính tắc suy rộng
Vì vậy nếu đã có thuật toán tính giá trị đa thức có dạng biểu diễn chuẩn tắc suy rộng thì ta cũng tính được giá trị đa thức có dạng biểu diễn thuộc ba dạng còn lại
III Định lý 1 (Định lý Bezout):
Cho , P x R x là đa thức ở dạng chính tắc 1
0
n n i i
Theo định lý Bezout thì đẳng thức trên tồn tại
Ta chỉ cần chứng minh đẳng thức truy hồi:
Trang 6+ Biến đổi từ vế trái sang vế phải của (I) đó chính là dùng phương pháp dùng sơ đồ hoocner ngược
với các hệ số cho bởi : 0 0
( ) ( )
n
i h i
n i i i
Trang 9NHÓM 3- LỚP: VB2-TOÁN-K2
Bảng 3: xác định các hệ số a ij của P x
Ta tính các a ibằng cách cộng các c itheo đường chéo như bảng phía trên
Như vậy sau 3 bước ta được công thức ở dạng chính tắc của P x như sau:
Giả sử f xác định tại x x0, 0h Sai phân của f tại x0, bước nhảy h, là số định bởi công thức:
h f x0 f x 0 h f x 0 (Để đơn giản ghi h f x 0 thay cho h f x0 )
Hàm số thực định bởi h f x: h f x( )được gọi là hàm sai phân của f với bước nhảy h
Toán tử sai phân bước nhảy h là ánh xạ: h: f h f
Chú ý: Khi f là hàm hằng, ta có: h f x0 0 tại mọi x
Định nghĩa tương tự cho các sai phân cấp cao hơn
Khi cần nhấn mạnh cấp của sai phân, ta gọi sai phân của hàm f trong định nghĩa là sai phân cấp một của hàm f, hơn nữa để đơn giản trong trình bày ta quy ước gọi hàm f là sai phân cấp 0 của hàm f Ký hiệu: hàm sai phân cấp i (i0,n), bước nhảy h, của hàm f là: i
2 Bảng sai phân dùng tính sai phân các cấp của hàm f tại điểm x0:
Giả sử cần tính sai phân các cấp 1, 2, , n của hàm f, bước nhảy h, tại x0.Đặt:
Trang 11(do giả thiết quy nạp)
Như vậy ta đã chứng minh được (*)
Ta chứng minh: n ( ) ! n
(**) bằng phương pháp quy nạp Với n0, ( )f x 1 Khi đó: 0 0
Trang 12F x xx =
1 0 0
n i
( )
n i
x x n h
VIII Nội suy Newton :
1 Đa thức nội suy Newton:
Theo cách của Newton, ta có:
Trang 13NHÓM 3- LỚP: VB2-TOÁN-K2
0
0 0
n n y
Nên y i Pn( ) ( xi i 0,n) (thoả điều kiện (*))
Công thức (3) được viết lại như sau:
Trang 142 Đa thức nội suy Newton có mốc nội suy cách đều:
a Định lý của công thức nội suy Newton thứ nhất:
Cho bộ ( ,x y i i) trong đó x i x0ih(h ,i0,n) Giả sử P là một hàm đa thức có bậc bé hơn hoặc bằng n sao cho P x( )i y i Khi đó: ,
h i i
1.2.1
1.3.2.1
Trang 15h i i
( 1)
1 ( ) ( )( )
!
n
i h i
IX Cách chuyển từ bài toán có các mốc nội suy không đều về bài toán có mốc cách đều:
Nếu bài toán đa thức nội suy không cách đều ta chỉ cần thêm các mốc nội suy sao cho được các mốc mới cách đều, sau đó dùng công thức nội suy Lagange để tính các giá trị hàm số Lúc này bài toán sẽ chuyển về bài toán nội suy có bước nhảy cách đều
Việc thêm mốc nội suy sẽ là đơn giản nếu các mốc nội suy có giá trị không quá lớn, lúc này
ta sẽ chọn bước nhảy h sao cho ít phải thêm các mốc mới nhất
Ví dụ:
( )i i
P x y 3 2 293 5
Trang 16Ở ví dụ này ta sẽ thêm x0 0,x3 vào công thức nội suy Lagrange để tính các giá trị y i và ta sẽ
Trang 18II Thuật toán:
Tính bước nhảy h theo công thức h x i x i1, h0,i1,n1 sau đó xét các trường hợp của h
1 Trường hợp 1: Khi các mốc nội suy đều (bước nhảy h đều) thì ta lần lượt thực hiện các tiến trình giải như sau:
a Tiến trình 1: Dùng công thức nội suy Newton để xác định công thức của P x ở dạng
chuẩn tắc suy rộng
Bước 1: Tính sai phân các cấp của P x
Bước 2: Áp dụng định lý và công thức nội suy newton tính được giá trị của P x ở dạng
chuẩn tắc suy rộng
b Tiến trình 2: Chuyển từ dạng chuẩn tắc suy rộng về dạng chính tắc
o Cách 1: Dùng thuật toán chuyển từ chuẩn tắc suy rộng sang chính tắc.(tham khảo đề tài
của nhóm 2)
o Cách 2: Dùng hoocne ngược chuyển từ dạng chuẩn tắc suy rộng về chính tắc
2 Trường hợp 2: Khi các mốc nội suy không cách đều ta sẽ thêm các mốc nội suy
mới sao cho các mốc nội suy cách đều hoặc chọn x0 0,h1 rồi thêm các mốc mới sau đó dùng công thức nội suy Lagrange tính các giá trị của hàm cho các mốc mới thêm
Bước 1: Tính giá trị P x bằng công thức nội suy Lagrange theo công thức sau:
0 0
j j
Bước 3: Thay các giá trị của x i vừa tìm được vào công thức P x ta được giá trị y i tương ứng
Lúc này ta được bảng giá trị mới và bài toán trở thành bài toán ở trường hợp 1 với bước nhảy đều Sau đó ta thực hiện các bước làm như trong trường hợp 1
III MÃ GIẢ:
// Nhập dữ liệu
Nhập n - số lượng các bộ (x,y)
Cho i chạy từ 0 đến n, nhập các bộ (x,y)
//Kiem tra buoc nhay h (moc deu, moc ko deu)
Sắp xếp lại các bộ số theo x tang dần
Trang 19//Khởi tạo các giá trị ban đầu
//Khởi tạo mảng h[] các luỹ thừa của h
//Khởi tạo cột đầu của mảng delta[]
Cho i chạy từ 0 đến n, tính delta[i][0]=y[i]
//Khởi tạo các giá trị x[i]
Chi i chạy từ 1 đến n, tính x[i]=x[i-1]+h[1]
//Lập bảng sai phân cấp i
Cho i giảm từ (n-1) đến 0
Cho j tang từ 1 đến (n-i)
Tính theo công thức delta[i][j] = delta[i+1][j-1] - delta[i][j-1]
//Tính d[i]
Cho i chạy từ 0 đến n, tính d[i] = delta[0][i] / m[i]
//Tính các hệ số a[i] của đa thức P(x)
Cho i chạy từ 0 đến n, z[i][n]=d[n]
Cho i chạy từ 0 đến (n-1), z[i][i]=d[i]
Cho i giảm từ (n-2) đến 0
Cho j giảm từ (n-1) đến i
Tính các z[i][j] theo công thức z[i][j]=z[i+1][j] - x[i+1]*z[i+1][j+1]
Trang 20 Bảng biểu diễn các hệ số của P(x) ở dạng chính tắc:
Cách 1: Chuyển theo phương pháp của nhóm 2
a i i
Trang 21NHÓM 3- LỚP: VB2-TOÁN-K2
Vậy dạng chính tắc của P(x) là: P x( ) 193 97 x18x2
Cách 2: Làm theo phương pháp dùng hoocne ngược
Ta tính các hệ số b ij trước dựa vào bảng sau:
Ví dụ 2: Hãy dùng công thức nội suy Newton tìm giá trị của biểu thức P x , chuyển P x về
dạng chính tắc Cho bảng giá trị sau:
Trang 22Do các bước nhảy h ở bài toán không đều nên ta sẽ thêm một số mốc nội suy mới x i để cho bài toán chuyển về bài toán có bước nhảy đều, dùng công thức nội suy Lagrange để tìm các giá trị y i sau đó sẽ dùng công thức nội suy Newton cho bài toán có bước nhảy đều
0
( )
j
j i n
j i
Ta dùng công thức nội suy Newton để tìm giá trị của bài toán ở dạng chuẩn tắc suy rộng
Ta có bảng sai phân như sau:
Trang 23NHÓM 3- LỚP: VB2-TOÁN-K2
Chuyển bài toán từ dạng chuẩn tắc suy rộng sang dạng chính tắc:
Cách 1: (theo phương pháp của nhóm 2)
Cách 2: (theo phương pháp hoocne ngược)
Ta tính các hệ số b ij trước dựa vào bảng sau:
Trang 25cout << "Nhap cac bo gia tri (xi,yi):" << endl;;
for (int i=0; i<=n; i++) cin >> x[i] >> y[i];
cout << endl;
//Kiem tra buoc nhay h (moc deu, moc ko deu)
long tmp;
for (int i=0; i<=n; i++)
for (int j=i+1; j<=n; j++)
Trang 26for(int i=2; i<=n; i++) h[i]=h[i-1]*h[1];
for(int i=0; i<=n; i++) delta[i][0]=y[i];
for(int i=1; i<=n; i++) x[i]=x[i-1]+h[1];
//Lap bang sai phan cap i
for(int i=n-1; i>=0; i )
for(int j=1; j<=(n-i); j++)
delta[i][j] = delta[i+1][j-1] - delta[i][j-1];
//Tinh d[i]
for(int i=0; i<=n; i++) d[i] = delta[0][i] / m[i];
//Tinh cac he so a[i] cua P(x)
for(int i=0; i<=n; i++) z[i][n]=d[n];
for(int i=0; i<n; i++) z[i][i]=d[i];
for(int i=(n-2); i>=0; i )
Trang 27Đa thức nội suy Newton của P x trong trường hợp các mốc nội suy cách đều nhau có dạng
chuẩn tắc suy rộng, do đó ta có thể áp dụng thuật toán chuyển từ chuẩn tắc suy rộng sang chính tắc để tìm công thức tính giá trị của P x ở dạng chính tắc
Cách xây dựng đa thức nội suy Newton tiến xuất phát từ nút x0 của hàm f(x) Tương tự như trên, cách xây dựng đa thức nội suy Newton lùi xuất phát từ nút xn
của f(x)
Ngoài ra, đa thức nội suy Newton của P x còn tính được trong trường hợp các mốc nội suy
không cách đều nhau Trong trường hợp này ta có thể đưa về trường hợp các mốc nội suy cách đều bằngcách áp dụng công thức nội suy Lagrange xác định công thức tính giá trị của P(x) Sau
đó tính giá trị của P(x) tại các mốc nội suy mới cách đều
Tài liệu tham khảo:
1 TS Trịnh Công Diệu, các bài giảng Phương Pháp Tính
2 Lê Trọng Vinh, Giải Tích Số, Nhà xuất bản khoa học và kỹ thuật