interpolacja zrobione ale...

Odpowiedz Nowy wątek
2006-11-18 19:18
bobek1221
0

Witam! mam pytanie znalazłem na stronie program do interpolcaji hermita oto on:
program Interpolacja_Hermite;
uses crt;
const max = 25;
type tablica = array[0..max] of real;
tabl_q = array[0..max,0..max] of real;
var
x,a : tablica;
fx : tablica;
ffx : tablica;
q : tabl_q;
i, j : integer;
n : integer;

function oblicz_Hermitea(xobl:real) : real;
var temp, temp2 : real;
begin
temp:= q[0,0];
for i:= 1 to 2n+1 do
begin
temp2:= 1;
for j:= 0 to i-1 do
temp2:= temp2
(xobl-a[j]);
temp:= temp + (q[i,i]* temp2);
end;
oblicz_hermitea:= temp;
end;

procedure interpol_Hermitea;
begin
for i:= 0 to n do
begin
a[2i]:= x[i];
a[2
i+1]:=x[i];
q[2i,0]:= fx[i];
q[(2
i)+1,0]:= fx[i];
q[(2i)+1,1]:= ffx[i];
if i <> 0 then
if a[2
i]-a[2i-1] = 0 then q[2i,1]:= ffx[2i] else
q[(2
i),1]:= ( q[(2i),0]-q[(2i)-1,0] )/(a[2i]-a[(2i)-1]);
end;
for i:= 2 to (2n)+1 do
begin
for j:= 2 to i do
begin
if a[i]-a[i-j] = 0 then q[i,j]:= ffx[i] else
q[i,j]:= ( q[i,j-1] -q[i-1,j-1])/(a[i]-a[i-j]);
end;
end;
for i:= 0 to 2
n+1 do write('H',i,'= ',q[i,i]:9:7,' ');
end;

var k, obl:real;
begin
clrscr;
n:= 1;
x[0]:= 0; fx[0]:= 0; ffx[0]:= 1;
x[1]:= 1; fx[1]:= 3; ffx[1]:= 6;
{ x[0]:= 1.3; fx[0]:= 0.6200860; ffx[0]:= -0.5220232;
x[1]:= 1.6; fx[1]:= 0.4554022; ffx[1]:= -0.5698959;
x[2]:= 1.9; fx[2]:= 0.2818186; ffx[2]:= -0.5811571;
} interpol_Hermitea;
writeln;
write('podaj x: '); readln(obl);
k:=oblicz_hermitea(obl);
write('wartosc wielomianu Hermite''a dla zadanego x= ',obl:7:4,' wynosi: ',k:7:4);
readln;
end.



i teraz pytanie:  potrzebuje wynik postaci:

(t)=a(0)<sup>n+a(1)t</sup>n-1+...+a(n-1)t+a(n).

wszystko co potrzebne do wstawienia jest w programie tylko nie wiem jak to wyciągnąć...  czy da rade to przekształcić? tzn dodac nową opcje wyswietlania gdyz pełny wynik taki jak jest generowany przez ten program zostanie naniesiony na wykres...

Pozostało 580 znaków

2008-11-12 18:59
wzwdwfe
0

Program liczy źle! Tzn. coś liczy ale na pewno nie funkcję interpolacyjną obliczoną metodą Hermita.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0