Вы находитесь на странице: 1из 12

Практическая работа № 4

“ Аппроксимация экспериментальных данных”

В практике известны 3 способа задания функции: аналитический,


графический, табличный. В инженерной практике наиболее
распространенным является случай, когда вид связи между параметрами Х и
Y неизвестен, т.е. невозможно записать эту связь в виде некоторой
зависимости y =f(x). Как правило, даже при известной зависимости y=f(x), она
настолько громоздка, что ее использование в практических расчетах
затруднительно. Чаще всего эта связь представлена в виде таблицы, т.е.
дискретному множеству значений аргумента {xi} поставлено в соответствие
множество значений функции {yi} (i=1,2,.., п).

Эти значения – либо результаты расчетов, либо экспериментальные


данные. На практике нам могут понадобиться значения величины у и в других
точках, отличных от узлов xi. Часто эти значения можно получить лишь путем
сложных расчетов или проведением дорогостоящих экспериментов. Таким
образом, необходимо использовать имеющиеся табличные данные для
приближенного вычисления искомого параметра у при любом значении (из
некоторой области) определяющего параметра х, поскольку точная связь
у=f(x) неизвестна. Задачи исследования в большинстве случаев требуют
установить определенный вид функциональной зависимости между
характеристиками изучаемого явления.

Этой цели и служат задачи о приближении функции. Т.е. задача о


приближении (аппроксимации) функции состоит в том, чтобы данную
функцию f(x) приближенно заменить (аппроксимировать) некоторой
функцией 𝜑(x), значения которой в заданной области мало отличались от
опытных данных – f(x) ≈𝜑(x). Методы решения такой задачи относятся к
категории численных методов или методов вычислительной математики.

Один из способов аппроксимации функций – интерполяции. Он


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

𝝋(𝒙𝟏 ) = 𝒇(𝒙𝟏 ), 𝒊 = 𝟎. 𝟏, 𝟐, … , 𝒏.

Это условие называется условием интерполяции. Функция,


удовлетворяющая условиям интерполяции, называется интерполяционной, а
точки x0, x1, x2, …, хп узлами интерполяции. Чаще всего в качестве
интерполяционных функций выбираюталгебраические многочлены, так как из
значения вычисляются проще всего. Таким образом, решается следующая
задача определяется алгебраический многочлен n-й степени:

𝑷𝒏 (𝒙𝟏) = 𝒂𝟎 + 𝒂𝟏 𝒙 + 𝒂𝒙𝟐 + ⋯ + 𝒂𝒏 𝒙𝒏 , (1)

удовлетворяющий условиям интерполяции:

𝑷𝒏 (𝒙𝟏 ) = 𝒇(𝒙𝟏 ), 𝒊 = 𝟎, 𝟏, 𝟐. , . , 𝒏.

Алгебраический многочлен, удовлетворяющий этим условиям,


называется интерполяционным многочленом. Геометрический смысл
интерполяции состоит в том, что графики функции y=Pп(x) должны проходить
через все табличные точки (xi, yi), i=0,1.2,…,n. На рис. 1, а эти точки выделены.
Именно это условие должно обеспечить близость графиков этих функций на
рассматриваемом отрезке, чтобы можно было использовать
интерполяционный многочлен Рn(x) в качестве приближения для функции
f(x).
Существуют различные формы записи интерполяционного многочлена:
традиционная форма (1), многочлен Лагранжа и интерполяционная формула
Ньютона. В данном учебном пособии они не рассматриваются. Кроме
построения интерполяционных зависимостей, можно использовать более
общий вариант приближения функции – построение аппроксимирующих
зависимостей на основе различных функциональных взаимосвязей между
двумя рассматриваемыми величинами. Приближенная функциональная
зависимость, получения на основании экспериментальных данных, называется

аппроксимирующей функцией или эмпирической формулой.

Рис.1. Графическая интерполяция принципа построения


интерполяционного полинома(а) и аппроксимирующей линии (б) для
точечно заданной функции

Построение эмпирической формулы состоит из 2 этапов:

1.Подбор общего вида формулы. Иногда он известен из физических


соображений. Если характер зависимости неизвестен, то первоначально его
выбирают геометрически: экспериментальные точки наносят на график и
примерно угадываются общий вид зависимости путем сравнения полученной
кривой с графиками известных функций (многочлена, логарифмической,
показательной функций и т.п.). Выбор вида эмпирической зависимости –
наиболее сложная часть решения задачи, ибо класс известных аналитических
зависимостей необъятен. Практика, однако, показывает, что при выборе
аналитической зависимости достаточно ограничиться довольно узким кругом
функций: линейные, степенные и показательные.

Функции аппроксимации в Mathcad

1.Аппроксимация линейной функцией

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


экспериментальных данных.

Читаем данные из файлов datax и datay

