85516 (574862)
Текст из файла
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра «Авиа- и ракетостроение»
Специальность 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. Интерполяция многочленом Ньютона вперёд
б) Формула Ньютона для интерполяции назад:
_____________________________________________________________
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
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














