Полиномиальная интерполяция и аппроксимация

 

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

InterpolatingPolinomial[data, var] Interpolation[data] Interpolation[data][x]   InterpolationOrder Интерполирует данные списка data степенным многочленом по переменной var. Данные могут иметь форму: {{x1,f1},{x2,f2}, …} или {f1,f2, …},причем xi принимают значения 1,2, … или вместо fi можно задавать {fi,dfi.ddfi, …}, указывая производные в точках xi Конструирует объект InterpolationFunction, который представляет собой приближенную функцию, интерполирующую данные data. Данные могут иметь форму: {{x1,f1},{x2,f2},…} или {f1,f2, …},причем xi принимают значения 1,2, …, вместо fi можно задавать {fi,dfi.ddfi, …}, указывая производные в точках xi Находит значение интерполяционной функции в конкретной точке x. Опция к функции, которая указывает степень подходящего полинома.

 

Примеры:

1)Найти интерполяционный многочлен по точкам: (1,2),(2,5),(3,10)

Вводим


Получим тот же результат, введя:

 

 


2)Найдем интерполяционную функцию по точкам соответственно


3)Для второго примера найдем значение интерполяционной функции в конкретной точке x, но при этом мы не видим саму функцию, поэтому применим графику:

 

Оператор Fit вычисляет параметры функции, при которых среднеквадратичная погрешность между результатами вычислений по этой функции и совокупностью исходных данных минимальна.

Fit[data,funs,vars] Аппроксимирует дискретные данные data в виде линейной комбинации функций funs переменных vars

В отличие от интерполяции, функция в узловых точках не дает точного значения ординат – она просто минимизирует в них погрешности вычислений.

Следующий оператор позволяет найти минимум функции, который используется при решении задач оптимизации:

FindMinimum[f,{x,x0}] Ищет локальный минимум функции f(x) в окрестности точки x0.

Пример:

Для заданного массива данных получим приближение в виде многочлена второй степени и суммы экспонент.

 

Упражнения:

1)Постройте интерполяционный многочлен по точкам: (-3, -27), (-2, -8), (-1, -1), (0, 0), (1, 1), (2, 8), (3, 27).

2)Аппроксимируйте многочленом функцию при помощи метода наименьших квадратов, взяв в качестве исходных данных точки , (использовать Fit).

3)Постройте с помощью функции ListPlot массив точек , а затем аппроксимируйте

4)многочленом и интерполяционным многочленом, взяв за исходные точки массива, и сопоставьте полученные данные на графике.

 

9. Приложение к химической технологии

 

Расчет пылеосадительной камеры

 

Рассчитать пылеосадительную камеру полочного типа для грубой очистки газа, загрязненного твердыми частицами, расхода м3/ч , при давлении P=750 мм.рт.ст. Средняя температура газа, проходящего через камеру, °С. Минимальный размер улавливаемых частиц d м. Плотность газа кг/м3, кинематическая вязкость м2/с.

Если расход поступающего газа равен V, тогда действительный секундный расход газа поступающего в пылеосадительную камеру при заданной температуре вычисляется по формуле

 

1) Если вы хотите на экране увидеть, чему равен действительный секундный расход, то в цикле For вы должны добавить функцию Print[Vсек[i]].

2) Здесь также используется // N - для чего? N - сообщает МАТЕМАТИКЕ, что в данный момент нам нужен численный результат вычисления (так как МАТЕМАТИКА может дать результат в виде дроби), и по умолчанию МАТЕМАТИКА дает его с шестью значащими цифрами.

3) Объемный расход вводился в виде массива, а работать нужно с его элементами; в МАТЕМАТИКЕ выделение элемента из массива происходит с помощью двойных квадратных скобок: V[[i]]

4) Оператор For[start,test,step,expr] - вычисляет начальное значение start, потом, повторяясь, вычисляет step (шаг) и ехрr (выражение), пока test (условие) не примет значение False.