Многочлен в MatLab задается вектором его коэффициентов. Например, введем многочлен
p = [1 0 3.2 -5 .2 0 0.5 1 -3]
Значение многочлена в точке
вычисляет команда polyval, например, в точке :
polyval(p, 1)
Аргумент может быть матрицей или вектором, при этом результат также будет матрицей или вектором.
2. Интерполяционный многочлен.
Пусть задана сеточная функция
x
…..
y
…...
и требуется приблизить эту сеточную функцию многочленом
,
удовлетворяющим условиям интерполяции:
.
Коэффициенты интерполяционного многочлена – решение системы линейных уравнений
.
Матрица этой системы представляет собой, так называемую матрицу Вандермонда, которая в MatLabзадается функцией vander.Неизвестные коэффициенты можно найти путем левого матричного деления «\».
Например, построим интерполяционный многочлен для заданной таблицы
0,5
1,5
1,2
и вычислим приближенное значение при .
Создадим М-файл list_12.
В результате работы программы получим графики табличной функции и интерполяционного многочлена:
и вывод в командном окне
ТАБЛИЦА
0.5 1 2 3 4
1.5 0 1 2 1.2
ИНТЕРПОЛЯЦИОННЫЙ МНОГОЧЛЕН P_4
0.21905 -2.4905 9.4667 -13.252 6.0571
ЗНАЧЕНИЕ МНОГОЧЛЕНА В ТОЧКЕ x_0 = 3.5
P_x_0 =
1.7321
3. Кусочно-многочленная интерполяция.
1) Интерполяция по соседним элементам
– способ интерполяции данных, при которой значения в каждой промежуточной точке принимается равным ближайшему значению, заданному в таблице.
2) Линейная интерполяция
– это способ, при котором соседние точки соединены отрезками прямых.
3) Интерполяция сплайнами.
Все эти способы интерполяции реализуются встроенной функцией interp1.
yi = interp1(x, y, xi, ’method’)
x – массив абсцисс табличной функции;
y – массив ординат табличной функции;
xi – промежуточные точки, в которых необходимо вычислить значения интерполирующей функции;
Параметр method может принимать одно из следующих значений:
nearest – интерполяция по соседним элементам;
liner– линейная интерполяция;
spline– интерполяция кубическим сплайном.
Выходным аргументом interp1 является вектор yi значений интерполирующей функции.
Рассмотрим таблицу из предыдущего примера и построим для неё различные интерполирующие функции. Текст программы приведем в list_13.
Графики
Вывод в командное окно
ТАБЛИЦА
0.5 1 2 3 4
1.5 0 1 2 1.2
ЗНАЧЕНИЕ ИНТЕРП. ФУНКЦИЙ В ТОЧКЕ x_0 = 3,5
Near_x_0 =
1.2
Line_x_0 =
1.6
Spline_x_0 =
1.8618
ynear_X1 = 1
4. Метод наименьших квадратов.
Пусть некоторая функция задана своими табличными значениями в п различных точках ( ).
………………..
………………..
Требуется найти многочлен степени
,
коэффициенты которого минимизируют функцию
.
Построение полинома, который приближает функцию, заданную таблицей, по методу наименьших квадратов в MatLab осуществляется при помощи polyfit:
pk = polyfit(x, y, k),
x – массив абсцисс экспериментальных точек;
y – массив ординат экспериментальных точек;
k – степень аппроксимирующего полинома.
Результатом работы функции является массив pk коэффициентов полинома. Для того чтобы вычислить значение аппроксимирующего полинома в любой точке применяют функцию
Pk = polyval(pk, t),
где t – точка (или массив точек) в которой необходимо вычислить значение многочлена.
Например, для заданной таблицы
x
y
0.5
0.5
построим многочлен третьей степени по методу наименьших квадратов. Текст программы в list_14.
Графики табличной функции и аппроксимирующего многочлена