- •Отчет по лабораторной работе №6
- •Аппроксимация
- •Контрольные вопросы
- •Как связаны разделенные разности и производная?
- •Что такое сплайн? Как происходит процесс интерполирования сплайнами?
- •Вторая интерполяционная формула Ньютона для равноотстоящих узлов.
- •Как находится погрешность метода интерполирования с помощью формул Ньютона?
- •15. Что значит «интерполирование вперед», «интерполирование назад»?
МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Кафедра физики и методики обучения физики
Отчет по лабораторной работе №6
” ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ”
Выполнила: Максимова Е.Э.
Проверил: Андреев А.И.
Йошкар-Ола
2014
Исходная система:
x |
y |
0,10 |
1,26 |
0,12 |
1,31 |
0,13 |
1,32 |
0,15 |
1,36 |
0,17 |
1,41 |
0,19 |
1,42 |
0,22 |
1,52 |
в точке x=0,1026 |
|
Создадим новый
файл maksimova_Pol.sci,
содержащий описание функции, возвращающей
значения полинома
function z=maksimova_Pol(a, x1)
M1=length(a);
s=0;
for i=1:M1
s=s+a(i)*x1.^(M1-i);
end;
z=s;
endfunction
Создадим новый файл maksimova_Vandermond.sci, содержащий описание функции, возвращающей значения элементов матрицы Вандермонда
function z=maksimova_Vandermond(x)
N=length(x);
z=ones(N,N);
for i=1:N
for j=1:N
z(i,j)=x(i).^(N-j);
end;
end;
endfunction
Зададим значения экспериментальных точек
x=[0.10;0.12;0.13;0.15;0.17;0.19;0.22]
disp(x)
y=[1.26;1.31;1.32;1.36;1.41;1.42;1.52]
disp(y)
В командном окне получим:
0.1
0.12
0.13
0.15
0.17
0.19
0.22
1.26
1.31
1.32
1.36
1.41
1.42
1.52
Теперь вычислим значения матрицы Вандермонда
M=maksimova_Vandermond(x)
Получим :
0.000001 0.00001 0.0001 0.001 0.01 0.1 1.
0.0000030 0.0000249 0.0002074 0.001728 0.0144 0.12 1.
0.0000048 0.0000371 0.0002856 0.002197 0.0169 0.13 1.
0.0000114 0.0000759 0.0005062 0.003375 0.0225 0.15 1.
0.0000241 0.0001420 0.0008352 0.004913 0.0289 0.17 1.
0.0000470 0.0002476 0.0013032 0.006859 0.0361 0.19 1.
0.0001134 0.0005154 0.0023426 0.010648 0.0484 0.22 1.
Вычислим значения коэффициентов полинома
a=M^-1*y
disp(a)
Получим:
- 1152528.8
1193484.9
- 504462.98
111506.43
- 13597.728
869.21977
- 21.524153
Таким образом, полином имеет вид:
Вычислим значение полинома в заданной промежуточной точке х=0,1026
В командном окне наберем:
x1=0.1026
y1=maksimova_Pol(a,x1)
В ответе получим:
y1 = 1.2736749
Теперь построим график найденного полинома,с наложенными заданными точками:
x1=0.10:0.001:0.21
y1=maksimova_Pol(a,x1)
plot(x1,y1,x,y,'.')
Теперь вычислим с помощью встроенной функции splin().
x=[0.10 0.115 0.13 0.15 0.17 0.19 0.21]
y=[1.263 1.302 1.323 1.362 1.406 1.448 1.512]
plot(x,y,'.')
d=splin(x,y);
S=interp(0.10:0.001:0.21,x,y,d);
plot2d(x',y',-1);
plot2d((0.10:0.001:0.21)',S',2,'000')