𝑥 ≔ 𝑅𝐸𝐴𝐷𝑃𝑅𝑁 (𝑑𝑎𝑡𝑎𝑥) 𝑦 ≔ 𝑅𝐸𝐴𝐷𝑃𝑅𝑁(𝑑𝑎𝑡𝑎𝑦)

Определяем количество прочитанных данных (число экспериментальных


точек).

𝑛 ≔ 𝑙𝑎𝑠𝑡(𝑥) 𝑖 ≔ 0. . 𝑛

Используем встроенные функции slope и intercept для определения


коэффициентов линейной регрессии (аппроксимация данных прямой линией).
Функции slope определяет угловой коэффициент прямой, а функция intercept
– точку пересечения графиков с вертикальной осью.

А ≔ 𝑖𝑛𝑡𝑒𝑟𝑐𝑒𝑝𝑡(𝑥, 𝑦) 𝐵 ≔ 𝑠𝑙𝑜𝑝𝑒(𝑥, 𝑦)

Определяем аппроксимирующую функцию: 𝑓1(𝑧) ≔ А + В ∗ 𝑧

Коэффициенты линейной регрессии –

𝐴 = −3.539 𝐵 = 1.81

Кроме того, Mathcad предлагает для всех этих же целей использовать функцию
line
−3.539
line(x, y) = ( )
1.81

Вычислим стандартное отклонение.

1
𝑆1: = √ [∑𝑖(𝑓1(𝑥𝑖 ) − 𝑦𝑖 )2 ] 𝑆1 = 2.09
𝑛

𝑧 ≔ 0,0.1 . .10

2.Аппроксимация полиномами

Теперь попытаемся подобрать полиномы второй и третьей степени, в качестве


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

Вводим степени полином:

𝑘2 ≔ 2 𝑘3 ≔ 3
Функция regress является вспомогательной, она подготавливает данные,
необходимые для работы функции intterp. Вектор vs содержит, в том числе, и
коэффициенты полинома

𝑣𝑠2 ≔ 𝑟𝑒𝑔𝑟𝑒𝑠𝑠(𝑥, 𝑦, 𝑘2) 𝑣𝑠3 ≔ 𝑟𝑒𝑔𝑟𝑒𝑠𝑠(𝑥, 𝑦, 𝑘3)

Функция intterp возвращает значение полиномов в точке z. Определив новые


функции f2,f3, мы получим возможность находить значение полиномов в
любой заданной точке.

𝑓2(𝑧): = 𝑖𝑛𝑡𝑒𝑟𝑝(𝑣𝑠2, 𝑥, 𝑦, 𝑧) 𝑓3(𝑧) ≔ 𝑖𝑛𝑡𝑒𝑟𝑝(𝑣𝑠3, 𝑥, 𝑦, 𝑧)

𝑐𝑜𝑒𝑓𝑓𝑠2 ≔ 𝑠𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑥(𝑣𝑠2,3, 𝑙𝑒𝑛𝑔𝑡ℎ(𝑣𝑠2) − 1,0,0)

𝑐𝑜𝑒𝑓𝑠𝑠3 ≔ 𝑠𝑢𝑏𝑚𝑎𝑡𝑟𝑖𝑥(𝑣𝑠3,3, 𝑙𝑒𝑛𝑔𝑡ℎ(𝑣𝑠3) − 1,0,0)

Коэффициенты:

(𝑐𝑜𝑒𝑓𝑠𝑠2)𝑇 = (0.701 − 0.26 0.257)

(𝑐𝑜𝑒𝑓𝑠𝑠3)𝑇 = (−0.122 0.253 2.377 ∗ 10−3 0.017)

1
𝑆2 ≔ √ ∗ [∑𝑖(𝑓2(𝑥𝑖 ) − 𝑦𝑖 )2 ] 𝑆2 = 0.671
𝑛

1
𝑆3 ≔ √ ∗ [∑𝑖(𝑓3(𝑥𝑖 ) − 𝑦𝑖 )2 ] 𝑆3 = 0.581
𝑛

Стандартные отклонения почти не отличаются друг от друга, коэффициент


при четвертой степени z невелик, поэтому дальнейшее увеличение степени
полинома нецелесообразно и достаточно ограничиться только второй
степенью.

3.Аппроксимация функции произвольного вида


Теперь построим аппроксимирующую функцию дробно-рациональноготипа
𝑎𝑥 2
𝑓(𝑥) = . Для этого воспользуемся функцией genfit. Функция имеет
𝑏+𝑥

следующие параметры:

 x, y – векторы, содержащие координаты заданных точек,


 F –функция, задающая искомую функциональную n-параметрическую
зависимость и частные производные этой зависимости по параметрам.
 v- вектор, задающий начальные приближения для поиска параметров.

