Показать сообщение отдельно
  #5  
Старый 23.06.2011, 23:39
hatabi4 hatabi4 вне форума
Прохожий
 
Регистрация: 22.06.2011
Сообщения: 3
Репутация: 10
По умолчанию

я там опечатался, я его переделал немного))

сделал вот так, теперь деление на 0 во втором цикле по I, причем сразу. что я делаю не так с ним??
Код:
Function Newton(n: integer; d:real; x,y :array of real):real;
var
  l,l2:real;
  j,i,k,u:integer;
  p,p2: real;
  y1,y2: array [0..2] of real;
begin
L:=fx[1];
P:=1;
p2:=1;
  for j:=1 to n do
    begin
        p:=p*(D-X[j-1]);
        p2:=p2*(D-x[j-1])*(D-x[j]);
          for i:=0 to (n-j) do
              begin
                Y1[i]:=(y[i+1]-y[i])/(x[i+j]-x[i]);
              end;
          for I := 1 to (n-j) do
            begin
              y2[i]:=(((y[i+2]-y[i+1])/(x[i+j]-x[i]))-(y[i+1]-y[i])/(x[i+j]-x[i]))/(x[i+2]-x[i]);
            end;
        l:=l+p*y1[i]+p2*y2[i];
    end;
  Newton:=l;
end;
Ответить с цитированием