Bài giảng Giải tích số - Chương 3: Nội suy hàm số
Đa thức: đa thức K là một biểu thức dưới dạng tổng đại số của các đơn thức. Mỗi đơn thức là tích của một phần tử thuộc K với các lũy thừa tự nhiên của các biến.
Ví dụ: /(x,y,z) = 2x2y — 3y + 2 + 5yz — 2 □ Là một đa thức với x,y,z là các tham số.
Ta thường chọn đa thức là hàm nội suy:
Đa thức là loại hàm đơn giản
Luôn có đạo hàm và tích phân
Tính giá trị đơn giản
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Giải tích số - Chương 3: Nội suy hàm số", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Giải tích số - Chương 3: Nội suy hàm số
Phép nội suy □ Nội suy là phương pháp ước tính giá trị của các điểm dữ liệu chưa biết trong phạm vi một tập hợp rời rạc có chứa một số điểm dữ liệu đã biết. □ Cho hàm số y = f(x) □ Khi ta không biết biểu thức của /(%) hoặc đã biết biểu thức của /(%) nhưng khó khăn để tính /(c) Biết giá trị của hàm bằng cách đo đạc thực nghiệm trên đoạn [a, b], Các mốc nội suy ta có các mốc giá trị: Xo y0 Xị ■ ■ ■ Xj ■ ■ ■ xn-1 xn Yi • • • Yi • ■ • yn-i yn ->Bài toán nội suy là: Tìm giá trị /(%) của 1 điểm nào đó trên [a,b] □ Ta cần xây dựng hàm nội suy g(x) trên đoạn [a, b] có tính chất sau: Hàm g(x) có giá trị trùng với giá trị của '(x) tại các điểm mốc nội suy Tại các điểm khác thì g(x) có giá trị gần đúng với f (x) và phản ảnh đúng quy luật của Ỵx) Xấp xỉ f(x)bởi đa thức gn(x)(với gnCxp = f(xt)) ước lượng f(c) bởi gn{cy. f(c) gn(c) với sai sô /?n(c) □ Đa thức: đa thức K là một biểu thức dưới dạng tổng đại số của các đơn thức. Mỗi đơn thức là tích của một phần tử thuộc K với các lũy thừa tự nhiên của các biến. □ Ví dụ: /(x,y,z) = 2x2y — 3y + 2 + 5yz — 2 □ Là một đa thức với x,y,z là các tham số. □ Ta thường chọn đa thức là hàm nội suy: Đa thức là loại hàm đơn giản Luôn có đạo hàm và tích phân Tính giá trị đơn giản □ Bài toán: cho hàm y = /(x) có các mốc nội suy: □ Ta cần xây dựng một đa thức nội suy bậc n (mũ n) sao cho: Pn(x) = anxn + an iXn 1 + a-1% + a0 Pn(xi) = f(xi), có giá trị trùng nhau tại môc nội suy □ Ví dụ1: Cho hàm y=f(x), giả sử ta không biết chính xác biểu thức của f(x), và có một số mốc xác định bởi bảng sau: X 0 1 2 3 y = f(x) 0 1 5 14 Hãy tìm đa thức bậc 3 nội suy /■(%) Giải: - Giả sử đa thức bậc 3 nội suy hàm /(%) có dạng: P(x) □ Lần lượt thay các giá trị của Xj vào ta được hiện phương trình: P(0) = d = 0 >(0) = íz.03+ò.0Giải hệ phương trình ta có: lolol Vậy: P(x) = ax3 + bx2 + cx + d P(x) = ^x3 + + 7% +c.0 + d = 0 P(0) = ứ.l3+Ò.12+C.l + í7 = 1 P(2) = ứ.23+Ồ.22+c.2 + í7 = 5 P(3) = ứ.33+Ò.32+C.3 + d = 14 P(0) — a + b + c + d — 1 P(2) = Sa + 4Z? + 2c + d = 5 P(3) = 27ữ + 9ò + 3c + J = 14 x 1 1 1 Vậy P(x) = ^x3 + ^x2 + ^x 3 2 6 Ta có hàm f(x) ban đầu chưa biết là: x(x + l)(2x + 1) f(x) = 6 a Ta thấy /(2.5) = 8.75; p(2.5) = 8.75; □ Một số phương thức tìm đa thức nội suy dựa vào các điểm mốc cách đều và không cách đều: Phương pháp nội suy Langrange Phương pháp nội suy Newton □ Đối với một đa thức f(x) bất kỳ: Nếu = 0 thì c là một nghiệm của đa thức f{c}_se_£hia_het__cho__(xzc}_, và chúng ta có thể viết được f(x) dưới dạng: /(%) = (%- c)^(x) ■ Ví du: f(x) = 3x2- 3 /■(%) = (% — □ Xét ví du sau đây: Tìm cần tìm đa thức Ấ(x) sao cho: A(1 )=1 ;A(2)=0;A(3)=0; A (%) Rõ ràng đa thức A(x) sẽ có dạng: A(x) = k(x — 2) (% — 3) Hai điều kiện Ấ(2) = 0,71(3) = 0 đã thoã mãn. Vậy điều kiện A(1)=1 thì sao? □ Chúng ta thay X = 1 vào thì có: 71(1) = fc(l - 2)(1 - 3) = 1 □ Vậy ta có: k = —T—— ■ 1 (1—2)(1—3) Ẩ(x) = (x-2)(x-3) (l-2)(l-3) □ Tiếp tuc xét ví du sau đây: Tìm cần tìm đa thức B(x) sao cho: B(1 )=0;B(2)=1 ;B(3)=0; X 1 2 3 B(x) 0 10 Rõ ràng đa thức B(x) sẽ có dạng: ổ (%) = k(x — l)(x — 3) Hai điều kiện B(l) = 0, ổ(3) = 0 đã thoã mãn. Vậy điều kiện B(2)=1 thì sao? □ Chúng ta thay X = 2 vào thì có: B(2) = k(2 — 1)(2 — 3) = 1 □ Vậy ta có: k = -—-7——7 ■ } (2 —1)(2 —3) + B(x) = (2—í)(2—3) □ Tiếp tuc xét ví du sau đây: Tìm cần tìm đa thức C(x) sao cho: C(1)=0;C(2)=0;C(3)=1; c (x) Rõ ràng đa thức B(x) sẽ có dạng: C(x) = k(x — l)(x — 2) Hai điều kiện C(l) = 0, C(2) = 0 đã thoã mãn. Vậy điều kiện C(3)=1 thì ta tiếp tục thực hiện tìm k. Chúng ta thay X = 3 vào thì có: C(3) = /c(3 - 1)(3 - 2) = 1 Vậy ta có: k = -7—— ■ } (3—1)(3—2) ■» c(x) = v 7 (3—1)(3—2) □ ở trên, chúng ta đã giải các trường hợp đặc biệt và tìm ra được các đa thức /A(x), B(x) và C(x) thõa mãn điều kiện 4(1) = 1, 4(2) = 0, 4(3) = 0 B(l) = 0, B(2) = 1, B(3) = 0 ■ C(l) = 0, C(2) = 0, C(3) = 1 □ Bài toán tổng quát là tìm: P(x) sa0 /’(l) — 2,P(2) = 5,P(3) = 12 □ Rõ ràng nếu chúng ta lấy P(x) = 2 X(x) + 5 £?(%) + 12 c(x) thì P(l) = 2 4(1) + 5 5(1) + 12 C(l) = 2 + 0 + 0 = 2, P(2) = 2 4(2) + 5 B(2) + 12 c(2) = 0 + 5 + 0 = 5, P(3) = 2 4(3) + 5 B(3) + 12 C(3) = 0 + 0 + 12 = 12. □ Rõ ràng nếu chúng ta lấy p(x) = 2 i4(x) + 5 B(x) + 12 c(x) thì p(l) = 2 71(1) + 5 5(1) + 12 c(l) = 2 + 0 + 0 = 2, p(2) = 2 71(2) + 5 5(2) + 12 c(2) = 0 + 5 + 0 = 5, P(3) = 2 71(3) + 5 5(3) + 12 C(3) = 0 + 0 + 12 = 12. P(x) = 2 (x-2)(x-3) (1—2)(1—3) (x—l)(x—3) (2-1) (2-3) (x-l)(x-2) (3—1)(3—2) = (% — 2)(x — 3) — 5(x — l)(x — 3) + 6(x — l)(x — 2) = 2x2 — 3% + 3 . VâyP(x) 2x2 — 3x + 3 vấn đề: Chính nhờ việc giải bài toán đối với các trường hợp đơn giản là A(x), B(x), C(x), mà chúng ta đã tìm ra được lời giải cho bài toán tổng quát P(x)! □ Cho biết giá trị của hàm bằng cách đo đạc thực nghiệm trên đoạn [a, b], ta có các mốc nội suy: f(x) yi y-L ■■■■ yn yn+i □ Ta có thể xây dựng hàm nội suy P(x) có bậc bé thua hoặc bằng n từ các đa thức như sau: □ p (x) = yiPi(x) + y2P2 (x) + ••• + ynPnM + Wn+iW □ Trong đó các đa thức được xác định như sau: PnM = (x-x1Xx-x3ỵ...(x-xn 1)(x-xn+1) {xn Xi)(xn X2)....(xn xn_ì)(xn Xn+1) □ ^n+1 (*) (x-x1)(x-x3)....(x-xn 1)(x-xn) (xn+l *i)(*n+l *2)""(*n+l xn+l-l)(xn+! xn) □ Đa thức này thỏa điều kiện: P1(%1) = 1 P2 (^2) “ 0 Pn (.Xn ) 0 ^71 + 1(^71 + 1) 0 P1Ơ1) = 0 p2(x2) = 1 ^71 (^71) 0 ^71 + 1(^71 + 1) “ 0 P1(*1) = 0 ^2(^2) = 0 ^71(^71) 1 ^71 + 1(^71 + 1) — 0 P101) = 0 p2(%2) = 0 Pn (.Xn 'ì 0 ^71 + 1(^71 + 1) “ 1 □ Công thức tổng quát: □ Trong đó í'=0 khi ỉ * j khỉ ỉ = j L, (x) = 0, 2.2. ĐA THỨC NỘI SUY LAGRÀNG (LAGRANGE) VỚI NÚT KHÔNG CÁCH ĐỂư Giả sử trên đoạn a < X < b cho một lưới các điểm nút a < xo < Xj < x2 < ... < xn < b và giá trị của hàm y = f(x) tại các điểm nút đó là y, = f(Xi), i = 0, 1,..., n. Yêu cầu xây dựng một đa thức bậc n: Pn(x)= aox5 +alxn_l + — + an.lx + an Sao cho p„(x) trùng với f(x) tại các nút Xị, nghía là: pn(x,) = y, ; 1 = 0, 1,..., n. Lagráng đã xây dựng đa thức nội suy dưới dạng: n P„(x)=tyJLJ(x) j-0 (2-1) Trong dó: L,(x) = (x - xo)(x - X, )...(x - Xj-, )(x - xjt,)...(x - x„ ) (Xj -x0)(xj -xJ.-XXj -x^XXj -xj„)...(xj -x„) (2-2) Da thức nội suy Lagrăng (2-1) thoả mãn các điều kiện của bài toán trên. Thật vậy, vì Lj(x) là đa thức bậc n nên (2-1) là đa thức bậc n. Mặt khác vì: 1 khi i = j 0 khi i r j Ví dụ 1. Tìm đa thức P(x) có bậc bé thua hoặc bằng 4 sao cho P(l) = l, P(2) = 1, P(3) = 2, P(4) = 3, P(5) = 5 Chúng ta dùng công thức nội suy Lagrange (z — 2)(z — 3)(z — 4)(z — 5) (ar — l)(z — 3)(z — 4)(x — 5) P(x) = (l-2)(l-3)(l-4)(l-5) + (2 - 1)(2 - 3)(2 - 4)(2 - 5) (x — l)(x — 2)(x — 4)(x — 5) (x — l)(x — 2)(x — 3)(x — 5) (x — l)(x — 2)(x — 3)(x — 4) +2 (3 - 1)(3 - 2) (3 - 4)(3 - 5) + 3 (4- 1)(4 - 2) (4 - 3) (4 - 5) + 5 (5 - 1)(5 - 2) (5 - 3) (5 - 4) Vi dụ 2. Tim đa thức P(x) có bậc bé thua hoặc bằng 4 sao cho P(l) = 1, P(2) = 4, P(3) = 9, P(4) = 16, P(5) = 25 □ Bài tập: Cho y=f(x) với f(1)= -6, f(2)=-1, f(2.5) = 5.625, f(3) = 16 Tìm đa thức nội suy Lagrange Tính giá trị gần đúng của x*= 1.5 1/ dụ ỉ. Cho hàm f(x) thoá màn: Xi 0 1 2 4 f(Xi) 2 3 -1 0 Tìm hàm nội suy của f(x), tính f(5) 1- Cho bảng giá trị hàm: X r 1,50 1,54 1,56 . 1,60 1,63 1,70 y 3,873 3,924 3,950 4,(XX) 4,037 4,123 Sử dụng công thức nội suy Lagráng tìm giá trị hàm tại các điểm: a)l,52; b) 1,55; c) 1,58; d) 1,61 Đ p = 0, i = 0 G = 1 G = G * (X- xk) / (xi - xk) #include lincludeCconio.h> int nr ĩ, j ; float c, X[1OO], ỵ[lOO], PF L; void rr.ain ( ) { prindí ( "Nỉaap 11=”) ; scant , &n) ; printf("Nhap c = "); scant (”%t”r &c) ; for (X=O; x<n; Ĩ++) { printí ( r,Nlaap X [ %d] , y [ , xr X ) ; scant ( , &x[x], &y[x]); } P = O; for(i=0; x<n; X+4-) { L=l; for(j=Q; j<n; □++) { L=L*(c-x[j])/(x[x]-X[j]); } P=P+y[i]*L; prxntf(”L=%i \n”, L); } p r xn t f(” p(%f)= % t ” , c., p ) ; ợerch(); ■ Hạn chế của đa thức nội suy Lagrange : Mỗi khi thêm mốc nội suy, ta phải tính lại toàn bộ đa thức (Các đa thức Lagrange cơ bản và đa thức nội suy Lagrange) Đa thức nội suy Newton khắc phục hạn chế này + Đa thức nội suy Newton trên lưới đều. Nội suy ở đầu bảng(Newton tiến) Nội suy ở cuối bảng (Newton lùi) Nội suy từ giữa bảng + Đa thức nội suy Newton trên lưới không đều. □ Khái niệm: ■ Sai phân: là sự chênh lệch giá trị hàm tại hai điểm gần nhau ♦ sai phấn tiẽn cùa f(x) lả f(x + 1) — /(%) ♦ sai phản lùi của lả /(x) — /(x — 1) □ Khái niệm tỷ hiệư. Giả sử hàm y=f(x) được cho ở dạng bảng: X x0 X1 x2 • • • Xn-l Xn Yo Y1 Y2 • • • Yn-1 Yn ■ Tỷ hiệu cấp 1 của hàm y=f(x) tại Xj: f[Xi,Xi+l,...,Xi+k] = (4.1.8) Xi+k - Xi ■ Tỷ hiệu cấp 2 của hàm y=f(x) tại Xj: /[xz,Xz+1,Xz+2] , /[xz+1,xz+2]-/[xz,xz+1] xz+2 - xz Tông quát, tỷ hiệu câp k của hàm y=f(x) tại Xj được tính dựa vào tỷ hiệu câp k-1: • Đa thức nội suy Newton tiến xuất phát từ x0, thuờng dùng để tính gần đúng f(c) với c gần x0 = /(*0 ) + (x - *0 )/[x0, X, ] + (x - xo )(x - .V, )/[x0, X , x2 ] + ... + (x-x0)(x-x1)...(x-x„1)/[x0,x1,...,xJ • Tương tự, ta cũng có đa nội nội suy Newton Lùi xuất phát từ xn: (thường dùng để tính gần đúng f(c) khi c gần xn) pn w = í\Xn ) + (*-*„ )/[*„ > Xn-\ ] + (* - Xn )(* - Xn-\ ^f[Xn > Xn-\ > Xn-2 ] + ... + (x-x„)(x-x,í 1 )...(x-x1)/[x„,x„1,...,x0] □ Tính chất của tỷ hiệu y [xz,xị+1xi+k] f [xz+,,Xị+k_x,...,Xị] ■ Tỷ hiệu cấp n+1 của đa thức bậc n bằng 0. □ Bảng tỷ hiệu □ Ví dụ: Tìm đa thức nội suy có bậc bé thua 2 cho hàm số X 0 1/6 1/2 y=P(x) 0 1/2 1 0 0 1/6 1/2 3 1/2 1 3/2 -3 Lập bảng tỷ hiệu (tiến) x0 To *1 Ti •^2 T2 7 [-^0 ’-^1 ’-^2 ] □ Đa thức nội suy cần tìm có dạng: = 0 + 3x + x(x-l/6)(-3) = -3x2 +—X Ví dụ: Cho hàm số y=f(x) xác định bởi bảng các mốc nội suy sau. Hãy lập bảng tỷ sai phân tương ứng với các giá trị {Xj.y} đó. X 2 5 6 8 12 y 5 26 37 65 141 Theo định nghĩa, ta có bảng tỷ sai phân được xây dựng như sau: X y TSPC1 TSPC2 TSPC3 TSPC4 2 5 7 1 0 -1/420 5 26 11 1 -1/42 6 37 14 5/6 8 65 19 12 141 #include #include void ir.ain(){ int n,i,l,j,t,k; float x[100], y[100], p[100][100], c, kq; // Nhap du lieu printf("Nhap vao n:"); 3canf("%d", &n); for(i=0; i<n; i++)( printf("Nhap vao x[%d], ỵ[%d] ", i,i); scanf("%f%f", &x[i], &y[i]); 1 // Tih bang ty hieu // Gan du lieu x,y for(i=0; i<n; i++){ p[i][0] = x[i]; p[i][1] = ỵ[i]; // rinh ty hieu 1=1; for(j=0; j<n; j++){ k=j+2; for(t=l; t<n; t++){ // Xuat bang ty hieu for (1=0; i<n; 1++) { for(j=0; j<n+2; j++){ printf("%.2f ", p[i][j]); } printf("\n"); } // Nhap vao gia tri muon tinh gan dung printf("Nhap vao gia tri muon tĩnh gan dung: ") scanf("%fn, &c); float tich; for (1=0; i<n; i++){ tich= 1; for(j=0; j<i;j++){ tich = tich * (c-x[j]); } kq= kq+ p[i][1+1]*tich; } printf("Ket qua: %.2f", kq); getch(); } p[t][k]=(p[t][k-1]-p[t-1][k-l])/(x[t]-x[t-l]); } 1=1+1; Xj+1-Xj = h (hằng số) => Xj = x0 + ih 2h ih □ Định nghĩa sai phân hữu hạn: ■ Sai phân tiến cấp 1 tại Xịi A/7) = /(x, +/ỉ)-/7) (4.1.15) ■ Sai phân tiến cấp 2 tại Xji Á2/0) = A(A/ (x)) = A/ (xz + h) - A/ (xz)) = [/(xz + h + h)~ f{xi + hy] - [/(xz + h) - /(xz)] = /ơz+2) - 2/ƠÍ+1) + f\*i) ■ Sai phân tiến cấp n tại Xị được tính theo sai phân tiến cấp n-1: A'7(xi) = A(A'’-1/(xi)) (4.1.16) □ Đa thức nội suy Newton tiến tổng quát Pn (*) = /(x0) + (* - *0 )./ĩx0, Xị ] + (x - x0 )(x - xl )/[x0 ,x1,x2] + ... + (x-x0)(x-x1)...(x-x„_1)/[x0,x1,...,x„] Với: /[x0,x( ] = /(x,)-/(x0) _ A/(*o) _ Ay0 Xị-Xo h h + (x-x0)(x-x1)...(x-xíZ_1)^^ n\n □ Đặt X = x0+th, ta có: Với 0<t<n x-x0 X - X1 = th = (x-x0)-(x1-x0) = (t- 1)h X - xn_-| = (x-Xq) - (xn_i“Xo) = (t - n + 1 )h □ Từ 4.1.17, ta có: p„(x) = p„(xo+r/z) = y0 +tAy0 + —A2_y0 +...+^ 7, -A To 2! n\ (4.1.18) Đa thức trong 4.1.18 gọi là đa thức nội suy Newton tiến xuất phát từ x0 với các mốc cách đều 5.3. Đa thức nội suy Newton lùi- trên lưới điều Sai phân tiến các cấp tại xO có thể tính theo bảng: r □ Sai sô Ã(x) = Ã(x0 + /7z) (4.1.19) r(n+l)z ^r+1/(z-l)(z-2)...(í-n) (n + 1)! □ Tương tự, bằng cách đặt X = xn + th, ta có đa thức nội suy Newton lùi với các mốc cách điều =y„ 4tAy„ +!^-y„ +...+,{,+^,+Y+n-l)Ayil (4.1.20) 2! n! Ví dụ: Cho hàm y=f(x) xác định bởi bảng: 3 14 2 7 Tính gần đúng f(4/3) bằng đa thức nội suy Newton (tiến)? Giải: Ta thấy: Xi+1-Xị=1, Vi=0,1,...,n-1 Nên các mốc nội suy là cách đều Đặt X = Xo+th=1+t; X = 4/3 => t = 1/3 Bảng sai phân hữu hạn: Đa thức nội suy Newton: p(t) = y0+t.Ay0+(t2/2!) A2y0 = 2+ 5t + 1/2.t(t-1 ).2 = 2+4t+t2 f(4/3)« p( 1/3) = 31/9 Bảng sai phân hữu hạn cho đa thức nội suy newton lùi: y Ay A2y • • • A°y y0 1. y" I ^Ay, • • • yn-2 V x Ay„.2 ► *— yn-i ì J —Aỉy^i— ỹ. ì ^Aỵn A2y„ • • • A"y„ Ví dụ: Giá trị hàm Lgx (log cơ số 10) được cho trong bảng dưới. Tính gần đúng Ig7=? X y Ay A2V A3y 5 0.6989700 0.301030 -0.12494 0.Ó7379 10 1.0000000 0 176091 -0 05115 15 1.1760913 0.124939 20 1.3010300 Tính Tính Tính Đa thức nội suy newton tiến xuất phát từ x0=5 có dạng P3(x) = P3(x0+í/z) = y0 + /.Ạy0 + Trong đó: x=x0 + th t = = 7-5 _ 2 h 5 5 Thay t=2/5 và các sai phân cấp 1, cấp 2,..., cấp n (dòng đầu tiên của bảng) ta được giá trị gần đúng của Ig7 « p3(7) = ? Sai số: ? Bài tập
File đính kèm:
- bai_giang_giai_tich_so_chuong_3_noi_suy_ham_so.docx
- chuong_3_noi_suy_ham_so_7021_557180.pdf