Аппроксимация функций
Для того, чтобы выполнить квадратичную сплайн-интерполяцию по 6-ти узлам, необходимо задаться пятью уравнениями. Рис. 5. К выводу коэффициентов при сплайн-интерполяции При квадратичном сплайне уравнения будут иметь вид: Рис. 3. Интерполяция многочленом Ньютона вперёд б) Формула Ньютона для интерполяции назад: Задание 3. Найти значение f (x) с помощью формул Ньютона интерполирования вперед и назад. Читать ещё >
Аппроксимация функций (реферат, курсовая, диплом, контрольная)
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ РОССИЙСКОЙ ФЕДЕРАЦИИ ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра «Авиаи ракетостроение»
Специальность 160 801- «Ракетостроение»
Расчетно-графическая работа по дисциплине «Основы САПР»
Аппроксимация функций Омск 2006
Цель работы: Ознакомиться с методами интерполяции и аппроксимации функций
Задания:
Задание 1. Построить таблицу конечных разностей. Выполнить экстраполяцию на два узла от начала и от конца таблицы.
Задание 2. Построить интерполяционный многочлен Лагранжа и с его помощью найти значения функции в узлах, соответствующих полушагу таблицы.
Задание 3. Найти значение f (x) с помощью формул Ньютона интерполирования вперед и назад.
Задание 4. Выполнить квадратичную сплайн-интерполяцию (по 6 узлам). Проконтролировать полученные оценки для промежуточных узлов.
Задание 5. Считая выбранную таблицу заданной для диапазона от 0 до 2?, выполнить среднеквадратическую аппроксимацию тригонометрическим многочленом (отрезком ряда Фурье) третьей степени.
Исходные данные:
x=[11.0 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12];
y=[-0.23,1.80 087,2.64 282,2.854 531,3.37 121,3.560 925,3.402 017,2.90 698,2.121 544,1.120 452,0.357];
1. Построение массива конечных разностей. Выполнение экстраполяции
Массив конечных разностей рассчитываем по формуле:
.
for i=1:10
for j=1:11-i
y (i+1,j)=y (i, j+1)-y (i, j);
end
end
Результат расчёта:
11,0 11,1 11,2 11,3 11,4 11,5 11,6 11,7 11,8 11,9 11,0 | — 0,0002 1,0801 2,0643 2.8545 3.3712 3.5609 3.4020 2.9070 2.1215 1.1205 0.0004 | 1.0803 0.9842 0.7902 0.5167 0.1897 -0.1589 -0.4950 -0.7854 -1.0011 -1.1201 ; | — 0.0961 -0.1939 -0.2736 -0.3270 -0.3486 -0.3361 -0.2904 -0.2157 -0.1190 ; ; | — 0.0978 -0.0796 -0.0534 -0.0217 0.0125 0.0457 0.0747 0.0967 ; ; ; | 0.0182 0.0262 0.0317 0.0342 0.0332 0.0290 0.0219 ; ; ; ; | 0.0080 0.0055 0.0024 -0.0009 -0.0042 -0.0071 ; ; ; ; ; | — 0.0025 -0.0031 -0.0033 -0.0033 -0.0029 ; ; ; ; ; ; | — 0.0006 -0.0002 0.0000 0.0004 ; ; ; ; ; ; ; | 0.0003 0.0003 0.0004 ; ; ; ; ; ; ; ; | — 0.0000 0.0001 ; ; ; ; ; ; ; ; ; | 0.0002 ; ; ; ; ; ; ; ; ; ; | |
Экстраполяция на два узла от начала и конца таблицы с помощью многочлена Лагранжа.
n=11; % Степень многочлена
i=0;
for p=10.8:0.1:12.2
i=i+1;
x1(i)=p;
ff (i)=Lagrange (x, y, p, n);
end
for j=1:11
yy (j)=y (1,j);
end
subplot (2,1,1); plot (x, yy,'.-'); ylabel ('y'); xlabel ('x'); grid on; title ('Первоначальные данные')
subplot (2,1,2); plot (x1,ff,'.-'); ylabel ('y'); xlabel ('x'); grid on; title ('Экстраполяция')
Получим:
х | 10.8 | 10.9 | 12.1 | 12.2 | |
f (х) | — 2,0234 | — 1,0701 | — 1,1291 | — 2,1535 | |
Рис. 1. Экстраполяция на два узла многочленом Лагранжа
2. Нахождение значения приближенной функции с помощью многочлена Лагранжа
Запишем интерполяционный многочлен Лагранжа:
где х — произвольная координата на заданном интервале.
_____________________________________________________________
function [x]=Lagrange (x, y, a, n)
for i=1:n
for j=1:n
s (i, j)=1;
end
end
ss=1;
for j=1:n
for i=1:n
if j≅i
s (j, i)=(a-x (i))/(x (j)-x (i));
end
end
end
ss=prod (s, 2);
L=0;
for k=1:n
L=L+y (1,k)*ss (k);
end
x=L;
_____________________________________________________________
i=0;
for p=11:0.01:12
i=i+1;
x1(i)=p;
ff (i)=Lagrange (x, y, x1(i), n);
end
subplot (2,1,2); plot (x1,ff,'.-'); ylabel ('y'); xlabel ('x'); grid on; title ('Интерполяция многочленом Лагранжа')
Рис. 2. Интерполяция многочленом Лагранжа
3. Определение значения функции с помощью формул Ньютона
а) Интерполяционная формула Ньютона для интерполирования вперёд:
где — промежуток между последовательными узлами интерполирования, (в рассматриваемом случае промежуток постоянен);
n — степень многочлена;
.
_____________________________________________________________
function [x]=Nuton_vp (k, x, y, n);
n=round (k)+1; % Степень многочлена
if n==12
n=11;
end
t=(k-1)/1;
t1(1)=1;
for j=2:n
t1(j)=t-(j-2);
end
t2=cumprod (t1);
for j=1:n
Pn (j)=y (j, 1)*t2(j)/FACTORIAL (j-1);
end
x=sum (Pn, 2);
_____________________________________________________________
n=11;
i=0;
for p=11:0.05:12
i=i+1;
a=0.5+i*0.5;
x1(i)=p;
ff (i)=Nuton_vp (a, x, y, n);
end
% Построение графика
subplot (2,1,2); plot (x1,ff,'.-'); ylabel ('y'); xlabel ('x'); grid on
title ('Интерполяция многочленом Ньютона вперёд')
Рис. 3. Интерполяция многочленом Ньютона вперёд б) Формула Ньютона для интерполяции назад:
_____________________________________________________________
function [x]=Pnz (k, x, y);
n=12-round (k)+1; % Степень многочлена
if n==12
n=11;
end
t=(k-11)/1;
t1(1)=1;
for i=2:n
t1(i)=t+(i-2);
end
t2=cumprod (t1);
for i=1:n
Pn (i)=y (i, 12-i)*t2(i)/FACTORIAL (i-1);
end
x=sum (Pn, 2);
_____________________________________________________________
i=0;
for p=11:0.05:12
i=i+1;
a=0.5+i*0.5;
x1(i)=p;
ff (i)=Nuton_nz (a, x, y);
end
% Построение графика
subplot (2,1,2); plot (x1,ff,'.-'); ylabel ('y'); xlabel ('x'); grid on
title ('Интерполяция многочленом Ньютона назад')
Рис. 4. Интерполяция многочленом Ньютона назад
4. Квадратичная сплайн-интерполяция
Для того, чтобы выполнить квадратичную сплайн-интерполяцию по 6-ти узлам, необходимо задаться пятью уравнениями.
Рис. 5. К выводу коэффициентов при сплайн-интерполяции При квадратичном сплайне уравнения будут иметь вид:
.
На эти уравнения наложены следующие граничные условия:
, , .
Вычислим производную
:,. (1)
Определим при: ,. (2)
В рассматриваемом примере. С учетом этого, а также с учетом выражения (2) и условия, запишем следующую зависимость:
.
Из условия и выражения (1) получим: .
Составим систему уравнений:
Решая эту систему, получим следующие зависимости для вычисления коэффициентов:
_____________________________________________________________
function [k]=Spl (aa, n, x, y);
c (1)=0;
b (1)=10*y (1,2)-10*y (1,1)-0.1*c (1);
for k=1:n-2
b (k+1)=0.2*c (k)+b (k);
c (k+1)=100*y (1,k+2)-100*y (1,k+1)-10*b (k+1);
end
j=floor (10*aa-109);
if j==6
j=5;
end
k=y (1,j)+b (j)*(aa-x (j))+c (j)*(aa-x (j))^2;
_____________________________________________________________
n=6;
clear yy; clear ff; clear x1; clear x1
for i=1:11
a=10.95+i*0.05;
ff (i)=Spline (a, n, x, y);
x3(i)=10.95+0.05*i;
end
for j=1:6
yy (j)=y (1,j);
x1(j)=x (j);
end
% Построение графика
subplot (2,1,1); plot (x1,yy,'o-'); ylabel ('y'); xlabel ('x'); grid on
title ('Первоначальные данные')
subplot (2,1,2); plot (x3,ff,'.-');ylabel ('y'); xlabel ('x'); grid on
title ('Интерполяция сплайнами')
Рис. 6. Интерполяция квадратичным сплайном
5. Среднеквадратичная аппроксимация тригонометрическим многочленом третьей степени
Тригонометрический многочлен ищется в виде:
.
Коэффициенты вычисляются по следующим формулам:
, , .
где n — степень многочлена (в данном случае принимается n=3);
— число узловых точек.
_____________________________________________________________
function [x]=Furie (aa, x, y);
for i=1:11
xpi (i)=i*2*pi/11;
a=(aa-10.9)*10*2*pi/11;
end
n=3;
a0=sum (y, 2)/11;
for i=1:3
for j=1:11
ak (i, j)=y (1,j)*cos (i*xpi (j));
bk (i, j)=y (1,j)*sin (i*xpi (j));
end
end
aksum=2*sum (ak, 2)/11;
bksum=2*sum (bk, 2)/11;
Tna=a0(1)+aksum (1)*cos (a)+bksum (1)*sin (a)+aksum (2)*cos (2*a)+bksum (2)*sin (2*a)+aksum (3)*cos (3*a)+bksum (3)*sin (3*a);
x=Tna;
_____________________________________________________________
for i=1:100
k (i)=10.99+i*0.01;
ff (i)=Furie (k (i), x, y);
end
for j=1:11
yy (j)=y (1,j);
end
subplot (2,1,2);
plot (x, yy,'o-', k, ff,'.-');ylabel ('y');xlabel ('x');grid on;
title ('Аппроксимация тригонометрическим многочленом');
Рис. 7. Аппроксимация тригонометрическим многочленом
Список использованных источников
1. Самарский А. А., Гулин А. В. Численные методы. М.: Наука, 1989.
2. Демидович Б. П., Марон И. А. Основы вычислительной математики. М.: Физматгиз, 1966.
3. Калиткин Н. Н. Численные методы. М.: Наука, 1978.
4. Демидович Б. П., Марон И. А., Шувалова Э. З. Численные методы анализа. М.: Наука, 1967.
5. Бахвалов Н. С. Численные методы. М.: Наука, 1987.
6. Марчук Г. И. Методы вычислительной математики. М.: Наука, 1989.
7. Волков Е. А. Численные методы. М.: Наука, 1987.