Полином Гира (экстраполяция методом Гира) — страница 3

  • Просмотров 3055
  • Скачиваний 298
  • Размер файла 3
    Кб

значения функции в (n+1) узле для тестовой функции} PROCEDURE VIVOD2(Xpol, Ypol, eps_tek, Y: _Real; n, m: _INTEGER); VAR eps: _Real; BEGIN { Y_полином - Y_точное } eps:= Abs((Ypol - Y)/Y); { EPS_точное = ---------------------- } { Y_точное } WriteLn; WriteLn(' Значение функции в узле X(n+1)=', Xpol:Tochka , ' :'); WriteLn('Y полинома ... =', Ypol:Tochka); WriteLn('Y точное ..... =', Y:Tochka); WriteLn(' Погрешность расчета :'); WriteLn('текущая ...... =', eps_tek:Tochka); WriteLn('точная ....... =', eps:Tochka); WriteLn; WriteLn('Количество используемых узлов', m:3, ' из', n:3); END; {-----------------------------<

Конец ПП VIVOD2 >----------------------------} {основной блок программы} BEGIN ClrScr; WriteLn(' ExtraPol_GIRA 1.00 Copyright (c) 1999-00 DGur.'); WriteLn; WriteLn; {Ввод исходных данных} Write('Тестовый расчет? [Y/N]'); ReadLn(Pr); WriteLn; {Ввод значений функции в узлах} IF (UpCase(Pr) = 'Y') {обращение к ПП TABL_FUNC} THEN TABL_FUNC(Xpol, Ypol, n, H, eps_pol) {обращение к ПП VVOD_TABL} ELSE VVOD_TABL(Xpol, Ypol, n, H, eps_pol); {итерационный процесс} m:= 2; F_down:= 0; REPEAT {обращение к ПП Kff_pol} Kff_pol(Xpol, H, n, m, V); {обращение к ПФ F_pol} F_up:= F_pol(V, Ypol, n, m); {точность расчета} IF Not(F_up =

0) THEN eps_tek:= Abs((F_up - F_down)/F_up); F_down:= F_up; Inc(m); UNTIL (eps_tek < eps_pol) or (m > n); {вывод полученных результатов} IF (UpCase(Pr) = 'Y') {обращение к ПП VIVOD2} THEN VIVOD2(Xpol[n+1], F_up, eps_tek, Ypol[n+1], n, (m-1)) {обращение к ПП VIVOD1} ELSE VIVOD1(Xpol[n+1], F_up, eps_tek, n, (m-1)); ReadKey; END. {Конец основного блока}