𝑢0 ∗𝑧 2
𝑢1 +𝑧
𝑧2
𝐹(𝑧, 𝑢) ≔ 𝑢1 +𝑧
𝑢0 ∗𝑧 2
[− (𝑢1+𝑧)2]

−1
𝑣≔( )
−15

−2.146
𝑆 ≔ 𝑔𝑒𝑛𝑓𝑖𝑡(𝑥, 𝑦, 𝑣, 𝐹) 𝑆=( )
−20.85

Поскольку нулевой элемент функции F содержит искомую функцию,


определяем функцию следующим образом: 𝑓5(𝑥) ≔ 𝐹(𝑧, 𝑆)0

Вычисляем среднее квадратичное отклонение


1
𝑆5 ≔ √ [∑𝑖(𝑓5(𝑥𝑖 ) − 𝑦𝑖 )2 ] S5=0.581
𝑛

Задание

1)Используя встроенные функции Mathcad, выполнить аппроксимацию


экспериментальных данных следующими зависимостями

𝑦 = 𝑏1 ∗ 𝑥 + 𝑏0

𝑦 = 𝑏2 ∗ 𝑥 2 + 𝑏1 ∗ 𝑥 + 𝑏0

𝑦 = 𝑏3 ∗ 𝑥 3 + 𝑏2 ∗ 𝑥 2 + 𝑏1 ∗ 𝑥 + 𝑏0

𝑦 = 𝑏0 + 𝑏1 ∗ 𝑒 𝑏2∗𝑥
2)Построить графическую интерпретацию данных.
3) По относительному стандартному отклонению определить оптимальное
уравнение аппроксимации исходных данных.
Ввод экспериметальных значений вязкости и скорости сдвига
 100   765 
 150   615 
   
   200     512 
 250   406 
   
 300   389 

1Аппросимация линейной функцией y=b0+b1*x


Определяем длину массивов экспериментальны данных

n  last(  ) i  0 n

Вычисляем коэффициенты аппроксимируещей функции,используя функции int


ercept и slope

b0  intercept(  )  921.8 b1  slope(  )  1.922

Вычисляем коэффициенты аппроксимируещейфункции,используя функцию


line
line(  )  
 921.8 

 1.922 

Определяем функцию

ras1( z)  b0  b1 z

Графическая интерпритация линейной аппроксимации


x  100110 300
800

700

i 600

ras1 ( x)
500

400

300
100 150 200 250 300
 i x

Вычислим стандартное среднее квадратичное отклонение

n 
ras1 i  i   36.76

1 2
S1 
i 
2Аппроксимация полиномом второй степени y=b0+b1*x+b2*x2 и третьей
степени
2 3
y=b0+b1*x+b2* x +b3* x

Вводим степени полиномов


k2  2 k3  3

Подготовим массивы данных при помощи функции regress

vs2  regress (   k2) vs3  regress (   k3)

Определяем коэффициенты аппроксимирующей функции,испльзуя массивы vs2b


vs3
coeffs2  submatrix( vs23äëèíà ( vs2)  100)
T 
coeffs2  1.185  10
3
4.928 7.514  10
3 
coeffs3  submatrix( vs33äëèíà ( vs3)  100)
T 
coeffs3  1.008  10
3
1.806 9.286  10
3
2.8  10
5 
Опрделяем функции полиномиальные функции при помощи interpи вручную
ras2( z)  interp( vs2  z) ras3( z)  interp( vs3  z)

2
ras22( z)  coeffs2  coeffs2  z  coeffs2  z
0 1 2

2 3
ras33( z)  coeffs3  coeffs3  z  coeffs3  z  coeffs3  z
0 1 2 3
Графическая интерпритация полиномиальной аппроксимации
800

i
700
ras2 ( x)
600
ras3 ( x)

ras22 ( x)500

ras33 ( x)
400

300
100 150 200 250 300
 i x

Вычислим стандартное среднее квадратичное отклонение

n 
ras2 i  i   10.776

n 
ras22 i  i   10.776

1 2 1 2
S2  S22 
i  i 

 ras3 i  i   8.486  ras33 i  i   8.486



1 2 1 2
S3  S33 
n  n 
i  i 

b2  x
3Аппроксимация произвольной функцией y=bo+b1 e

 u  u  eu2 z 
 0 1 
 1 
F( zu )   
 e
u2 z 
 
 u  z eu2 z 
 1 

1
ЗАдадим начальные значения для поиска приближения
v   10 
 
0

 263.97 
 3

SS  genfit(   v F)   1.061  10 
 3
 7.456  10 

Определяем аппроксимирующую функцию ras4( z)  F( zSS)


0

b2  x
Графическая интерпритация аппроксимации y=b0+b1 e
800

700

i 600

ras4 ( x)
500

400

300
100 150 200 250 300
 i x

Вычислим стандартное среднее квадратичное отклоение

n 
ras4 i  i   13.703

1 2
S4 
i 