- •Отчет о лабораторной работе № 5.
- •Санкт-Петербург
- •Кусочно-линейная графическая интерполяция данных f1k – исходные;fm – дополненные расчетом по формуле Лагранжа
- •Интерполяция данных обычным полиномом Lagr(zx), сплайн-интерполяцией Interp(zx), кусочно-линейной функцией Linterp(zx)
- •Результаты вычисления:
Кусочно-линейная графическая интерполяция данных f1k – исходные;fm – дополненные расчетом по формуле Лагранжа
На графике заметно различие значений функции в промежуточных точках, полученных интерполяцией обычными полиномами и интерполяцией кусочно-линейными функциями.
После подстановки исходного вектора данных: x0=-1, x1=0, x2=1 и y0=6.5, y1=4, y2=0.5 интерполяционный полином Лагранжа примет следующий вид:
Значение этого полинома при
zx = -0.5
что соответствует полученным ранее при помощи подпрограммы.
В MathCAD имеются операторы автоматической интерполяции дискретных данных: linterp и interp.
Оператор linterp(vx,vy,x) осуществляет кусочно-линейную интерполяцию векторов исходных данных vx и vy для точки x.
Применяя его для нашей задачи, получим:
Непрерывная кривая:
Оператор interp(vs,vx,vy,x) возвращает интерполированное кубическим сплайном значение функции в точке x.
Кубическая интерполяция позволяет построить кривую, проходящую через заданные точки, таким образом, чтобы первые и вторые производные были бы непрерывными во всех точках. Такая кривая может быть построена разделением промежутка интерполяции на трехточечные интервалы, внутри которых записываются полиномы третьей степени, проходящие через эти точки. Эти полиномы затем соединяются вместе и образуют общую кривую.
Вектор vs представляет собой вторые производные в заданных точках.Он возвращается оператором cspline(vx,vy). Применим оператор interp и cspline для нашей задачи в точках x=-0.5 и x=0.5.
Применение сплайн-интерполяции во всем промежутке дает кривую
Интерполяция данных обычным полиномом Lagr(zx), сплайн-интерполяцией Interp(zx), кусочно-линейной функцией Linterp(zx)
Вывод: пользуясь различными методами интерполяции, мы получили три различных набора данных, представленных в таблице:
Результаты вычисления:
x |
y |
||
Lagrang |
linterp |
interp |
|
-1 |
6.5 |
6.5 |
6.5 |
-0.5 |
5.375 |
5.25 |
5.438 |
0 |
4 |
4 |
4 |
0.5 |
2.375 |
2.25 |
2.313 |
1 |
0.5 |
0.5 |
0.5 |
Различие результатов в точках интерполяции х=-0.5 и х=0.5 достаточно велико. При х=-0.5 разброс данных составляет 50% от их среднего значения. Среднее значение получается интерполяцией по формуле Лагранжа. При х=0.5 разброс данных несколько меньше и равен 8%. В этом случае среднее значение обеспечивается интерполяцией при помощи сплайнов.
В качестве результатов расчёта выберем данные, полученные интерполяцией по формуле Лагранжа. Они обеспечивают идеальную гладкость функции в узлах интерполирования и находятся в середине области разброса данных, полученных разными методами.
х=-0.5 y=5.375; x=0.5 y=2.375
Заметим, что этот выбор не является универсальным. При невысоких требованиях к точности вместо результатов, полученных по формуле Лагранжа, можно использовать результаты, возвращаемые оператором MathCAD linterp, а в случае большого числа узлов интерполяции, когда степень интерполяционного полинома становится слишком большой и затрудняет выполнение основных расчетов, и при высоких требованиях к точности нужно пользоваться оператором Маthcad interp или другими способами осуществления сплайн-интерполяции
