Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР№3

.docx
Скачиваний:
0
Добавлен:
12.01.2024
Размер:
721.61 Кб
Скачать

Лабораторнаяработа№3

Интерполяцияфункций.ИнтерполяционныеполиномыЛагранжа,Ньютона.

есть прибор, который в дискретные моменты времени выдает сигнал по законуДопустим,наблюдательзарегистрировалпятьотсчетовв моментывремени

.Задачейнаблюдателя(которыйнезнаетзаконавыдачисигнала)яsвляетсяполучениеприближенногозначенияфункции на отрезке [0,1]влюбоймомент времени.

Используялинейнуюинтерполяцию,найдитезначенияфункциивточках: исравните с реальным значением синуса в этих точках. Постройте графики синуса и ломаной,проходящей через пять заданных точек. Отметьте, насколько сильно они различаются в разныхчастях графика. Чем это обусловлено?(чем больше число, тем больше ошибка приближения приинтерполяции. вначаленебольшоеотклонение,потомучтосинуснесильноменяется,апри1сильно)

functiony=interpol(X,Y,x)fori=1:length(X-1)

if (x>=X(i) && x<=X(i+1))k=(Y(i+1)-Y(i))/(X(i+1)-X(i));

y=Y(i)+k*(x-X(i));

return;end;end;end

f=@(t)sin(pi*t);i=0:4;Ti=i./4;Fi=f(Ti);

intf=@(x)(interpol(Ti,Fi,x));X=[01/61/31/2];

Y=zeros(size(X));YR=zeros(size(X));fori=1:length(X)

Y(i)=intf(X(i));

YR(i)=f(X(i));

end

[X;Y;YR;abs(Y-YR)]

holdon;gridon;fplot(f,[01]);

fplot(intf,[01],'r');

plot(Ti,Fi,'*');

%Научастках,гдепроизводнаяменяетсямедленно(втораяпроизводнаямала)

%отклонениеневелико,наиных-значительно.Обусловленонелинейностью

%функции

Постройте по заданнымпятиточкаминтерполяционныймногочленЛагранжаили Ньютонаи,

используя его, найдите значения функции в точках . Сравните результаты созначениями, полученными при линейной интерполяции, и значениями синуса в этих точках.Постройте графики синуса и интерполяционного многочлена. Какую максимальную ошибку мыдопускаем при аппроксимации синуса данным полиномом? Сравните экспериментальнуюпогрешностьстеоретической.(болееточное приближение)

(максошибка руками)Rn(t)=f^(n+1)(c)(t-x0)(t-x1)...(t-xn)/(n+1)!

гдеf^(n+1)(c)-n+1производнаяфункции f(t)в некоторойточкеcна интервале[x0,xn],n-порядокинтерполяционногополинома,t-точка,в которой оцениваетсяошибка,x0,x1,...,xn-узлы интерполяции.

functiony=interpol2(X,Y,x)

A=repmat(X.',1,length(X)).^repmat([0:length(X)-1],length(X),1);M=A\Y.';

y=(repmat(x',1,length(X)).^repmat([0:length(X)-1],length(x),1))*M;end

f=@(t)sin(pi*t);i=0:4;

Ti=i./4;Fi=f(Ti);X=[0:0.05:1];

Y=interpol2(Ti,Fi,X);hold on; grid on;plot(X,Y,'r');

fplot(f,[01]);

plot(Ti,Fi,'*');

%Расчёттеоретическойошибкиsymsx

[ksidksi]=fminbnd(matlabFunction(-diff(f(x),length(Ti))),0,1);E_T=-dksi/factorial(length(Ti))*myinterpL(Ti,Fi,x);

functiony=myinterp(X,Y,x)if(length(X)~=length(Y))

error'lengthofXandYmustbeequal'end

if(~issorted(X))

error'Xmustbesorted'end

fori=1:length(X-1)

if(x>=X(i) && x<=X(i+1))k=(Y(i+1)-Y(i))/(X(i+1)-X(i));

y=Y(i)+k*(x-X(i));return;

end

end

error'xnotinX'

end

ошибка

Найдитезначениеинтерполяционногополиномапри . Почему оно так сильно отличаетсяотзначениясинусав этойточке?(из-заотклонения,котороеобусловленонелинейностью)

  1. ошибкиокругления:Привыполнениичисленныхвычислениймогутвозникатьошибки

округления, особенно при больших значениях функции, что может приводить к отличиям междузначением интерполяционногополиномаиточнымзначением функции.

  1. Особенности функции: Некоторые функции, такие как синус, могут иметь сложное поведение,такое как быстрые колебания или особенности, которые могут приводить к большим отличияммеждузначениямиинтерполяционногополиномаиточногозначенияфункции.

Задайтефункцию наотрезке[-1,1]вдесятиравноотстоящихточках.Сравнитезначения функции и интерполяционного полинома при x=0.95. Постройте графики функции иполинома на заданном отрезке и объясните поведение интерполяционного полинома. Посмотрите,что будет происходить при постепенном увеличении числа узлов интерполяции и подумайте, какможноизбавитьсяотполучившегося эффекта (рунге).

Графикфункцииf(x)наэтомотрезкебудетиметьформу"воротниковидной"кривой,смаксимальнымзначениемвцентреотрезкаx=0и уменьшающимсязначенияминакраяхотрезка:

Однако,интерполяционныйполиномможетиметьнежелательныеосцилляцииили"волнения"околоузлов интерполяции, особенно на краях интерполяционного интервала. Это явление также известнокак "эффект Рунге". При использовании полиномов более высокого порядка, таких как кубическиесплайны,эффектРунге можетбыть снижен, и аппроксимацияможетбытьболееточной.

При постепенномувеличениичисла узловинтерполяции,аппроксимация синуса интерполяционнымполиномом будет становиться более точной на интервале интерполяции. Это связано с тем, что сувеличениемчислаузловполиномбудетболее"гибким"исможетлучшеаппроксимироватьсложнуюформусинусоиды.

Один из способов избежать эффекта Рунге - это использовать не равномерную сетку узловинтерполяции.Например,можноиспользоватьузлыЧебышева,которыерасполагаютсяболееплотнона краях интерполяционного интервала и более разрежено в его центре. Это может помочь снизитьосцилляциииулучшитьточность аппроксимации на всеминтервале.

gridon;

plot([min(x)max(x)],[00],'-k');max(abs(subs(f,xi)-yi))xlabel('x');

ylabel('y');ezplot('1/(1+25*x^2)',[-22]);axisequal

Шаг 0.2ans=

1.9156

Шаг 0.1ans=

58.5855

Шаг0.05

ans=

1.0437e+005

Дляоднойполовинысшагом0.1

1

Соседние файлы в предмете Численные методы