Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Интерполяционный полином Лагранжа
Лагранж предложил следующую форму записи интерполяционного полинома: (15) В случае n=1 интерполяционная формула Лагранжа дает уравнение прямой, проходящей через две заданные точки: (16) Старшая степень аргумента x в полиноме Лагранжа равна n, так как каждое произведение в формуле содержит n сомножителей x – x j. В узлах x=x iвыполняются условия P n (x i )=f(x i ), потому что в сумме (15) остается по одному слагаемому f i, остальные обращаются в нуль за счет нулевых сомножителей в произведениях. В отличие от канонического интерполяционного полинома для вычисления значений полинома Лагранжа не требуется предварительного определения коэффициентов полинома путем решения системы уравнений. Однако, для каждого значения аргумента x полином Лагранжа приходится пересчитывать вновь. Поэтому полином Лагранжа применяется в тех случаях, когда интерполяционная функция вычисляется в сравнительно небольшом количестве точек x. Ниже приведена программа для вычисления интерполяционного полинома Лагранжа. В строках 20-40 программы вводятся парные значения аргумента x и функции y для (N+1) узлов. В строке 50 задается значение аргумента x, для которого в строках 60-120 производится вычисление полинома Лагранжа. Для контроля и отладки программы она использована для вычисления приближенного значения функции ошибок erf(x). При запуске программы введены 6 парных табличных значений функции. Затем для аргумента x=1.175 рассчитан полином Лагранжа, определяющий приближенное значение функции ошибок, erf( 1.175 ) @ P n ( 1.175 ) = 0.90342. Табличное значение функции равно erf( 1.175 ) = 0.90343. Программа интерполяции полиномом Лагранжа: 10 PRINT " Интерполяция полиномом Лагранжа для N+1 узлов" 20 INPUT " Введите N="; N: DIM A(N), B(N) 30 PRINT " Введите значения X(I) и Y(I), I=0, 1, 2...N." 40 FOR I=0 TO N: PRINT " X" I; ", Y" I;: INPUT A(I), B(I): NEXT I 50 PRINT: INPUT " Введите X="; X: S=0 60 IF X=A(0) THEN PRINT " Y(X)=" B(0): GOTO 50 70 FOR J=1 TO N: C=1: FOR I=1 TO N 80 D=A(J)-A(I): IF I=J THEN D=X-A(J) 90 IF D=0 THEN PRINT " Y(X)=" B(I): GOTO 50 100 C=C*(X-A(I))/D: NEXT I 110 S=S+C*B(J): NEXT J 120 PRINT " Y(X)=" S: GOTO 50 130 END Расчет на ЭВМ: Интерполяция полиномом Лагранжа для N+1 узлов. Введите N=? 5 Введите значения X(I) и Y(I), I=0, 1, 2...N. X 0, Y 0? 1.00, 0.84270 X 1, Y 1? 1.05, 0.86244 X 2, Y 2? 1.10, 0.88021 X 3, Y 3? 1.15, 0.89612 X 4, Y 4? 1.20, 0.91031 X 5, Y 5? 1.25, 0.92290 Введите X=? 1.175 Y(X)= 0.90342 Введите X=?
|