Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие (MathCad).doc
Скачиваний:
95
Добавлен:
27.11.2019
Размер:
3.98 Mб
Скачать

2.8.2. Интерполяция и аппроксимация по общей формуле Лагранжа

Рассмотрим реализацию интерполяции (аппроксимации) по общей формуле Лагранжа в системе Mathcad.

Пример 2.37. Подготовить документ для осуществления интерполяции с применением общей формулы интерполяции Лагранжа (рис. 2.9).

Приведенная в нем формула Лагранжа синтезирует специальный полином, используя два вектора xi и yi узловых точек. При интерполяции полиномом Лагранжа степень полинома n на 1 меньше числа узловых точек, которые могут располагаться как равномерно по оси x, так и неравномерно. В явном виде представлять полином не требуется.

Построенный по данным интерполяции график функции с нанесенными на него узловыми точками - квадратиками приведен на рис. 2.9. Нетрудно заметить, что график интерполяционного полинома и впрямь точно проходит через узловые точки. Возможна экстраполяция данных.

2.8.3. Полиномиальная интерполяция и аппроксимация

Теперь рассмотрим классическую полиномиальную интерполяцию, аппроксимацию и (возможно) экстраполяцию.

Пример 2.38. Составить документ Mathcad для осуществления полиномиальной аппроксимации зависимости с узловыми точками

Р ис. 2.9. Интерполяция по общей формуле Лагранжа

Рис. 2.10. Полиномиальная аппроксимация

yi(xi), представленными векторами x и y. Соответствующий документ показан на рис. 2.10.Коэффициенты полинома найдены из решения системы линейных относительно коэффициентов ai. График представляет исходные точки и аппроксимирующий полином P(x). Наряду с интерполяцией возможна экстраполяция данных.

2.8.4. Кусочно-линейная и сплайновая аппроксимации в Mathcad

Mathcad имеет средства аппроксимации двумя важными типами аппроксимирующих функций: кусочно-линейной и сплайновой. При кусочно-линейной интерполяции вычисления дополнительных точек выполняются по линейной зависимости. Для этого используется функция linterp(VX, VY, x). Для заданных векторов VX и VY узловых точек и заданного аргумента x эта функция возвращает значение функции при ее линейной аппроксимации.

При небольшом числе узловых точек (до 10) линейная интерполяция оказывается довольно грубой. При ней даже первая производная функции аппроксимации испытывает резкие скачки в узловых точках. Для целей экстраполяции функция linterp не предназначена и за пределами области определения может вести себя непредсказуемо.

Гораздо лучшие результаты дает сплайн-аппроксимация. Для ее осуществления Mathcad предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн- функций при различных видах продолжения (экстраполяции):

  • cspline(VX, VY) - возвращает вектор VS вторых производных с продолжением по кубическому полиному;

  • pspline(VX, VY) - возвращает вектор VS вторых производных с продолжением по параболической кривой;

  • lspline(VX, VY) - возвращает вектор VS вторых производных с линейным продолжением.

Наконец, четвертая функция interp(VS, VX, VY, x)

возвращает значение y(x) для заданных векторов VS, VX, VY и заданного значения x.

Таким образом, сплайн-аппроксимация проводится в два этапа. На первом с помощью функций cspline, pspline или lspline отыскивается вектор вторых производных функции y(x), заданной векторами VX и VY ее значений (абсцисс и ординат). Затем, на втором этапе для каждой искомой точки вычисляется значение y(x) с помощью функции interp.

Пример 2.39. Сравнить кусочно-линейную и сплайновую аппроксимации для функции, представленной набором из небольшого числа узловых точек. Решение представлено на рис. 2.11.

Рис. 2.11. Линейная и сплайновая аппроксимации функции

Нетрудно заметить, что график при линейной аппроксимации оказывается слишком грубым - отчетливо видны точки излома. В то же время сплайн-аппроксимация, несмотря на малое число точек в этом примере (их всего 6) и их неравномерное расположение, дает заметно лучшие результаты: график функции оказывается плавным и точки излома отсутствуют. Однако иногда выгиб кривой аппроксимации (например, в центре правого рисунка) может оказаться чрезмерно большим.

Сплайновая аппроксимация может использоваться для экстраполяции с тремя видами продолжения функций - линейным, параболическим и кубическим. В Mathcad введена и функция аппроксимации B-сплайнами bspline(VX,VY,VU,n), где VU - вектор координат точек сшивки, n=1, 2 или 3 - степень полиномов. Размер вектора VU на (n-1) меньше размера векторов x и y. B-сплайновая аппроксимация имеет кубическое продолжение и позволяет задавать сшивку сплайн-функций в точках, отличных от узловых.