Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Вычисление производной на основе интерполяционного многочлена Лагранжа
Вычисление производной на основе интерполяционного многочлена Лагранжа применяется, когда аналитическое выражение функции y=f(x) не известно, а функция y=f(x) задана таблично. Пусть функция y=f(x) определена на отрезке и в точках { xi } (i=0, 1, 2, …, n) этого отрезка принимает значения yi=f(xi). Разность между соседними значениями аргумента xi постоянна и является шагом h=xi – xi-1 (i=1, …, n) разбиения отрезка на n частей, прием a=x0 и b=xn. Найдем аппроксимации производной первого порядка с помощью значений функций yi в узловых точках xi. Для того чтобы выразить значения производной через значения функции yi в узлах интерполяции xi, построим интерполяционный многочлен Лагранжа Lm(x) степени m, удовлетворяющий условиям Lm(x)= f(xk)= yk (k=i, i+1, …, i+m), i+m£ n Многочлен Лагранжа Lm(x) интерполирует функцию f(x) на отрезке [ xi, xi+m ]. Дифференцируя многочлен Lm(x), получаем значения производной в точках { xi } (k=i, i+1, …, i+m). Если m=2, то график интерполяционного многочлена Лагранжа L2(x) – парабола, проходящая через три точки (xi, yi), (xi+1, yi+1) и (xi+2, yi+2). Вычислим первую производную многочлена L2(x) на отрезке [ xi, xi+2 ]: Производная многочлена L2(x) в точках xi, xi+1, xi+2 является приближением производной функции f(x) в этих точках: (1) Погрешности при вычислении производных в точках xi, xi+1, xi+2 определяются следующим образом: (2) Формулы (2) показывают, что погрешности аппроксимации первой производной с помощью формул (1) имеют один и тот же порядок O(h2), таким образом, можно вычислять производную на отрезке [a, b] в точках { xi } (i=0, 1, 2, …, n) при n³ 2 по формулам: (3) Полагаем, что значения производных и в точках х, близких к точкам xi, равны соответствующим значениям и . Будем считать точку близкой к xi, если она принадлежит промежутку . Точки х, близкие к точкам xi, имеют одно и то же значение параметра В зависимости от i при n³ 3 используем одну из формул (5). Программа вычисления производной первого порядка на основе интерполяционного многочлена Лагранжа: program deriveFunction1order; const p=15; type vector = array [0..p] of real; var i, n: integer; a, b, h, x, y1: real; y: vector; BEGIN repeat writeln('Введите n - число разбиений отрезка [a, b]'); readln(n); until (n> =3) and (n< =15); writeln('Введите координаты концов отрезка [a, b]'); readln(a, b); writeln('Введите значения функции y[i] в узлах, '); writeln('причем y0=f(a), yn=f(b)'); for i: =0 to n do readln(y[i]); writeln('Введите x'); readln(x); h: =(b-a)/n; i: =trunc((x-a)/h+h/2); if i=0 then y1: =(-3*y[0]+4*y[1]-y[2])/(2*h); if (i> 0) and (i< n) then y1: =(-y[i-1]+y[i+1])/(2*h); if i=n then y1: =(y[n-2]-4*y[n-1]+3*y[n])/(2*h); writeln('x=', x: 6: 3, 'производная 1 порядка=', y1: 10: 6); readln END.
|