Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Обьясните код (http://www.tehnari.ru/f43/t92760/)

марианна 01.12.2013 17:48

Обьясните код
 
Код:

program Lagrange;
 uses Crt;
 var X, Y : array[1..100] of Real;
 Arg, L, F : Real; I, J, N :Integer;
 begin
 Write('Ââåäèòå êîëè÷åñòâî óçëîâ èíòåðïîëÿöèè');
 Readln(n);
 WriteLn('Ââåäèòå òàáëèöó çíà÷åíèé xi, yi');
 for I:=1 to N do begin
 Write('X[',I,']=');
 ReadLn(X[I]);
 Write('Y[',I,']=');
 ReadLn(Y[I]);
 end;
 Write('Ââåäèòå àðãóìåíò ');
 ReadLn(Arg);
 L:=0;
 For I:=0 to N do
 begin
 F:=0;
 for J:=0 to N do
 if I<>J then F:=F*(Arg-X[J])/(X[I]-X[J]);
 F:=F*Y[I]; L:=L+F;
 end;
 WriteLn('Çíà÷åíèå ìíîãî÷ëåíà Ëàãðàíæà â òî÷êå ',Arg:0:3);
 WriteLn('ðàâíî ', L:0:3); ReadLn;
 end.


Gruvi 01.12.2013 18:32

Очень похоже на диф.ур. лагранжа или многочлен того же лагранжа ...

Vladimir_S 01.12.2013 19:03

Цитата:

Сообщение от Gruvi (Сообщение 975720)
Очень похоже на диф.ур. лагранжа или многочлен того же лагранжа ...

Многочлен. Но программа написана неверно и работать не будет. Обратите внимание на индексацию массивов X и Y - она начинается с 1. Между тем в цикле вычисления полиномов фигурирует X[I] и X[J], причем как I, так и J стартуют с 0. Неизбежна ошибка.
Ладно, попробую что-нибудь в соседней теме изобразить.


Часовой пояс GMT +4, время: 08:15.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.