Интерполирование для таблиц с постоянным с шагом. Численное дифференцирование. Обратное интерполирование

Страницы работы

14 страниц (Word-файл)

Содержание работы

кафедра 304

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

по предмету «Численные методы»

по теме: Интерполирование для таблиц с постоянным с шагом. Численное дифференцирование. Обратное интерполирование.

Выполнила студентка 325 гр.

Старцева А. В.

Проверила  ст. преподаватель каф. 304

Яровая О. В.

______________________

Теоретические сведенья

Ручной счет

Расчет в пакете Mathcad

Численное дифференцирование

Обратное интерполирование

Расчет в пакете Matlab

Первая интерполяционная формула Ньютона:

function res = Nuton1(x,X,Y,n);

res=Y(1);

h=X(2)-X(1);

for i=1:n

    konrazn=diff(Y,i);

    konrazn=konrazn(1);

    fact=prod(1:i);

    Mult=1;

    for j=1:i

        Mult=Mult*(x-X(j));

    end;

    res=res+(konrazn/fact*h^i)*Mult;

end;

return

Вторая интерполяционная формула Ньютона:
function res = Nuton2(x,X,Y,n);

res=Y(n);

h=X(2)-X(1);

q=(x-X(n))/h;

for i=1:(n-1)

    konrazn=diff(Y,i);

    konrazn=konrazn(n-i);

    fact=prod(1:i);

    Mult=1;

    for j=0:(i-1)

        Mult=Mult*(q+j);

    end;

    res=res+(konrazn/fact)*Mult;

end;

return

Функция вычисляет значения указанного полинома в заданном множестве точек

function yy = EvalNuton(X,Y,xx,formNumber)

n=length(X)-1;

if (formNumber==1)

    for i=1:length(xx);

        yy(i)=Nuton1(xx(i),X,Y,n);

    end;

else

    for i=1:length(xx);

        yy(i)=Nuton2(xx(i),X,Y,n+1);

    end;

end;

return

Построение графика:

Скрипт файл:

function rts = Ch(x,X,Y,n)

choise = questdlg('Выберите формулу интерполяции:', 'Формула Ньютона', '1','2','1');

switch choise

case '1'

rts=Nuton1(x,X,Y,n);

case '2'

rts=Nuton2(x,X,Y,n);

end

end

Обратное интерполирование

function res=iter(y,Y,X,eps)

h = X(2)-X(1);

n = length(X);

konrazn=diff(Y,1);

konrazn=konrazn(1);

q = (y - Y(1))/konrazn;

q_next = Q(q,y,Y,n);

while abs(q_next-q)>eps

    q=q_next;

    q_next = Q(q,y,Y,n);

 end;

res = q_next*h+X(1);

return

% функция Q(q,y,Y,n):

function res=Q(q,y,Y,n)

sum = 0;

for i=2:n-1

    % вычисление конечной разности

    konrazn=diff(Y,i);

    konrazn=konrazn(1);

    % вычисление факториала

    fact=prod(1:i);

    % вычисляем (x-y0)(x-y)...(x-y)

    Mult=1;

    for j=1:i

        Mult=Mult*(q-j+1);

    end;

    sum=sum+(konrazn/(fact))*Mult;

end;

 konrazn=diff(Y,1);

 konrazn=konrazn(1);

 res = (y-Y(1)-sum)/konrazn;

 return

Вывод: на этой лабораторной работе я изучила формулы интерполяции для таблиц с постоянным шагом; научилась решать задачи численного дифференцирования и обратного интерполирования. Вычислила приближено для заданной функции значения в неузловых точках с помощью ручного  счета (), с помощью пакетов Mathcad () и Mathlab ().А так же значение производной в точке х=0.85, (f ′(х)= 2.32762). Нашла корень уравнения  у =  методом обратной интерполяции (х=1.74658) и проверила с помощью встроенной функции.

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
1002 Kb
Скачали:
0