User Tools

Site Tools


Sidebar






Old

courses:computational_mathematics:prac4

This is an old revision of the document!


Практическая работа №4: Интерполирование функций

Цель работы

Научиться применять интерполирование функции для решения практических задач, овладеть навыками применения интерполяционных формул Лагранжа заданной степени, многочленов Ньютона. Научиться оценивать погрешности интерполяционных формул и работать в программных пакетах с целью проверки полученных результатов.

Основные теоретические положения

Пусть значение $ f(x) $ известно в некоторых точках $ X = \{x_j\}_{j=0}^n $, и необходимо найти $ f(x_i) $: $ x_i \notin X $. Для этих целей, функцию $ f(x) $ приближают функцией $ L_n(x) $: \[ L_n(x) = \sum_{k=0}^na_k\varphi_k, \] где $ \varphi $ – произвольный базис, удобный для данной $ f(x) $. Задача интерполяции – найти обобщённый многочлен. Существует несколько способов нахождения, например, метод Лагранжа. Он даёт готовый интерполяционный многочлен Лагранжа: \[ L_n(x) = \sum_{i=0}^nf_i\ell_i(x), \] где $ f_i = f(x_i) $ – значение функции в узле $ x_i $, а \[ \ell_i(x) = \prod_{\substack{k=0 \\ k \ne i}}^n\frac{x - x_k}{x_i - x_k} \] – $ i $-ый базисный полином.

Если узлы, в которых определено значение $ f(x_i) $ являются равноотстоящими, т.е. $ x_i = x_0 + ih $, $ x_0 < x_1 < \dots < x_n $, $ i = 1..n $, тогда можно воспользоваться интерполяционным многочленом Ньютона: \[ N_n(x) = \sum_{k=0}^{n}\frac{\Delta^kf_0}{k!}\prod_{j=0}^{k}(q - j + 1), \] где $ \Delta^kf $ – конечная разность $ k $-го порядка, $ q = (x - x_0)/h $.

Многочлен Чебышёва первого рода $ T_n(x) $ характеризуется как многочлен степени $ n $ со старшим коэффициентом $ 2^{n-1} $, который меньше всего отклоняется от нуля на отрезке $ [-1, 1] $ \[ T_n(x) = \cos(n\arccos x). \] Для натурального $ n $ узлы на промежутке $ x \in [-1, 1] $ задаются формулой: \[ x_k = \cos\left(\pi\frac{2k-1}{2n}\right),\,k = 1..n. \] Это корни многочлена Чебышёва первого рода степени $ n $.

Для получения узлов на произвольном отрезке $ [a, b] $, можно применить следующую формулу: \[ x_k = \frac{a + b}2 + \frac{b - a}2\cos\left(\pi\frac{2k-1}{2n}\right),\,k = 1..n. \] После нахождения интерполяционного многочлена, необходимо вычислить и оценить его погрешность. Должно выполнятся следующее неравенство: \[ \max\limits_{x \in [a, b]}|R_n(x)| \leqslant \frac{M_{n+1}}{(n+1)!}\max\limits_{x \in [a, b]}|\omega_n(x)| = Q_n, \] где $ [a, b] $ – промежуток интерполирования, $ R_n(x) = f(x) - L_n(x) $, $ M_{n+1} = \max\limits_{\eta \in [a, b]}|f^{(n+1)}(\eta)| $, $ \omega_n(x) = \prod\limits_{j=0}^n(x - x_j) $. Левая часть неравенства является практической погрешностью, а правая – теоретической.

Постановка задачи

Построить интерполяционный многочлен по 2, 3, 4, 5 и 6 узлам (равноотстоящим и чебышёвским) для функции $ f(x) = \cfrac A{x^2 + px + q} $ на промежутке $ [a, b] $ по равноотстоящим и по чебышёвским узлам. Найти фактическую погрешность и сравнить её с теоретической оценкой.

Порядок выполнения работы

  1. Реализовать функцию f() для вычисления значений в функции $ f(x) $.
  2. Реализовать функцию df(), вычисляющая $ n $-ую производную функции $ f(x) $. Данную функцию можно реализовать с помощью switch, предварительно посчитав производные в символьном виде, например, в Wolfram.
  3. Реализовать функцию, вычисляющую интерполяционный многочлен по методу Лагранжа lagrange() (для нечётных вариантов) или Ньютона newti() (для чётных вариантов).
  4. Построить график полученного интерполяционного многочлена $ n $-го порядка по равномерной сетке и функции $ f(x) $ в одном окне. Отметить на графике узлы интерполяции. Выписать полученный интерполяционный многочлен с точностью коэффициентов до 7 знаков после запятой.
  5. Аналогично выполнить построение для чебышёвской сетки.
  6. Заполнить таблицу для каждой сетки и сделать выводы:
Значение $ n $ 1 2 3 4 5
Значение $ M_{n+1} $
Значение $ \max|\omega_n(x)| $
Значение $ (n + 1)! $
Значение $ Q_n $
Значение $ \max|R_n(x)| $

Варианты заданий

Выполнение работ осуществляется по индивидуальным вариантам заданий (коэффициентам функции). Номер варианта для каждого студента определяется преподавателем.

task4-vars

Содержание отчёта

  • Цель работы.
  • Краткое изложение основных теоретических понятий.
  • Постановка задачи с кратким описанием порядка выполнения работы.
  • Графики интерполяционных многочленов и их вид.
  • Таблицы для оценки погрешности.
  • Общий вывод по проделанной работе.
  • Код программы.
courses/computational_mathematics/prac4.1625774692.txt.gz · Last modified: 2022/12/10 09:08 (external edit)