Аппроксимация функций
Краткое сожержание материала:
16
16
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра «Авиа- и ракетостроение»
Специальность 160801- «Ракетостроение»
Расчетно-графическая работа
по дисциплине «Основы САПР»
Аппроксимация функций
Омск 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.00023,1.080087,2.064282,2.854531,3.37121,3.560925,3.402017,2.90698,2.121544,1.120452,0.000357];
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....
Аппроксимация функций
Интерполяция (частный случай аппроксимации). Аппроксимация функцией. Метод наименьших квадратов. Из курса математики известны 3 способа задания функци...
Методы аппроксимаций функций
Аппроксимация функций методом наименьших квадратов. Описание программного средства: спецификация переменных, процедур и функций, схемы алгоритмов. Реа...
Интерполирование и приближение функций
Разделенные разности и аппроксимация функций методом наименьших квадратов. Интерполяционные многочлены Лагранжа и Ньютона. Экспериментальные данные фу...
Аппроксимация функций
Способы построения интерполяционных многочленов Лагранжа, основные этапы. Интерполирование функций многочленами Ньютона, способы построения графика. П...
Аппроксимация табулированных функций
Особенности метода аппроксимации табулированных функций. Рассмотрение преимуществ работы в среде математической программы Mathcad. Метод наименьших кв...