МО РФ
Новосибирский Государственный Технический Университет
по Вычислительной математике
Интерполирование функции
Выполнили: Преподаватель:
Ильин М.Э. Чикильдин Г.П.
Аникин А.С.
Кайгородов Ю.В.
Новосибирск 2004
Цель работы:
Ознакомиться с методикой приближенного представления интерполяционного полинома и способами оценивания погрешностей интерполяции.
Постановка задачи:
Вычислить приближенные значения функции y=f(x), xÎ[a,b] с шагом ∆x (∆x=0,1) посредством интерполяционного полинома Pn=(x) (n=2,3,4), определенного через yi=f(xi) в узлах интерполяции xi, iÎ[1,N] (N=3,4,5) с шагом h=(b-a)/(N-1) – const на интервале [a,b]. Оценить погрешности интерполирования функции y=f(x) на интервале [a,b] исследовать влияния количество узлов N (порядка n) на точность интерполирования.
Дана функция y=e–xsin(x)
на интервале [0.8 ,4.4]
Формула интерполяционного полинома
Pn(x) = a0
+ a1x + a2x2 + … + anxn
Листинг
1.
Степень полинома 2-4
real x(10),y(10), u(10,10), v(10), x1(10), e(10), dx, fx, xi
real pn(10),emo,eso,sum,eee(100)
integer k,n1,j,k1,n
real a,b,h
write (*,10)
10 format (/,5x,'vvedite kolichestvo uzlov',/)
read *,n
n1=n-1
a=0.8
b=4.4
dx=0.1
h=(b-a)/n1
do 3 k=1, n
x(k)=a+(k-1)*h
3 y(k)=exp(-x(k))*(sin(x(k)))
call n1ysau (n,x,y,u,v)
call n1ygau (u,v,x1,n)
k1=(b-a)/dx+1
write (1, 1005)
do 20 j=1,n
20 write (1,1000) x(j), y(j)
1000 format (11x, f9.6, 4x, f9.6)
write (1, 1010) n1
write (1, *) ' koefficienti polinoma'
do 21 j=1,n
21 write (1, 1020) (x1(j))
write (1, 1030)
do 5 k=1,k1
xi= a+(k-1)*dx
fx= exp(-xi)*sin(xi)
if (n.eq.4) pn(k)=x1(1)+x1(2)*xi+x1(3)*xi*xi+x1(4)*xi*xi*xi
if (n.eq.3) pn(k)=x1(1)+x1(2)*xi+x1(3)*xi*xi
if (n.eq.5) pn(k)=x1(1)+x1(2)*xi+x1(3)*xi**2+x1(4)*xi**3
* +x1(5)*xi**4
eee(k)= abs(fx-pn(k))
5 write (1, 1040) k, xi, fx, pn(k), eee(k)
call n1yeee(y,pn,n,e,em,es,ep,emo,eso,epo)
write (1, 1045) emo, eso
1045 format (5x, 'pogreshnosti: Emo', e11.4, /,7x,'Eso=',3x,E11.4)
1005 format (/,10x,'interpolirovanie vedetsya po table',/
* /, 3x, '***', 8x, 'X', 9x, 'Y=f(x)', 5x, '***',/)
1010 format (/,'Stepen polinoma',i5)
1020 format (e11.4, 2x)
1030 format (/, 6x, 'k', 3x, 'x',8x, 'f(x)',5x, 'Pn(x)',4x, 'E(x)')
1040 format ( 5x, i2, 2x, f7.4, 2x, f7.4, 2x, f7.4, 2x, f7.4)
200 format (/,/,5x, f5.2)
300 format (/,5x,'x= ',(5x,f8.6))
310 format (/,5x,'y= ',(5x,f8.6))
320 format (/,5x,'ai= ',(5x,f8.6))
400 format (/,3(5x, f10.6))
stop
end
Листинг 2.
Файл результата для 2x узлов полинома степени 1.
interpolirovanie vedetsya po table
*** X Y=f(x) ***
0.800000 0.322329
4.400000 -0.011683
Stepen polinoma 1
koefficienti polinoma
0.3966E+00
-0.9278E-01
k x f(x) Pn(x) E(x)
1 0.8000 0.3223 0.0000 0.3223
2 0.9000 0.3185 0.0000 0.3185
3 1.0000 0.3096 0.0000 0.3096
4 1.1000 0.2967 0.0000 0.2967
5 1.2000 0.2807 0.0000 0.2807
6 1.3000 0.2626 0.0000 0.2626
7 1.4000 0.2430 0.0000 0.2430
8 1.5000 0.2226 0.0000 0.2226
9 1.6000 0.2018 0.0000 0.2018
10 1.7000 0.1812 0.0000 0.1812
11 1.8000 0.1610 0.3223 0.1614
12 1.9000 0.1415 0.3185 0.1769
13 2.0000 0.1231 0.3096 0.1865
14 2.1000 0.1057 0.2967 0.1910
15 2.2000 0.0896 0.2807 0.1911
16 2.3000 0.0748 0.2626 0.1878
17 2.4000 0.0613 0.2430 0.1817
18 2.5000 0.0491 0.2226 0.1734
19 2.6000 0.0383 0.2018 0.1635
20 2.7000 0.0287 0.1812 0.1524
21 2.8000 0.0204 0.1614 0.1410
22 2.9000 0.0132 0.1769 0.1638
23 3.0000 0.0070 0.1865 0.1795
24 3.1000 0.0019 0.1910 0.1891
25 3.2000 -0.0024 0.1911 0.1935
26 3.3000 -0.0058 0.1878 0.1937
27 3.4000 -0.0085 0.1817 0.1903
28 3.5000 -0.0106 0.1734 0.1840
29 3.6000 -0.0121 0.1635 0.1756
30 3.7000 -0.0131 0.1524 0.1655
31 3.8000 -0.0137 0.1410 0.1547
32 3.9000 -0.0139 0.1638 0.1777
33 4.0000 -0.0139 0.1795 0.1933
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.