Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_2_семестр.doc
Скачиваний:
2
Добавлен:
15.09.2019
Размер:
393.22 Кб
Скачать

Задание 3

По таблице из задания 2 вычислить значение функции в точке x* =  ст/30

  1. с помощью интерполяционного полинома Лагранжа, используя первые три точки таб­лицы;

  2. с помощью интерполяционного полинома Ньютона, используя все точки таблицы.

Это же задание выполнить с использованием ИС Eureka и Scilab.

Пример выполнения задания 4: (вариант а, Nст = 51,  

Интерполяция – это частный случай аппроксимации, когда аппроксимирующая кривая про­ходит через все или через часть точек таблицы.

Поскольку шаг в данной таблице – постоянный (hi = xi+1 xi = h = const), то для решения задачи интерполяции можно использовать как интерполяционный полином Лагранжа, так и интерпо­ляционный полином Ньютона.

Для наших исходных данных получаем таблицу:

x

6

8

10

12

14

y

2.5

4.9

8

12.1

16.9

Покажем, как по первым трем точкам (узлам) таблицы построить интерполяционный поли­ном Ла­гранжа. Степень интерполяционного полинома в данном случае будет равна двум (на единицу меньше числа узлов таблицы).

(1)

Подставляя наши исходные данные в формулу (1), получаем:

Здесь x0 = 6, x1 = 8, x2= 10, y0 = 2.5, y1 = 4.9, y2 = 8.

Раскрыв скобки и приведя подобные члены, получим:

Проверим, проходит ли наш полином через три заданные точки таблицы:

0.087562 – 0.0256 – 0.5 = 2.5, 4.9, 8.

Подставляя теперь в этот полином вместо x число x* = 6 + 51/30 = 7.7, получим:

0.08757.72 – 0.0257.7 – 0.5  4.495

Ответ: , 4.495

Для решения задачи с помощью ИС Eureka в окне Edit набираем строки:

y(x) = c0 + c1*x + c2*x^2

y(6) = 2.5

y(8) = 4.9

y(10) = 8

t = y(6 + 51/30)

После выполнения команды Solve в окне Solution получаем:

c0 = – 0.5

c1 = – 0.025

c2 = 0.0875

t = 4.495375

Maximum error is 4.4408921e-16

Ответ: , 4.495

Для построения полинома четвертой степени, проходящего через пять точек таблицы, вос­пользуемся формулой первого интерполяционного полинома Ньютона:

( 2 )

Здесь , n! = 1234n. (Например, 5!=12345=120).

Построим следующую таблицу конечных разностей:

i

0

1

2

3

4

Здесь = – , = – , = – , = – , = – ,

= – , = – , = – , = – ,

= – .

- это k-я конечная разность ( k = 1, 2, 3, 4). В нашем примере

i

0

6

2.5

2.4

0.7

0.3

– 0.6

1

8

4.9

3.1

1

– 0.3

2

10

8

4.1

0.7

3

12

12.1

4.8

4

14

16.9

= 6, (заданная точка), . Тогда .

Подставляя исходные данные в формулу (2), получим:

+

Ответ:

Чтобы решить эту же задачу с помощью ИС Eureka, в окне Edit набираем строки:

y(x):= c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4

y(6)=2.5

y(8)=4.9

y(10)=8

y(12)=12.1

y(14)=16.9

t=y(6+51/30)

После выполнения команды Solve в окне Solution получим:

c0 = –12.5

c1 = 5.425

c2 = –0.80625

c3 = 0.625

c4 = –0.015625

t = 4.5105873

Maximum error is 3.0198066e-14

Ответ: 12.5 + 5.425x 0.8063x2 + 0.625x3 0.0156x4,

t =

(Значения коэффициентов округлены до четырех знаков после запятой).

Чтобы решить вторую часть задачи (пункт b) с помощью ИС Scilab, можно воспользоваться программой

clc

xbasc()

x=[6 8 10 12 14];y=[2.5 4.9 8 12.1 16.9 ];nst=51;

n=length(x);a=[];b=[];c=[];

for i=1:n

for j=1:n

a(i,j)=sum(x.^(i+j-2));

end

b(i)=sum(x.^(i-1).*y);

end

c=inv(a)*b

function z=f(t)

z=0;

for i=1:n

z=z+t.^(i-1).*c(i);

end

endfunction

plot2d(x,y,-4)

t=min(x)-.1:.01:max(x)+.1;plot2d(t,f(t))

r=min(x)+nst/30,z1=f(r),plot(r,z1,"*")

err=sum((y-f(x)).^2)

Набрав эту программу в окне редактора и запустив ее на выполнение, в командном окне получим:

c = - 12.5 5.425 - 0.80625 0.0625 - 0.0015625

r = 7.7 z1 = 4.5105873 err = 6.351D-16

Коэффициенты интерполяционного полинома с даны в порядке возрастания степеней; r – точка, в которой необходимо вычислить значение функции (z1), err – сумма площадей квадратов отклонений (0 в задаче интерполяции). В графическом окне строится график интерполинома.

Ответ: ,

4.5106

Для решения первой части задачи (пункт а) третья строка должна выглядеть так:

x=[6 8 10 ];y=[2.5 4.9 8 ];nst=51;

Ответы:

c = - 0.5 - 0.025 0.0875 r = 7.7 z1 = 4.495375 err = 3.564D-23

Ответ: ,

4.4954