Chương 5 - Nội Suy Và Xấp Xỉ Hàm Doc
- Miễn phí (current)
- Danh mục
- Khoa học kỹ thuật
- Công nghệ thông tin
- Kinh tế, Tài chính, Kế toán
- Văn hóa, Xã hội
- Ngoại ngữ
- Văn học, Báo chí
- Kiến trúc, xây dựng
- Sư phạm
- Khoa học Tự nhiên
- Luật
- Y Dược, Công nghệ thực phẩm
- Nông Lâm Thủy sản
- Ôn thi Đại học, THPT
- Đại cương
- Tài liệu khác
- Luận văn tổng hợp
- Nông Lâm
- Nông nghiệp
- Luận văn luận án
- Văn mẫu
- Luận văn tổng hợp
- Home
- Luận văn tổng hợp
- Chương 5 - Nội suy và xấp xỉ hàm doc
180Chơ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 + +a=++ Rõ ràng là Li(x) là một đa thức bậc n và : ==ij0ij1)x(Lji 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 : ==n1 Đa thức nội suy sẽ là : P1(x) = yoL0(x) + y1L1(x1) 1010xxxxL= 0101Vớ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) + y)xx)(xx()xx)(xx(L1202102=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 <conio.h> #include <stdio.h> #include <ctype.h> #define max 21 int maxkq,n; float x[max],y[max],a[max],xx[max],yy[max]; float x0,p0; void main() { } 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<=n;i++) { printf("x[%d] = ",i); scanf("%f",&x[i]); printf("y[%d] = ",i); scanf("%f",&y[i]); } printf("\n"); printf(" SO LIEU BAN VUA NHAP\n"); printf(" x y\n"); for (i=1;i<=n;i++) printf("%8.4f %8.4f\n",x[i],y[i]); ok=' '; t=1; flushall(); while (t) { printf("\nCo sua so lieu khong(c/k):?"); g0=g0*(x0-x[i])/(x[k]-x[i]); p0=p0+y[k]*g0; } return(p0); } void inkq() { int i,j,k; printf("\n"); printf("%24cBANG SO LIEU\n",' '); printf("%18cx %24cy\n",' ',' '); for (i=1;i<=n;i++) printf("%20.4f %25.4f\n",x[i],y[i]); printf("\n"); printf("%24cKET QUA TINH TOAN\n",' '); printf("%14cx %10cy\n",' ',' '); for (k=1;k<=maxkq;k++) printf("%15.5f %15.5f\n",xx[k],yy[k]); getch(); } Giả sử ta có bảng các giá trị x,y : x 0 3 -2 2 4 y 0 -3.75 10 -2 4 vậy theo chơng trình tại x = 2.5 y = -3.3549. n Tỉ hiệu cấp 1 của y tại xi,xj là : 184 jijijixxyy]x,x[y= Tỉ hiệu cấp hai của y tại xi,xj,xk là : kikjji10n0n10nxx]x,x[P]x,x[P]x,x,x[P= 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,xo, ,xn] = 0 Từ các định nghĩa tỉ hiệu ta suy ra : Pn(x) = Pn(x0) + ( x- x0)Pn[x,xo,x1,x2] + ( x- x2) Pn[x,xo,x1,x2] Pn[x,xo, ,xn-1] = Pn[x0,x1, ,xn] + (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(x (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 x0 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 - yi và sai phân tiến cấp hai tại i : 2yi = (yi) = yi+2 - 2yi+1 + yivà sai phân tiến cấp n là : nyi = (n-1yi) Khi đó ta có : y]x.,.,.x[yn0nn0= Bây giờ đặt x = x0 + ht trong đa thức Newton tiến ta đợc : y!n)1nt.(.).1t(ty!2)1t(tyty)htx(P0n02000nP020002++=+ 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-12yi = (yi) = yi - 2yi-1 + y +++++++=+Ví dụ : Cho hàm nh bảng sau : x 0.1 0.2 0.3 0.4 y 0.09983 0.19867 0.29552 0.38942 Ta tính giá trị của hàm tại 0.14 bằng đa thức nội suy Newton vì các mốc cách đều h = 0.1.Ta có bảng sai phân sau : i x y y 2y 3y 0 0.1 0.09983 0.09884 1 0.2 0.19867 -0.00199 186//Noi suy Newton #include <conio.h> #include <stdio.h> #include <ctype.h> #define max 11 void main() { int i,j,k,n,t; float a[max],b[max],x[max],y[max]; char ok; float x0,p; clrscr(); printf("So diem da cho n = "); scanf("%d",&n); for (i=1;i<=n;i++) { printf("x[%d] = ",i); scanf("%f",&x[i]); printf("y[%d] = ",i); scanf("%f",&y[i]); } printf("%10cBANG SO LIEU\n",' '); printf("%8cx%30cy\n",' ',' '); for (i=1;i<=n;i++) printf("%4c%8.4f%23c%8.4f\n",' ',x[i],' ',y[i]); ok=' '; t=0; { for (j=n-1;j>=1;j ) b[j]=a[j] ; for (i=n-1;i>=k;i ) a[i]=a[i]-b[i+1]*x[k]; } for (i=n;i>=1;i ) printf("He so bac %d la :%8.4f\n",i-1,a[i]); printf("\n"); k=0; ok='c'; flushall(); while (ok=='c') { printf("Tinh gia tri cua y tai x = "); scanf("%f",&x0); p=0; for (k=n;k>=1;k ) p=p*x0+a[k]; printf("Tri so noi suy tai x0 = %4.2f la : %10.5f\n",x0,p); getch(); printf("Ban co muon tinh tiep cac diem khac khong(c/k)"); do scanf("%c",&ok); while ((ok!='c')&&(ok!='k')); } } Dùng chơng trình này nội suy các giá trị cho trong bảng sau =là một đa thức bậc 1 : 0101101001xxxxyxxxxy)x(P+= .Khi x = x0 thì : = Đa thức nội suy Lagrange của f(x) qua 3 điểm x0,x1,x2 có dạng : 02212001012xxxx)x(Pxx)x(P)x(P= và là một đa thức bậc 2: )xx)(xx()xx)(xx(y)xx)(xx(02120000012yxxxx)x(Pxxy)x(P == Khi x = x1 thì : 1021211011012yxxxxyxxy)x(P == Nh vậy ta có thể dùng phép lặp để xác định lần lợt các đa thức Lagrange.Sơ đồ tính toán nh vậy gọi là sơ đồ Neville-Aitken. Ví dụ : Cho các cặp điểm (0,0.4),(1.4,1.5),(2.6,1.8),(3.9,2.6),tính y tại x=2 189 97143.104.16.05.124.0xxxxyxxy)x(P01110001=−−−=−−xx)x(Pxx)x(P)x(P02212001012=−−=−−−= 4308.16.29.39.16.26.08.1xxxxyxxy)x(P23332223=−=xx)x(P)x(P03312300120123=−−=−−−= Ch−¬ng tr×nh ®−îc viÕt nh− sau Ch−¬ng tr×nh 11-3 //Noi suy Aitken #include <conio.h> #include <stdio.h> #include <ctype.h> #define max 11 void main() { float x[max],y[max],yd[max]; float x1; int j,k,n,n1; Đ4.Xấp xỉ hàm bằng phơng pháp bình phơng bé nhất Trong các mục trớc ta đã nội suy giá trị của hàm.Bài toán đó là cho một hàm dới dạng bảng số và phải tìm giá trị của hàm tại một giá trị của đối số không nằm trong bảng. Trong thực tế,bên cạnh bài toán nội suy ta còn gặp một dạng bài toán khác.Đó là tìm công thức thực nghiệm của một hàm.Nội dung bài toán là từ một loạt các điểm cho trớc (có thể là các giá trị của một phép đo nào đó) ta phải tìm một hàm xấp xỉ các giá trị đã cho.Ta sẽ dùng phơng pháp bình phơng tối thiểu để giải bài toán.Giả sử có mẫu quan sát (xi,yi ) của hàm y = f(x).Ta chọn hàm f(x) có dạng : f(x) = a0f0(x) + a1f1(x) + a2f2(x) (1) Trong đó các hàm f0(x),f1==+++==n1i2inni11i00in1i2i)x(fa)x(fa)x(fayeS Rõ ràng S là hàm của các giá trị cần tìm ai.và chúng ta sẽ chọn các ai sao cho S đạt giá trị min,nghĩa là các đạo hàm iaSphải bằng không.Ta sẽ xét các trờng hợp cụ thể. 1.Hàm xấp xỉ có dạng đa thức : Trong trờng hợp tổng quát ta chọn hệ hàm xấp xỉ là một đa thức,nghĩa là : f(x) = a0 + a1x=+++=+++=+++=+++=+++========+i3in1i3i0n1in1i2mi1m3mimn1ii2in1i2i0n1in1i1mi1myxxaxaxayxxaxaxayxxaxaxaynaxaxaĐây là một hệ phơng trình tuyến tính.Giải nó ta nhận đợc các gía trị ai.Sau đây là chơng trình viết theo thuật toán trên. Chơng trình 11-4 //Xap xi da thuc #include <conio.h> #include <stdio.h> #include <ctype.h> #define max 11 void main() { int i,j,k,m,n,p,kp,t; float a[max],x[max],y[max],y1[max]; float b[max][max]; char ok; float s,sx,s1,c,d; clrscr(); printf("PHUONG PHAP BINH PHUONG TOI THIEU"); scanf("%d",&i); printf("Gia tri moi : "); printf("x[%d] = ",i); scanf("%f",&x[i]); printf("y[%d] = ",i); scanf("%f",&y[i]); flushall(); } if (toupper(ok)!='C') t=0; } //for (i=0;i<=n;i++) //a[i]=0.0; printf("\n"); printf("CAC GIA TRI DA CHO"); printf("\n"); printf("X = "); for (i=1;i<=n;i++) printf("%c%8.3f",' ',x[i]); printf("\n"); printf("Y = "); for (i=1;i<=n;i++) printf("%c%8.3f",' ',y[i]); printf("\n"); for (p=0;p<=m;p++) { y1[p]=0.0; for (i=1;i<=n;i++) { sx=1.0; } y1[i]*=c; } y1[m]/=b[m][m]; for (i=m-1;i>=0;i ) for (j=i+1;j<=m;j++) y1[i]-=b[i][j]*y1[j]; printf("\n"); printf("CAC HE SO CUA DA THUC CAN TIM"); printf("\n"); for (i=0;i<=m;i++) printf("a[%d] = %10.5f\n",i,y1[i]); getch(); } Với các giá trị x,y đo đợc theo bảng x 7 8 9 10 11 12 13 y 7,4 8,4 9,1 9,4 9,5 9,5 9,4 ta có n = 7 và chọn m = 2 và tính đợc theo chơng trình các hệ số : a0 = -0.111905 ; a1 = 2.545238 ; a2 = -4.857143 và hàm xấp xỉ sẽ là : f(x) = -0.111905 + 2.545238x -4.857143x2=====n1in1iiin1ii2in1in1iiiylnxxAlnxcylnAlnnxc Gi¶i hÖ ph−¬ng tr×nh nµy ta cã c¸c hÖ sè A vµ c : Ch−¬ng tr×nh 11-5 //xap_xi_e_mu; #include <conio.h> #include <stdio.h> #include <ctype.h> #include <math.h> #define max 11 if (toupper(ok)=='C') { 195 printf("Chi so cua phan tu can sua i = "); scanf("%d",&i); printf("Gia tri moi : "); printf("x[%d] = ",i); scanf("%f",&x[i]); printf("y[%d] = ",i); scanf("%f",&y[i]); } if (toupper(ok)!='C') t=0; } printf("CAC GIA TRI DA CHO"); printf("\n"); printf("X = "); for (i=1;i<=n;i++) printf("%c%8.3f",' ',x[i]); printf("\n"); printf("Y = "); for (i=1;i<=n;i++) printf("%c%8.3f",' ',y[i]); printf("\n"); a=0.0; for (i=1;i<=n;i++) a+=x[i]; b=n; c=0.0; x 0 2 4 6 8 10 12 y 1280 635 324 162 76 43 19 ta có n = 7 và tính đợc theo chơng trình các hệ số : A = 1285.44 va c = -0.3476 và hàm xấp xỉ sẽ là : f(x) = 1285.44 3.Hàm dạng Axq : Khi các số liệu thể hiện một sự biến đổi đơn điệu ta cũng có thể dùng hàm xấp xỉ là y = Axq.Lấy logarit hai vế ta có : lny = lnA + qlnx Theo điều kiện đạo hàm triệt tiêu ta có hệ phơng trình : =+=+===== int i,n,t; float x[max],y[max]; char ok; float a,b,c,d,e,f,d1,d2,d3; clrscr(); printf("PHUONG PHAP BINH PHUONG TOI THIEU"); printf("\n"); printf("So diem da cho n = "); scanf("%d",&n); for (i=1;i<=n;i++) { printf("x[%d] = ",i); scanf("%f",&x[i]); printf("y[%d] = ",i); scanf("%f",&y[i]); 197 } x[0]=1.0; printf("%4cBANG SO LIEU\n",' '); printf("%8cx%30cy\n",' ',' '); for (i=1;i<=n;i++) printf("%4c%8.4f%23c%8.4f\n",' ',x[i],' ',y[i]); ok=' '; flushall(); t=1; while (t) { printf("Co sua so lieu khong(c/k): "); for (i=1;i<=n;i++) c+=log(y[i]); d=0.0; for (i=1;i<=n;i++) d+=log(x[i])*log(x[i]); e=0.; for (i=1;i<=n;i++) e+=log(x[i])*log(y[i]); 198 d1=a*a-d*b; d2=c*a-e*b; d3=a*e-c*d; c=d2/d1; a=d3/d1; printf("\n"); printf("He so A = %8.4f",exp(a)); printf(" va so mu q = %8.4f\n",c); printf("\n"); printf("\nBANG CAC GIA TRI TINH TOAN\n"); printf("%5cx%27cy\n",' ',' '); for (i=1;i<=n;i++) { printf("%8.4f%20c%8.4f\n",x[i],' ',exp(a)*exp(c*log(x[i]))); } getch(); } Với các giá trị x,y đo đợc theo bảng ++=n1i2110i)xsinbxcosaa(yS Theo điều kiện đạo hàm triệt tiêu ta có hệ phơng trình đối với các hệ số dạng : =2 Do : 0nxsinxcos21nxcos21nxsin0nxcos0nxsin22=====⎦⎤⎢⎢⎣⎡∑∑∑xsinyxcosyybaa2n0002n000n110 Gi¶i hÖ ta cã : ∑∑∑ω=ω== xsinyn2bxcosy //xap_xi_sin_cos; #include <conio.h> #include <stdio.h> #include <ctype.h> #include <math.h> #define max 11 #define pi 3.15159 void main() { int i,j,m,n,t; float x[max],y[max],a[max],b[max]; char ok; float omg,t1; clrscr(); printf("PHUONG PHAP BINH PHUONG TOI THIEU"); printf("\n"); printf("Cho so so hang sin-cos m = "); scanf("%d",&m); printf("Cho chu ki T = "); scanf("%f",&t1); printf("So diem da cho n = "); scanf("%d",&n); for (i=1;i<=n;i++) { printf("x[%d] = ",i); scanf("%f",&x[i]); printf("y[%d] = ",i); printf("\nCAC GIA TRI DA CHO\n"); printf("\n"); printf(" X Y\n"); for (i=1;i<=n;i++) printf("%c%8.3f%c%8.3f\n",' ',x[i],' ',y[i]); printf("\n"); a[0]=0.0; omg=2*pi/t1; for (i=1;i<=n;i++) a[0]+=y[i]; a[0]/=n; for (j=1;j<=m;j++) { a[j]=0.0; for (i=1;i<=n;i++) a[j]+=y[i]*cos(j*omg*x[i]); a[j]=2*a[j]/n; } for (j=1;j<=m;j++) { b[j]=0.0; for (i=1;i<=n;i++) b[j]+=y[i]*sin(j*omg*x[i]); b[j]=2*b[j]/n; } printf("\n"); printf("TAN SO GOC OMEGA = %10.5f\n",omg); 2010 = 1.7 ; a1 = 0.5 ; b1 = -0.8661 và = 4.18879.Nh vậy hàm xấp xỉ có dạng : f(x) = 1.7 + 0.5cos(4.18879x) - 0.8661sin(4.18879x) 5.Hàm hữu tỉ : Khi quan hệ y = f(x) có dạng đờng cong bão hoà hay dạng arctan,tan v.v ta dùng hàm xấp xỉ là hàm hữu tỉ dạng đơn giản : xbaxy+= Lấy nghịch đảo của nó ta có : a1x1aby1+= Đặt 1/y = Y,1/x = X,b/a = B và 1/a = A phơng trình trên sẽ có dạng : Y = A + BX và là một đa thức bậc một.Do vậy ta có hệ phơng trình đối với các hệ số A và B là : x1Bx1Ay1x1BnA và từ đó tính đợc a và b.Chơng trình sau mô tả thuật toán trên Chơng trình 11 8 //xap xi huu_ty; #include <conio.h> #include <stdio.h> #include <ctype.h> #include <math.h> #define k 11 void main() { float x[k],y[k]; float a,b,a1,b1,c,d,e; int i,n,t; 202 char ok; scanf("%f",&x[i]); printf("y[%d] = ",i); scanf("%f",&y[i]); flushall(); } if (toupper(ok)!='C') t=0; } printf("CAC GIA TRI DA CHO\n"); printf("\n"); printf("X = "); for (i=1;i<=n;i++) printf("%c%8.3f",' ',x[i]); printf("\n"); printf("Y = "); for (i=1;i<=n;i++) printf("%c%8.3f",' ' ,y[i]); printf("\n"); a=n; 203 b=0.0; c=0.0; d=0.0; e=0.0; for (i=1;i<=n;i++) { b+=1/x[i]; c+=1/y[i]; d+=1/(x[i]*x[i]); Tải File Word Nhờ tải bản gốc Tài liệu, ebook tham khảo khác
- Nội suy và xấ[ xỉ hàm
- Thương mại điện tử - Chương 5: Triển khai và quản lý hoạt động trong thương mại điện tử
- Chuong 5 (Amino Axit Va Protit) - Tiet26 - AminoAxit
- Tài liệu CHƯƠNG 3: NỘI SUY VÀ XẤP XỈ HÀM
- Chương 5 NỘI SUY VÀ XẤP XỈ HÀM
- Chương 5 - Nội suy và xấp xỉ hàm doc
- Nội suy đa thức, đạo hàm và tích phân
- Chương 3: Nội suy và xấp xỉ hàm số doc
- Bài giảng phương pháp tính chương 3 nội suy và bình phương cực tiểu TS nguyễn quốc lân
- Chương 2 NỘI SUY VÀ LẤY XẤP XỈ HÀM SỐ
- Báo cáo Thực trạng tổ chức bộ máy kế toán và công tác kế toán ở công ty sản xuất và xuất nhập khẩu tổng hợp Hà Nội
- Vận tải đường Biển tại công ty giao nhận kho vận ngoại thương (VIETRANS): Thực trạng và giải pháp
- Tìm hiểu về FDI tại Việt Nam
- Giải pháp nâng cao thị phần vận chuyển hàng hoá xuất nhập khẩu của đội tàu biển Việt Nam
- Những vấn đề đặt ra trong quản lý Nhà nước đối với việc thực thi các cam kết gia nhập WTO
- Việc sử dụng vốn FDI ở Việt Nam
- Giải pháp đẩy mạnh xuất khẩu rau quả Việt Nam sang thị trường Mỹ
- Kinh nghiệm gia nhập WTO của Trung Quốc và khả năng vận dụng vào Việt Nam
- Bản chất và tính hai mặt của toàn cầu hoá kinh tế
- Tiến trình gia nhập WTO của Trung Quốc và bài học kinh nghiệm đối với Việt Nam
Học thêm
- Nhờ tải tài liệu
- Từ điển Nhật Việt online
- Từ điển Hàn Việt online
- Văn mẫu tuyển chọn
- Tài liệu Cao học
- Tài liệu tham khảo
- Truyện Tiếng Anh
Copyright: Tài liệu đại học ©
Từ khóa » Nội Suy Và Xấp Xỉ Hàm
-
[PDF] Chương 4 NỘI SUY VÀ XẤP XỈ HÀM
-
Chuong04 - SlideShare
-
Chương 5 NỘI SUY VÀ XẤP XỈ HÀM - TaiLieu.VN
-
Xác Suất Thống Kê - Chương 4: Nội Suy Và Xấp Xỉ Hàm
-
Chương 4: Nội Suy Và Xấp Xỉ Hàm-[Phương Pháp Tính- BKHCM]
-
Phương Pháp Tính - Nội Suy Và Xấp Xỉ Hàm - Tài Liệu Text - 123doc
-
Bài 4: Đa Thức Xấp Xỉ Và Nội Suy - YouTube
-
Bài Giảng Chương 5 - Nội Suy Và Xấp Xỉ Hàm
-
Bài Giảng Phương Pháp Tính - Chương 3: Nội Suy Và Xấp Xỉ Hàm
-
Bài Giảng Phương Pháp Tính - Chương 4: Nội Suy Và Xấp Xỉ Hàm
-
Bài Giảng Phương Pháp Tính: Nội Suy Và Xấp Xỉ Hàm - Đậu Thế Phiệt
-
Bài Giảng Chương 5 - Nội Suy Và Xấp Xỉ Hàm - TailieuXANH
-
Nghiên Cứu Một Số Phương Pháp Nội Suy Và Sấp Xỉ Hàm Số
-
[PDF] Chương 3: Phép Nội Suy Và Hồi Quy