Giáo Trình Phương Pháp Tính (chương 5)

30 238 0
Giáo Trình Phương Pháp Tính (chương 5)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHNG5: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:  P n(x)=aoxn+a1x n1 +…+an1x+an saochoP n(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L ilàđathc: )xx) (xx)(xx) (xx( )xx) (xx)(xx) (xx( L ni1ii1ii0i n1i1i0 i −−−− − − −− = +− +−   RõrànglàLi(x)làmtđathcbcnvà: ⎩ ⎨ ⎧ ≠ = = ij0 ij1 )x(L ji  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 0i iin )x(L)x(f)x(P 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 x 0 x1 y y0 y1 Đathcnisuyslà:  P 1(x)=yoL0(x)+y1L1(x1)  10 1 0 xx xx L − − =  01 0 1 xx xx L − − =  nên 01 0 1 10 1 01 xx xx y xx xx y)x(P − − + − − =  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 128 x x0 x1 x2 y y0 y1 y2 Đathcnisuyslà:  P2(x)=yoL0(x)+y1L1(x1)+y2L2(x2)  )xx)(xx( )xx)(xx( L 2010 21 0 −− −− =  )xx)(xx( )xx)(xx( L 2101 20 1 −− −− =  )xx)(xx( )xx)(xx( L 1202 10 2 −− −− =   NhvyP 1(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5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() {  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,); 129  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(); }  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]); } 130  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):?); scanf(%c,&ok); if(toupper(ok)==C) { 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]); flushall(); } if(toupper(ok)!=C) t=0; } }  floatlagrange(intn,float x[max],floaty[max],floatx0) {  inti,k;  floatg0;   p0=0.0;  for(k=1;k<=n;k++) { g0=1.0; for(i=1;i<=n;i++) 131 if(i!=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.  §2.NISUYNEWTON  Bây gi ta xét mt cách khácđxây dngđa thc ni suy gi là phngphápNewton.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: x x0 x1 x2 … xn1 xn  y y0 y1 y2 … y n1 yn   Thiucp1caytixi,xjlà:  ji ji ji xx yy ]x,x[y − − =   Thiucphaicaytixi,xj,xklà: 132 k i k jji k ji xx ]x,x[y]x,x[y ]x,x,x[y − − =  v.v.  Viy(x)=P n(x)làmtđathcbcnthìthiucp1tix,x0:  0 0nn 0n xx )x(P)x(P ]x,x[P − − =  làmtđathcbc(n1).Thiucp2tix,x 0,x1: 1 10n0n 10n xx ]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:  P n(x)=Pn(x0)+(xx0)Pn[x,xo]  Pn[x,x0]=Pn[x0,x1]+(xx1)Pn[x,xo,x1]  P n[x,xo,x1]=Pn[x0,x1,x2]+(xx2)Pn[x,xo,x1,x2]    P n[x,xo, ,xn1]=Pn[x0,x1, ,xn]+(xxn)Pn[x,xo, ,xn] Do Pn[x,xo, ,xn]=0nêntđótacó: Pn(x)=Pn(x0)+(xx0)Pn[xo,x1]+(xx0)(xx1)Pn[x0,x1,x2]+… +(xx 0)…(xxn1)Pn[x0,…,xn] NuP n(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ó: P n(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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x ncódngnhsau:  P n(x)=yn+(xxn)y[xn,xn1]+(xxn)(xxn1)y[xn,xn1,xn2]+ + (xx n)(xxn1) (xx1)y[xn, ,x0] 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à:  ∆y i=yi+1yi vàsaiphântincphaitii:  ∆ 2 yi=∆(∆yi)=yi+22yi+1+yi   vàsaiphântincpnlà: 133  ∆ n yi=∆(∆ n1 yi) Khiđótacó:  [] h y x,xy 0 10 ∆ =   [] 2 0 2 210 h2 y x,x,xy ∆ =     [] n 0 n n210 h!n y x, ,x,x,xy ∆ =  Bâygiđtx=x 0+httrongđathcNewtontintađc:   0 n 0 2 000n y !n )1nt()1t(t y !2 )1t(t yty)htx(P ∆ +− ⋅ ⋅ ⋅ − +⋅⋅⋅+∆ − +∆+=+  thìtanhnđcđathcNewtontinxutpháttx 0trongtrnghpnút cáchđu.Vin=1tacó:  P1(x0+ht)=y0+∆y0 Vin=2tacó: 0 2 000n y !2 )1t(t yty)htx(P ∆ − +∆+=+  Mtcáchtngttacókháinimcácsaiphânlùitii:  ∇y i=yiyi1  ∇ 2 yi=∇(∇yi)=yi2yi1+yi2    ∇ n yi=∇(∇ n1 yi) vàđathcnisuyNewtonlùikhicácđimnisuycáchđu: n n n 2 nn0n y !n )1nt()1t(t y !2 )1t(t yty)htx(P ∇ −+⋅ ⋅ ⋅ + +⋅⋅⋅+∇ + +∇+=+   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 ∆ 2 y ∆ 3 y 0 0.1 0.09983    0.09884  134 1 0.2 0.198670.00199  0.096850.00096 2 0.3 0.295520.00295  0.09390  3 0.4 0.38942    TadùngcôngthcNewtontinviđimgclàx 0=0.1;h=0.1.Vix= 0.14tacó0.14=0.1+0.1tnênt=0.4vàktqulà: 1395433 6 .000096.0 !3 )2t)(1t(t 00199.0 !2 )1t(t 099884.0.t09983.0)t1.01.0(P = − − − − ++=+ ChngtrìnhnisuyNewtonnhsau:  Chngtrình52  //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,); 135  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;  flushall();  while(t) { printf(Cosuasolieukhong(c/k):); scanf(%c,&ok); if(toupper(ok)==C) { 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]); flushall(); } if(toupper(ok)!=C) t=0; }  a[1]=y[1];  for(j=1;j<=n1;j++) { for(i=1;i<=nj;i++) y[i]=(y[i+1]y[i])/(x[i+j]x[i]);  a[j+1]=y[1]; }  b[n]=a[n];  for(k=n1;k>=1;k) { 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]; 136 }  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  0 0.2 0.4 0.6 0.8 1.0 1 1.22140276 1.4918247 1.8221188 2.22554093 2.71828183 tacócáchscađathcnisuy:0.0139(bc5),0.0349(bc4),0.1704(bc3), 0.4991(bc2),1.0001(bc1)và1.0000(bc0).  §3.NISUYAITKEN Mt dng khác cađa thc ni suyđc xácđnh bng thut toán Aitken.Gistacónđimđãchocahàmf(x).Nhvyquahaiđimx 0và x1tacóđathcnisuyLagrangecahàmf(x)đcvitdidng: 01 11 00 01 xx xxy xxy )x(P − − − =  làmtđathcbc1: 137 [...]... ng trình: Theo i u ki n o hàm 0 ta nh n ai n am n xim am 1 i 1 n am xim n na 0 yi i 1 xim 1 i 1 n am a0 i 1 xim 2 n am xi xi yi i 1 i 1 x im 1 n n x im 1 i 1 am n 1 1 n a0 i 1 i 1 n n am x m 3 i am i 1 n am x 1 m 2 i a0 i 1 xi2 m n am i 1 1 i 1 x i2 m x 3 i i 1 1 n a0 i 1 n x i2 y i i 1 i 1 n xi2 n xi3 y i i 1 x im n x im y i i 1 ây là m t h ph ng trình tuy n tính Gi i nó ta nh n ai Sau ây là ch ng trình. .. 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 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 : n q n ln x i n ln A ln y i i 1 n q i 1 2 ln x i Ch n n ln A i 1 Gi i h ph n i u ta c ng ln x i i 1 ln x i ln y i i 1 ng trình. .. trên s có d ng: 154 Y = A + BX và là m t a th c b c m t.Do v y ta có h ph và B là: n n 1 1 nA B i 1 xi i 1 yi n n n 1 1 1 A B 2 i 1 xi i 1 xi i 1 xi yi và t Ch ó tính c a và b Ch ng trình i v i các h s A ng trình sau mô t thu t toán trên ng trình 5 8 //xap xi huu_ty; #include #include #include #include #define k 11 void main() { float x[k],y[k]; float a,b,a1,b1,c,d,e;... Lagrange qua n i m là: P01 ( n 1) ( x) x 0 x P12 n ( x) x n x P012 n ( x) x2 x0 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 138 y0 P01 ( x) P12 ( x) P012 ( x) P23 ( x) x0 x 0.4 2 y1 x1 x x1 x 0 y1 x1 x 1.5 0.6 1.4 0 1.5 0.6 y2 x2 x x 2 x1 P01 ( x) x 0 1.8... 8,4 9 9,1 10 9,4 11 9,5 12 9,5 13 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 2.Hàm d ng Aecx: Khi các s li u th hi n m t s bi n hàm x p x là y = Aecx L y logarit hai v ta có : lny = lnA + cxlne S 0 ta có h ph ng trình : Theo i u ki n o hàm ai n c n ln A i 1 n Ch ln y i i 1 x i2... yd[j]=(yd[j]*(x1 x[k+1]) yd[j+1]*(x1 x[j]))/(x[j] x[k+1]); } printf( Gia tri ham tai x = %6.3f la y = %8.4f\n ,x1,yd[0]); getch(); } Dùng ch ng trình này (5, 11) t i x = 2.5 ta có y = 6 n i suy các c p s (1, 3), (2, 5), (3, 7), (4, 9) và §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... ,exp(a)*exp(c*log(x[i]))); } getch(); } V i các giá tr x,y o c theo b ng 150 x y 1 7.1 2 27.8 4 62.1 5 110 6 161 ta có n = 5 và tính c theo ch ng trình các h s : A = 7.1641 và q = 1.9531 và hàm x p x s là: f(x) = 1285.44x1.9531 4 Hàm l ng giác: Khi quan h y = f(x) có d ng tu n hoàn ta dùng hàm x p x là t h p tuy n tính c a các hàm sin và cosin d ng: n f ( x) a 0 n a i cos( i x) i 1 bi sin(i x) i 1 n gi n tr c h t ta xét... x sin x sin x ng trình i v i các h s a0 y cos x sin x a 1 sin 2 x b1 y cos x y sin x Do : sin x cos x 0 0 n n sin 2 x 1 cos 2 x 1 n 2 n 2 cos x sin x 0 n nên h ph ng trình có d ng n gi n : y n 0 0 a0 y cos x 0 n 2 0 a1 y sin x 0 0 n 2 b1 Gi i h ta có : y 2 2 y sin x y cos x b1 a1 a0 n n n Trong tr ng h p t ng quát,m t cách t ng t ta có: y 2 2 ai a0 y cos i x bi y sin i x n n n Ch ng trình tìm các h... 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(x), f2(x) v.v là (m+1) hàm c l p tuy n tính mà ta có th ch n tu ý và các h s ai là tham s ch a bi t mà ta ph i xác nh d a vào h hàm ã ch n và các i m quan sát Sai s gi a tr o c và tr tính theo (1) là : 140... 2.6 1.4 1.97143 2 x 1.97143 1.65 0.6 P12 ( x) x 2 x x2 x0 2.6 0 1.8 0.6 y2 x2 x 2.6 1.9 y3 x3 x 1.4308 3.9 2.6 x3 x2 P12 ( x) x1 x 1.65 0.6 Ch P23 ( x) x3 P012 ( x) P123 ( x) P0123 ( x) x3 ng trình c vi Ch ng trình 5 3 P123 ( x) x3 x 1.4308 1.9 x1 3.9 1.4 1.7242 2 x0 x 1.5974 1.9 x3 x 3.9 0 x0 t nh sau 1.7242 1.5974 1.6592 //Noi suy Aitken #include #include #include #define . +⋅⋅⋅+++−= Theođiukinđohàm 0 a S i = ∂ ∂ tanhnđchphng trình:  ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎧ =+⋅⋅⋅++ ⋅⋅⋅ =+⋅⋅⋅++ =+⋅⋅⋅++ =+⋅⋅⋅++ =+⋅⋅⋅++ ∑∑∑∑ ∑∑∑∑ ∑∑∑∑ ∑∑∑∑ ∑∑∑ ==== − − ==== + − + ==== + − + ==== − + === − − n 1i i m i n 1i m i0 n 1i n 1i 1m2 i1m m2 im n 1i i 3 i n 1i 3 i0 n 1i n 1i 2m i1m 3m im n 1i i 2 i n 1i 2 i0 n 1i n 1i 1m i1m 2m im n 1i ii n 1i i0 n 1i n 1i m i1m 1m im n 1i i0 n 1i n 1i 1m i1m m im yxxaxaxa yxxaxaxa yxxaxaxa yxxaxaxa ynaxaxa   Đâ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 a i.Sauđâylàchng trình vittheothuttoántrên.  Chng trình 54  //Xapxidathuc #include<conio.h> #include<stdio.h> . 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 138  97143.1 04.1 6.05.1 24.0 xx xxy xxy )x(P 01 11 00 01 = − − − = − − − =. printf(Giatrihamtaix=%6.3flay=%8.4f ,x1,yd[0]);  getch(); }  Dùngchng trình nàyđnisuycáccps(1,3),(2, 5), (3,7),(4, 9)và (5,11)tix=2.5tacóy=6.  §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. 

Ngày đăng: 17/06/2015, 14:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan