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

№5 лабораторная МП

.docx
Скачиваний:
26
Добавлен:
22.04.2022
Размер:
119.93 Кб
Скачать

Федеральное агентство связи Ордена

Трудового Красного Знамени

федеральное бюджетное образовательное учреждение высшего образования

«Московский Технический Университет Связи и Информатики»

(МТУСИ)

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

Предмет: Введение в математические пакеты прикладных программ

Лабораторная работа по ВвМППП № 5

Тема:

“ Технология аппроксимации интерполяции функций в среде пакета Scilab”

Вариант 00

Выполнил:

Великий преподаватель

__________________________

Москва 0000

1. Общее задание

  1. Изучите материал Темы 2.2. (п. 2.2.1).

  2. Выберите индивидуальное задание: номера узлов и номер аппроксимируемой функции из табл. 2.2.2-1; узлы аппроксимации и значения функции в узлах из табл. 2.2.2-2.

  3. Задайте в виде векторов значения узлов и значения функции в выбранных узлах;

  4. Вычислите коэффициенты аппроксимирующих функции для линейной, квадратичной и кубической аппроксимации с использованием функции datafit( )и получите три аппроксимирующие функции в явном виде.

  5. Получите с использованием этих функций значение аппроксимирующей функции в произвольной точке, принадлежащей отрезку, но не совпадающей с узлами аппроксимации, и сравните полученные результаты.

  6. Построите графики табличной и трёх аппроксимирующих функций в одном шаблоне, снабдив их легендой.

  7. Проведите линейную и кубическую интерполяцию функции с использованием функции interpln(), заданной таблично. Получите значения интерполирующей функций в точке, не совпадающей с узлами интерполяции, и проанализируйт полученные результаты.

  8. Построите графики табличной и двух интерполирующих функций в одном шаблоне, снабдив их легендой.

  9. Предоставьте результаты работы преподавателю, ответить на поставленные вопросы.

  10. Оформите отчет по выполненной работе.

Sce-функции для вычисления коэффициентов аппроксимации

//Лабораторная работа №5 по теме:"Технология аппроксимации и интерполяции функциий"

// Вариант --

// Выполнил:

// Задание вектора значений узлов

x=[-5 -3.5 -3 -2 -1 0 0.5];

// Задание вектора значений функции в выбранных узлах

y=[2.44 2.13 1.455 1.437 1.175 0.375 -6.51*10^(-3)];

// Задание матрицы значений исходных данных

z=[x;y];

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

// Вызов sce-функции для вычисления коэфициентов

exec('approx1.sce');

exec('approx2.sce');

exec('approx3.sce');

// Для линейной аппроксимации

a=[0;0];// Вектор начальных приближений

[a,err1]=approx1(a,z)

err1 =

0.3006085

a =

0.4302198

-0.4281394

// Для квадратичной аппроксимации

b=[0;0;0];// Вектор начальных приближений

[b,err2]=approx2(b,z)

err2 =

0.2170963

b =

0.3856478

-0.5851153

-0.0366147

// Для кубической аппроксимации

c=[0;0;0;0];// Вектор начальных приближений

[c,err3]=approx3(c,z)

err3 =

0.1614672

c =

0.4308777

-0.7971947

-0.1856501

-0.0215441

//Получим аппроксимирующие функции в явном виде

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

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

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

//Получим значение аппроксимирующих функций в произвольной точке x =-4

[f1(-4);f2(-4);f3(-4)]

ans =

2.1427773

2.1402733

2.0280742

//Построение графиков заданной и аппроксимирующих функций

xgrid()

xtitle('Построение графиков заданной и аппроксимирующих функций','X','Y')

plot(x,y,'o')

mtlb_hold('on')

t=-5.2:0.1:1.2;

plot(t,f1(t),'r-')

plot(t,f2(t),'g--')

plot(t,f3(t),'k:')

legend('y(t)','f1(t)','f2(t)','f3(t)',-1);

// Вычисление значений интерполирующих функций в произвольной точке x = -4

fip=interpln(z,-4);//линейная интерполяция

// Вычисление коэффициентов сплайна

k=splin(x,y);

f3ip=interp(-4,x,y,k)// Кубическая интерполяция

f3ip =

2.9232047

// Построение графиков заданной и интерполирующих функций

scf(1);

xgrid()

plot(x,y,'o')

mtlb_hold('on')

y1=interpln(z,t);

y3=interp(t,x,y,k);

plot(t,y1,'r-')

plot(t,y3,'k-.')

xtitle('Построение графиков заданной и интерполирующих функций','X','Y')

legend('y(t)','y1(t)','y3(t)',-1);