Papiq20 Napisano Marzec 1, 2010 Zgłoś Share Napisano Marzec 1, 2010 program lagrang; uses crt; const nmax=100; var x,f:array[0..nmax] of real; i,j,n :integer; fi,fx,a:double;//real; begin clrscr; Write('Podaj ilosc wezlow n= '); ReadLn(n); if n<=0 then halt; if n>nmax then halt; for i:=1 to n do begin Write('Podaj x= '); ReadLn(x); Write('Podaj f(',x:6:2,'):'); ReadLn(f); end; Write('Oblicz interpolacje w punkcie '); ReadLn(a); fx:=0; for i:=0 to n do begin fi:=1; for j:=0 to n do if j<>i then fi:=fi*(a-x[j])/(x-x[j]); fx:=fx+f*fi; end; WriteLn('Interpolacja obliczona metoda Lagrange = ',fx:6:2); for j:=1 to n do for i:=n downto j do f:=(f-f[i-1])/(x-x[i-j]); fx:=f[0]; fi:=1; for i:=1 to n do begin fi:=fi*(a-x[i-1]); fx:=fx+fi*f; end; WriteLn('Interpolacja obliczona metoda Newton = ',fx:6:2); readkey(); end. program dziala ale po wprowadzeniu wezlow na przyklad x=1 F(x)=1 x=2 F(x)=4 x=0 F(x)=0 i po wprowadzeniu przykladowego punktu na przyklad 0.5 program sie wywala i wyskakuje blad natomiast gdy wprowadzimy inne punkty x=1 F(x)=1 x=2 F(x)=4 x= inne niz zero na przyklad 3 i F(x)= inne niz zero byle kwadrat z tej liczby na przyklad 9 program dziala dobrze i oblicza poprawna wartosc interpolacji Link do komentarza Udostępnij na innych stronach More sharing options...
KaYou Napisano Marzec 1, 2010 Zgłoś Share Napisano Marzec 1, 2010 bez nie czytam "(2b || !(2b)) == question" W. Shakespeare http://jakubniwa.pl - świat sztucznej inteligencji Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.