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

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

{****************************************************************************} { } { Вариант №1.23 Экстраполяция методом Гира гр. ##-### Ф.И.О. } { } { P^2 P = 50-200 [Ом], } { f(w) = ----- * ( 1 + Q^2 * (2*dw/wp))^(-1/2), Rn= 0.1-5 [Ом], } { Rn Q = 50-1000, } { wp- частота резонанса, } { dw- шаг, } { } {****************************************************************************} { Аппроксимация Аппроксимацией называется замена одних математических объектов (чисел, функций) другими, более простыми в том или ином смысле и близкими к исходным. При решении задачи

аппроксимации предполагается, что известны значнения аппроксимируемой функции f(x) (снятые эксперементально или расчитанные по формуле) в узловых точках (обычно их называют узлами интерполяции) X1, X2, ..., Xn. Необходимо найти функцию P(x), с помощью которой можно было бы определить значения исходной функции для других (отличных от узлов) значений аргумента x с некоторой достаточно малой погрешностью. Различают две задачи

аппроксимации: интерполяцию и экстраполяцию. Интерполяция - это отыскание промежуточных значений функции внутри заданного интервала [X1, Xк] для значений x не совпадающих с узловыми точками. Экстраполяция - это распространение выводов, полученных из наблюдения над одной частью явления на другую ее часть, то есть это определение значений функции вне заданного интервала [Xн, Xк]. } PROGRAM GIR; {$N-} USES Crt; CONST Max_kol = 25; {Максимальное количество

узлов} Tochka = 10; {Количество знаков после запятой} TYPE _Real = Real; _INTEGER = Byte; _Mas = array [1..Max_kol] of _Real; VAR H, F_up, F_down, eps_pol, eps_tek : _Real; Xpol, Ypol, V : _Mas; n, m : _INTEGER; {n-количество узлов} Pr : Char; {переключатель} {----------------------------------------------------------------------------} {Расчет табличных данных для заданной функции} PROCEDURE TABL_FUNC(Var Xpol, Ypol: _Mas; Var n: _INTEGER; Var dw, eps_pol: _Real); VAR P, Rn, Q, wp, wn : _Real; I : _INTEGER; {счетчик} BEGIN Write('Сопротивление P ............. = '); ReadLn(P); Write('Сопротивление нагрузки Rn ... = '); ReadLn(Rn);

Write('Параметр Q .................. = '); ReadLn(Q); Write('Начальна частота wp ......... = '); ReadLn(wn); Write('Шаг изменения частота dw .... = '); ReadLn(dw); Write('Количество узлов (< ', Max_kol:2, ') ..... = '); ReadLn(n); Write('Точность eps_pol ............ = '); ReadLn(eps_pol); WriteLn; {расчет функции в узлах} wp:= wn; FOR I:= 1 TO (n+1) DO begin Xpol[I]:= wp; Ypol[I]:= Sqr(P) / (Rn * Sqrt(1 + Sqr(Q) * Sqr(2*dw/wp))); wp:= wp + dw; end; END; {--------------------------< Конец ПП TABL_FUNC >----------------------------} {Ввод значений аппроксимируемой функции} PROCEDURE VVOD_TABL(Var Xpol, Ypol: _Mas; Var n: _INTEGER; Var dw, eps_pol: