Skip to content

Latest commit

 

History

History
89 lines (54 loc) · 5.59 KB

NM_04.md

File metadata and controls

89 lines (54 loc) · 5.59 KB

Численные методы

Лабораторная работа № 4

"Численное исследование приближения функции методом кубических сплайнов при увеличении количества отрезков разбиения"

Задание:

  1. Составить и отладить программу приближенного нахождения значения функции с использованием методом интерполяции кубическими сплайнами. Запрограммировать вычисление аппроксимирующего многочлена в произвольной точке x* отрезка [a, b].

  2. Построить графики и сравнить с графиком функции, сделать выводы, написать отчет.

UPD: Решение на Matlab

Отчет л.р. №4 Word и PDF


Трекинг и описание

2017-12-06

UPD: добавил решение лабораторной №4 (Matlab) с выводом графиков.

Задание: (метод кубических сплайнов)

В папке несколько функциональных блоков. Расчет коэффициентов интерполяционных кубических сплайнов реализован в блоке:

  • coefSpline.m - модуль, реализующий вычисление коэффициентов.

Для вычисления значений функции F(x) для узла x использовался реализованный ранее в первых трех лабораторных работах модуль f.m.

Модуль coefSpline получает на вход в качестве параметров концы отрезка [a, b] и количество подотрезков (отрезков разбиения исходного отрезка, то есть количество сплайнов), возвращая двумерный массив коэффициентов всех найденных сплайнов, в котором каждая строка – набор коэффициентов кубического сплайна.

Вызов модуля осуществляется командой:

coefSpline (a, b, N)

Модуль возвращает матрицу коэффициентов С, чтобы затем на ее основе можно было рассчитать значение интерполяционного сплайна в любой точке внутри отрезка [a, b].

Модуль coefSpline.m получает в качестве передаваемых параметров концы отрезка [a, b], количество подотрезков разбиения N и значение x, для которого надо посчитать Spline(x):

Spline_x = pointSpline (a, b, N, x) 

Построение графиков выполняют следующие модули:

  • plotSpline.m – выводит график сплайна, совмещенный с графиком функции и узловыми точками;
  • plotDeltaSpline.m – выводит совмещенные графики зависимости средней абсолютной ошибки интерполяции от количества отрезков разбиения N;
  • deltaSpline.m – вспомогательный модуль для расчета средней абсолютной ошибки интерполяции.

Вызываются эти модули следующим образом:

plotSpline(a, b, N)

plotDeltaSpline(a, b, N_start, N_end)

deltaSpline(Y1, Y2) 

где a и b - границы отрезка, N – количество отрезков разбиения, N_start, N_end – начальное и конечное значение диапазона перебора числа узловых точек.

При построении графиков равноотстоящие узлы интерполяции дополняются промежуточными точками, поскольку узловых точек недостаточно для демонстрации расхождения графиков (в узловых точках они совпадают).

В результате работы модулей сформируются новые окна с совмещенными графиками такого вида (пример):

Пример графика Пример графика

UPD: Решение на Matlab


2017-12-06

UPD: добавил отчет л.р. №4 Word и PDF