Полиномиальная аппроксимация
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Аппроксимацией заданной функции называется её приближённое представление функцией некоторого типового вида. При этом заданная каким-либо образом функция называется аппроксимируемой, а типовая функция называется аппроксимирующей. Параметры аппроксимирующей функции подбираются так, чтобы норма ошибки аппроксимации была минимальной. Если аппроксимируемая функция задана таблично, то минимизируется норма ошибки аппроксимации в узлах сетки. Если минимизируется L2-норма ошибки, то говорят, что аппроксимация производится по методу наименьших квадратов. Если аппроксимирующей функцией является многочлен, то такую аппроксимацию называют полиномиальной.

Пусть известны значения некоторой функции f в n+1 различных точках x1, x2, … xn, xn+1, заданных одномерным массивом и записанных в массиве в порядке возрастания. Соответствующие значения функции f заданы одномерным массивом той же длины.

Сначала рассмотрим задачу аппроксимации таблично заданной функции полиномом нулевого порядка P0(x) = a0. Параметр a0 определим методом наименьших квадратов.

.

Таким образом, задача аппроксимации таблично заданной функции полиномом нулевого порядка сводится к определению среднего арифметического значения функции в узлах.

Теперь в качестве аппроксимирующей функции выберем многочлен первого порядка (линейную функцию)   P1(x) = a0 + a1×x.  Параметры a0 , a1 определим методом наименьших квадратов.

.

Обобщим полученный результат на случай, когда в качестве аппроксимирующей функции используется многочлен Pm(x) = a0 + a1×x + a2×x2 + …+ am×xm.  Коэффициенты аппроксимирующего полинома определяются из решения матричного уравнения

,                                                     (32)

где [K] – квадратная матрица коэффициентов размера (m+1, m+1), [a] – матрица-столбец искомых коэффициентов аппроксимирующего полинома Pm(x) в порядке возрастания степеней x; [F] – матрица-столбец правой части.

,    .

Матричное уравнение (32) называют уравнением регрессии. Методы аппроксимации, основанные на составлении и решении этого уравнения, называются регрессионными.

Метод полиномиальной аппроксимации, основанный на уравнении (32), реализуем в виде функции MATLAB.

 

% polyapprox1 - вычисление коэффициентов полиномиальной аппроксимации

% таблично заданной функции

% a=polyapprox1(x,y,m)

% Входные параметры:

% x - массив значений аргумента таблично заданной функции;

% y - массив значений функции на сетке x;

% m - порядок аппроксимирующего полинома.

% Выходной параметр:

% a - матрица-столбец коэффициентов полинома в порядке возрастания

% степеней x.

function a=polyapprox1(x,y,m)

F=zeros(m+1,1);

K=zeros(m+1,m+1);

for jj=1:m+1

F(jj)=sum(x.^(jj-1).*y);

for k=1:m+1

   K(jj,k)=sum(x.^(jj+k-2));

end

end

a=K\F;

 

Для проверки выполним следующую последовательность операторов MATLAB:

 

x=sort(rand(1,8));

y=rand(1,8)

plot(x,y)

a=polyapprox1(x,y,7);

y1=polyval(fliplr(a.'),x)

xi=linspace(x(1),x(end),2001);

yi=polyval(fliplr(a.'),xi);

hold on

plot(xi,yi)

a3=polyapprox1(x,y,3);

y3=polyval(fliplr(a3.'),xi);

plot(xi,y3)

Дата: 2019-02-25, просмотров: 240.