Нахождение значения приближенной функции с помощью многочлена Лагранжа

7792
знака
2
таблицы
8
изображений

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.


Информация о работе «Аппроксимация функций»
Раздел: Математика
Количество знаков с пробелами: 7792
Количество таблиц: 2
Количество изображений: 8

Похожие работы

Скачать
27298
3
15

... считать, что построенная эмпирическая формула наиболее точно отражает эмпирические данные. 3. Расчет коэффициентов аппроксимации в Microsoft Excel. Вариант №22 Функция y=f(x) задана таблицей 1 Таблица 1 Исходные данные. 12.85 154.77 9.65 81.43 7.74 55.86 5.02 24.98 1.86 3.91 12.32 145.59 9.63 80.97 7.32 ...

Скачать
17478
0
6

... необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции yi=f(xi)=[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 489 5.06 5.63 5.91], i=1,20. В математической среде Matlab создаем новый M-File, в котором записываем код программы создания и обучения нейронной сети с использованием встроенных функций пакета сетей Neural Netwworks ...

Скачать
32868
0
11

... [a,b]. Теперь мы можем рассматривать функции в произвольных нормированных пространствах. III. Методы аппроксимации 3.1 Приближение функций многочленами. Алгебраическим многочленом степени n называется функция - действительные числа, называемые коэффициентами. Алгебраические многочлены являются простейшими функциями. Они непрерывны при любом x. Производная многочлена- так же многочлен, степень ...

Скачать
30402
29
4

... 368.0 3354.0 159.0 368.0 3354.0 33428.0 1023.0 Вектор коэфициентов аппроксимирующего многочлена по возрастанию степени (m+1 элементов) a[1]= 11.66 a[2]= -2.31 a[3]= 0.13 Вектор погрешности аппроксимации в узлах X z[1]=0.479 z[2]=-1.381 z[3]=-1.343 z[4]=-1.070 z[5]=-1.247 z[6]=-1.430 z[7]=-0.244 z[8]=0.723 z[9]=3.570 z[10]=1.454 5.1 Список переменных основной программы.   ...

0 комментариев


Наверх