Обработка экспериментальных данных. Интерполяционный

реклама
ИНФОРМАТИКА технологических
процессов
Лекция 7
Обработка экспериментальных данных.
Интерполяционный полином Лагранжа.
Преподаватель: профессор, д.т.н.
Иванчина Эмилия Дмитриевна
Кафедра ХТТ и ХК
Институт природных ресурсов
1
План
1. Постановка задачи интерполяции
2. Интерполяционный полином Лагранжа
3. Решение задач интерполирования
2
1.Постановка задачи интерполяции
При исследовании технологических процессов
возникает необходимость в обработке данных,
полученных в эксперименте. Пусть в химическом
реакторе протекает процесс превращения веществ.
Пусть дана некоторая функция y=f(x)-функция выхода
продуктов реакции от концентрации исходного
компонента. Любому значению х (концентрации
исходного компонента) ставится в соответствие
значение y (выход продукта реакции).Функция f(x)
является результатом сложного хроматографического
анализа или f(x) измеряется в дорогостоящем
эксперименте.
3
В этом случае вычисляют таблицу значений выходного
параметра от аргумента и по некоторым точкам строят
функцию y=f(x) , где х – концентрация исходного
компонента, y – концентрация продукта реакции.
Полином Pm(x) при этом называется
аппроксимирующим. Для практики важен случай
аппроксимации функции полиномом степени m
Pm (x)=a0 + a1x + a2x2 +. . . + amxm
Коэффициенты a0, a1, ... , am должны подбираться так,
чтобы отклонение полинома от данной функции было
наименьшим, а следовательно, задача о приближении
функции состоит в определении a0, a1, ... , am полинома.
4
2. Интерполяционный многочлен Лагранжа
Пусть на отрезке [x0, xn] заданы n+1 точки и имеется
таблица экспериментальных значений функции
y = f(x) : y0, y1, y2.....yn, y0=f(x0); y1=f(x1); ...; yn=f(xn).
Требуется найти значения этой функции для
промежуточных значений аргумента при условии
Pm(x0)=f(x0)=y0,
..........................
..........................
Pm(xi)=f(xi)=yi , где i = 0, 1, 2, ... , n – узлы интерполяции.
5
x
f(x)
x0
x1 . .. xn
f(x0) f(x1) . . .f(xn)
Такую задачу называют задачей интерполирования.
Точки xi называются узлами интерполяции,
функция f(x) – интерполируемой функцией,
многочлен Pm(x) – интерполяционным многочленом.
6
Узлы в общем случае не являются равноотстоящими
(шаг таблицы неравномерный).
Построим интерполяционный многочлен на отрезке
[x0, xn].
Запишем искомый многочлен в виде
Pm(x)=a0 + a1x + a2x2 +. . . + amxm
7
Геометрически задача интерполирования сводится к
построению кривой через заданные точки x.
Аналитически задача сводится к решению системы
уравнений для определения неизвестных коэффициентов.
Для определения коэффициентов полинома (многочлена )
необходимо располагать n+1 узловой точкой.
Чтобы система уравнений имела единственное решение,
необходимо, чтобы количество неизвестных коэффициентов
полинома (аj) – m+1 – равнялось количеству уравнений n+1
или m=n.
Пусть в n+1-й точках x0, x1,..., xn определены значения
y0, y1,..., yn. Требуется построить многочлен Pn(x), принимающий
в узловых точках заданные значения yi, т. е. такой, что
Pn(xi) = yi,
i= 0, 1, ..., n.
8
n
.
Pn ( x)   Yi  Li ( x)
i 0
n


x  x0 ...x  xi1 x  xi1 ...x  xn 
x  xk 
Li ( x) 
= 
xi  x0 ...xi  xi1 xi  xi1 ...xi  xn  k 0 xi  xk 
k i
где Li(x) – множитель Лагранжа, x – текущая точка для интерполирования
9
 n
x  xk

Pn  x    yi 

i 0
 kk i0 xi  xk


x  x1 x  x2 ...x  xn 
Pn ( x)  Y0

x0  x1 x0  x2 ...x0  xn 
n

.




x  x0 x  x2 ...x  xn 
 Y1
 ...
x1  x0 x1  x2 ...x1  xn 

x  x0 x  x1 x  x2 ...x  xn 1 
...  Yn
.
xn  x0 xn  x1 xn  x2 ...xn  xn 1 
10
3. Решение задач интерполирования
Пример 1. Дана таблица значений теплоёмкости вещества в
зависимости от температуры Cp =f(T).
x (T) 300 400
500
600
y (Cp) 52.89 65.61 78.07 99.24
Вычислить значение теплоёмкости в
точке Т=450 К.
11

450  400 450  500 450  600 
f (450 ) 
 52.89 
300  400 300  500 300  600 

450  300 450  500 450  600 

 65.61 
400  300 400  500 400  600 
450  300 450  400 450  600   78.07 
500  300 500  400 500  600 

450  300 450  400 450  500 

 99.24 .
600  300 600  400 600  500 
.
С p (450)  71.31 Дж/моль  К 
12


n
x  xj 

y    yi  

x

x
j 1
i 1 
i
j


ji
n
CONST
n=5;
x:ARRAY[1..n] OF real=(1,3,5,7,9);
y:ARRAY[1..n] OF real=(1.33,2.57,3.44,4.74,5.11);
VAR x0, S, P:real;
13
i, j:integer;
BEGIN
S:=0; READ(X0);
FOR i:=1 TO n DO
BEGIN
P:=1;
FOR j:=1 TO n DO
IF i< >j THEN P:=P(x0-x[j])/(x[i]-x[j]);
S:=S+y[i]P
END;
writeln(S:12)
END.
14
Пример 2. Составить программу для расчета функции по
формуле Лагранжа в т. x=1.5,
Исходные данные
x
y
1 2 3 4
0 3 5 7
Program Lagr;
Var X,Y: array[0..3] of real; S,P,X1 : real; i,j: integer;
F1,f2 : text;
BEGIN
assign (f1,’1.pas’); assign(f2,’2.pas’); Reset(f1);
Rewrite(f2); READL(F1,X1);
for i:=0 to 3 do read(f1,x[i],y[i]);
15
S:=0;
FOR i:=1 TO 3 DO
BEGIN
P:=1;
FOR j:=1 TO n DO
IF i< >j THEN P:=P(x0-x[j])/(x[i]-x[j]);
S:=S+y[i]P
END;
Writeln (f2,S:4:2); close(f2);
END.
16
Файл 1. pas
Файл 2.pas
1.5
1
0
2
3
3
5
4
7
2.3
17
Пример 3.
Объем 1 кг метана зависит от давления следующим образом:
P, KПа
V, м3
0.93
1.47
Файл 1.pas
0.75 0.36 0.23
1.89
3.94
V(0.83) - ?
4.2
Файл 2.pas
0.89
0.93
1.47
0.75
1.89
0.36
3.94
0.23
4.2
1.67
18
Скачать