Bài giảng Chương 5 - Nội suy và xấp xỉ hàm
Số trang: 24
Loại file: pdf
Dung lượng: 143.09 KB
Lượt xem: 29
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Trong thực tế nhiều khi phải phục hồi một hàm tại mọi giái trị trong một đoạn 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ố điểm đã cho trướ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 ra nhiều nội suy.
Nội dung trích xuất từ tài liệu:
Bài giảng Chương 5 - Nội suy và xấp xỉ hàm Ch−¬ng 11 : néi suy vµ xÊp xØ hµm §1.Néi suy Lagrange Trong thùc tÕ nhiÒu khi ph¶i phôc håi mét hµm y = f(x) t¹i mäi 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è ®iÓ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(xi) ®· biÕt.B©y giê ta cÇn t×m ®a thøc : Pn(x) = aoxn + a1xn-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.ViÖc tÝnh gi¸ trÞ cña nã theo thuËt to¸n Horner còng ®¬n gi¶n. B©y giê ta x©y dùng ®a thøc néi suy kiÓu Lagrange.Gäi Li lµ ®a thøc : (x − x 0 )...(x − x i −1 )(x − x i +1 )...(x − x n ) Li = (x i − x 0 )...(x i − x i −1 )(x i − x i +1 )...(x i − x n ) Râ rµng lµ Li(x) lµ mét ®a thøc bËc n vµ : ⎧1 ⎪ j=i L i (x j ) =⎨ ⎪0 ⎩ j≠i Ta gäi ®a thøc nµy lµ ®a thøc Lagrange c¬ b¶n. B©y giê ta xÐt biÓu thøc : n P n (x) = ∑ f (xi )L i (x) i =0 Ta thÊy Pn(x) lµ mét ®a thøc bËc n v× c¸c Li(x) lµ c¸c ®a thøc bËc n vµ tho¶ m·n ®iÒu kiÖn Pn(xi) = f(xi) = yi.Ta gäi nã lµ ®a thøc néi suy Lagrange. Víi n = 1 ta cã b¶ng x x0 x1 y y0 y1 §a thøc néi suy sÏ lµ : P1(x) = yoL0(x) + y1L1(x1) x − x1 x − x0 L0 = L1 = x 0 − x1 x1 − x 0 x − x1 x − x0 nªn P1 (x) = y 0 + y1 x 0 − x1 x1 − x 0 Nh− vËy P1(x) lµ mét ®a thøc bËc nhÊt ®èi víi x Víi n = 2 ta cã b¶ng x x0 x1 x2 y y0 y1 y2 §a thøc néi suy sÏ lµ : P2(x) = yoL0(x) + y1L1(x1) + y2L2(x2) (x − x 1 )(x − x 2 ) L0 = (x 0 − x 1 )(x 0 − x 2 ) (x − x 0 )(x − x 2 ) L1 = (x 1 − x 0 )(x 1 − x 2 ) 180 (x − x 0 )(x − x 1 ) L2 = (x 2 − x 0 )(x 2 − x 1 ) Nh− vËy P1(x) lµ mét ®a thøc bËc hai ®èi víi x Trªn c¬ së thuËt to¸n trªn ta cã ch−¬ng tr×nh t×m ®a thøc néi suy cña mét hµm khi cho tr−íc c¸c ®iÓm vµ sau ®ã tÝnh trÞ sè cña nã t¹i mét gi¸ trÞ nµo ®ã nh− sau : Ch−¬ng tr×nh 11-1 #include #include #include #define max 21 int maxkq,n; float x[max],y[max],a[max],xx[max],yy[max]; float x0,p0; void main() { int i,k; char ok ; void vaosolieu(void); float lagrange(int,float [],float [],float); void inkq(void); clrscr(); printf(%24cNOI SUY DA THUC LAGRANGE\n,' '); vaosolieu(); k=0; ok='c'; while (ok=='c') { printf(Tinh gia tri cua y voi x la x0 = ); scanf(%f,&x0); p0=lagrange(n,x,y,x0); printf(Gia tri cua y = %15.5f\n,p0); printf(\n); k=k+1; maxkq=k; xx[k]=x0; yy[k]=p0; flushall(); printf(Tinh tiep khong(c/k)?); scanf(%c,&ok); } inkq(); 181 } void vaosolieu() { int i,t; char ok; printf(\n); printf(Ham y = f(x)\n); printf(So cap (x,y) nhieu nhat la max = 20\n); printf(So diem da cho truoc n = ); scanf(%d,&n); for (i=1;i float g0; p0=0.0; for (k=1;k yi − y j y[x i , x j ] = xi − x j TØ hiÖu cÊp hai cña y t¹i xi,xj,xk lµ : y[x i , x j ] − y[x j , x k ] y[x i , x j , x k ] = xi − x k 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 : Pn (x) − Pn (x 0 ) Pn [x, x 0 ] = x − x0 lµ mét ®a thøc bËc ...
Nội dung trích xuất từ tài liệu:
Bài giảng Chương 5 - Nội suy và xấp xỉ hàm Ch−¬ng 11 : néi suy vµ xÊp xØ hµm §1.Néi suy Lagrange Trong thùc tÕ nhiÒu khi ph¶i phôc håi mét hµm y = f(x) t¹i mäi 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è ®iÓ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(xi) ®· biÕt.B©y giê ta cÇn t×m ®a thøc : Pn(x) = aoxn + a1xn-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.ViÖc tÝnh gi¸ trÞ cña nã theo thuËt to¸n Horner còng ®¬n gi¶n. B©y giê ta x©y dùng ®a thøc néi suy kiÓu Lagrange.Gäi Li lµ ®a thøc : (x − x 0 )...(x − x i −1 )(x − x i +1 )...(x − x n ) Li = (x i − x 0 )...(x i − x i −1 )(x i − x i +1 )...(x i − x n ) Râ rµng lµ Li(x) lµ mét ®a thøc bËc n vµ : ⎧1 ⎪ j=i L i (x j ) =⎨ ⎪0 ⎩ j≠i Ta gäi ®a thøc nµy lµ ®a thøc Lagrange c¬ b¶n. B©y giê ta xÐt biÓu thøc : n P n (x) = ∑ f (xi )L i (x) i =0 Ta thÊy Pn(x) lµ mét ®a thøc bËc n v× c¸c Li(x) lµ c¸c ®a thøc bËc n vµ tho¶ m·n ®iÒu kiÖn Pn(xi) = f(xi) = yi.Ta gäi nã lµ ®a thøc néi suy Lagrange. Víi n = 1 ta cã b¶ng x x0 x1 y y0 y1 §a thøc néi suy sÏ lµ : P1(x) = yoL0(x) + y1L1(x1) x − x1 x − x0 L0 = L1 = x 0 − x1 x1 − x 0 x − x1 x − x0 nªn P1 (x) = y 0 + y1 x 0 − x1 x1 − x 0 Nh− vËy P1(x) lµ mét ®a thøc bËc nhÊt ®èi víi x Víi n = 2 ta cã b¶ng x x0 x1 x2 y y0 y1 y2 §a thøc néi suy sÏ lµ : P2(x) = yoL0(x) + y1L1(x1) + y2L2(x2) (x − x 1 )(x − x 2 ) L0 = (x 0 − x 1 )(x 0 − x 2 ) (x − x 0 )(x − x 2 ) L1 = (x 1 − x 0 )(x 1 − x 2 ) 180 (x − x 0 )(x − x 1 ) L2 = (x 2 − x 0 )(x 2 − x 1 ) Nh− vËy P1(x) lµ mét ®a thøc bËc hai ®èi víi x Trªn c¬ së thuËt to¸n trªn ta cã ch−¬ng tr×nh t×m ®a thøc néi suy cña mét hµm khi cho tr−íc c¸c ®iÓm vµ sau ®ã tÝnh trÞ sè cña nã t¹i mét gi¸ trÞ nµo ®ã nh− sau : Ch−¬ng tr×nh 11-1 #include #include #include #define max 21 int maxkq,n; float x[max],y[max],a[max],xx[max],yy[max]; float x0,p0; void main() { int i,k; char ok ; void vaosolieu(void); float lagrange(int,float [],float [],float); void inkq(void); clrscr(); printf(%24cNOI SUY DA THUC LAGRANGE\n,' '); vaosolieu(); k=0; ok='c'; while (ok=='c') { printf(Tinh gia tri cua y voi x la x0 = ); scanf(%f,&x0); p0=lagrange(n,x,y,x0); printf(Gia tri cua y = %15.5f\n,p0); printf(\n); k=k+1; maxkq=k; xx[k]=x0; yy[k]=p0; flushall(); printf(Tinh tiep khong(c/k)?); scanf(%c,&ok); } inkq(); 181 } void vaosolieu() { int i,t; char ok; printf(\n); printf(Ham y = f(x)\n); printf(So cap (x,y) nhieu nhat la max = 20\n); printf(So diem da cho truoc n = ); scanf(%d,&n); for (i=1;i float g0; p0=0.0; for (k=1;k yi − y j y[x i , x j ] = xi − x j TØ hiÖu cÊp hai cña y t¹i xi,xj,xk lµ : y[x i , x j ] − y[x j , x k ] y[x i , x j , x k ] = xi − x k 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 : Pn (x) − Pn (x 0 ) Pn [x, x 0 ] = x − x0 lµ mét ®a thøc bËc ...
Tìm kiếm theo từ khóa liên quan:
Nội suy Newton nội suy Aitken phương pháp bình phương bé nhất hàm xấp xỉ có dạng đa thức sai phân tuyến cấp đa thức nội suy lagrangeGợi ý tài liệu liên quan:
-
Luận văn Thạc sĩ Toán học: Đa thức nội suy Lagrange, đa thức Chebyshev và ứng dụng
85 trang 54 0 0 -
Một số ứng dụng của đa thức nội suy Lagrange trong thực tế
9 trang 51 0 0 -
Giáo trình Phương pháp tính: Phần 1
139 trang 39 0 0 -
Bài giảng Phương pháp số: Chương 3 - Hà Thị Ngọc Yến
11 trang 35 0 0 -
Đa thức nội suy cổ điển và một số ứng dụng
10 trang 31 0 0 -
Giáo Trình : Bộ môn cơ sở kỹ thuật
112 trang 29 0 0 -
Bài giảng Phương pháp số: Chương 2 - Hà Thị Ngọc Yến
10 trang 25 0 0 -
Bài giảng Xấp xỉ hàm số bằng đa thức nội suy Lagrange
11 trang 23 0 0 -
Bài giảng Toán ứng dụng - Phan Phương Dung
12 trang 23 0 0 -
Giáo trình Phương pháp tính - ThS. Phạm Thị Ngọc Minh
58 trang 21 0 0