Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
7
Добавлен:
24.08.2022
Размер:
1.9 Кб
Скачать
// Лабораторная работа №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)
// Для квадратичной аппроксимации
b=[0;0;0];// Вектор начальных приближений
[b,err2]=approx2(b,z)
// Для кубической аппроксимации
c=[0;0;0;0];// Вектор начальных приближений
[c,err3]=approx3(c,z)
//Получим аппроксимирующие функции в явном виде
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)]
//Построение графиков заданной и аппроксимирующих функций
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)// Кубическая интерполяция
// Построение графиков заданной и интерполирующих функций
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);