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

Лаба 2.2.2

.docx
Скачиваний:
5
Добавлен:
06.08.2022
Размер:
38.16 Кб
Скачать

Федеральное Агентство Связи Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Образования Ордена Трудового Красного знамени «Московский технический университет связи и информатики»

Кафедра информатики

Лабораторная работа 5

Вариант 2

«Технология аппроксимации и интерполяции функций»

Выполнил Студент группы БИН1806 Аркадьев Илья Дмитриевич

Москва 2019

  1. Индивидуальное задание

xi

f1(xi)

-5

1.38

-4.5

1.221

-3.5

1.501

-3

1

-2

0.976

-0.5

0.192

0.5

0.319

  1. Журнал команд с комментариями

    1. Вычисление коэффициентов аппроксимирующих функций:

--> x = [-5 -4.5 -3.5 -3 -2 -0.5 0.5];

--> y = [1.38 1.221 1.501 1 0.976 0.192 0.319];

--> z = [x;y];

--> a = [0;0];

--> function[zr] = R(a,z)

> zr = z(2)-a(1) - a(2).*z(1)

> endfunction

--> [a, err] = datafit(R,z,a)

err =

0.2714183

a =

0.3593178

-0.2263208

--> function[zr] = R2(c,z)

> zr = z(2)-c(1)-c(2).*z(1)-c(3).*z(1).^2

> endfunction

--> c=[0;0;0];

--> [c,err] = datafit(R2,z,c)

err =

0.2383293

c =

0.3251641

-0.3324563

-0.0235403

--> function[zr] = R3(k,z)

> zr = z(2)-k(1)-k(2).*z(1)-k(3).*z(1).^2-k(4).*z(1).^3

> endfunction

--> k=[0;0;0;0];

--> [k,err] = datafit(R3,z,k)

err =

0.1494251

k =

0.2501063

-0.0464192

0.1736108

0.0283118

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

--> t = -5.1:0.1:0.6;

--> y1=a(1)+a(2).*t;

--> y2 = c(1)+c(2).*t+c(3).*t.^2;

--> y3=k(1)+k(2).*t+k(3).*t.^2+k(4).*t.^3;

--> plot(x,y,'o')

--> mtlb_hold('on')

--> plot(t,y1,'b-.',t,y2,t,y3,'k--')

Значения аппроксимирующих функций в произвольной точке:

--> deff('y=f1(x)','y=a(1)+a(2).*x');

--> deff('y=f2(x)','y=c(1)+c(2).*x+c(3).*x.^2');

--> deff('y=f3(x)','y=k(1)+k(2).*x+k(3).*x.^2+k(4).*x.^3');

--> [f1(-3.25),f2(-3.25),f3(-3.25)]

ans =

1.0948606 1.1570025 1.2628434

    1. Линейная и кубическая интерполяция функции с использованием функции interpln(), заданной таблично:

--> //Линейная интерполяция сплайнами

--> x = [-5 -4.5 -3.5 -3 -2 -0.5 0.5];

--> y = [1.38 1.221 1.501 1 0.976 0.192 0.319];

--> z = [x;y];

--> f = interpln(z,-3.25)

f =

1.4135

-->//Интеполяция кубическими сплайнами

--> X = [-1 0.3 -0.7];

--> //Значения функции в заданных точках

--> Y = interp(X,x,y,koeff)

Y =

0.5067133 0.1620756 0.3052263

--> t = -5:0.1:0.5;

--> p=interp(t,x,y,koeff);

--> plot(x,y,'o');

--> mtlb_hold('on');

--> plot(t,p,'-');

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