Аппроксимация функций

Аппроксимация функций



Из курса математики известны 3 способа задания функциональных зависимостей:

аналитический

графический

табличный

Табличный способ обычно возникает в результате эксперемента. 

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



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





φ(х)- аппроксимирующая функция.



Интерполяция (частный случай аппроксимации)

Если для табличной функции y=f(x), имеющей значение x0 f(x0) требуется построить аппроксимирующюю функцию (x) совпадающую в узлах с xi c заданной, то такой способ называется  интерполяцией

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

(x)=pn(x)=anxn+an-1xn-1+…+a0

В данном многочлене необходимо найти коэффициенты an ,an-1, …a0 , так как задачей является интерполирование, то определение коэффициентов необходимо выполнить из условия равенства:

Pn(xi)=yi  i=0,1,…n

 Для определения коэффициентов применяют интерполяционные многочлены специального вида, к ним относится и полином Лагранжа Ln(x).



                  ij

В точках отличных от узлов интерполяции полином Лагранжа в общем случае не совпадает с заданной функцией .



Задание

С помощью интерполяционного полинома Лагранжа вычислить  значение функции y в точке xc, узлы интерполяции расположены равномерно  с шагом  х=4,1 начиная с точки х0=1,3 даны значения функции y={-6.56,-3.77,-1.84,0.1,2.29,4.31,5.86,8.82,11.33,11.27}.



ГСА для данного метода





да

нет

нет

да

Начало

Ввод х0, h, xc, n

I=0

j  n

Ввод yi

xi = x0 + h*i

i = i+1

S = 0

i = 0

P = 1

j = 0



j = j+1

S  = S + yi*P

i = i +1

Вывод S, xc

Конец

i = j

i  n

i  n 















































































CLS                                                                           

DIM Y(9)                                                                      

DATA -6.56,-3.77,-1.84,0.1,2.29,4.31,5.86,8.82,11.33,11.27                    

X0 = 1.3: H = 4.1: N = 10: XC = 10                                            

FOR I = 0 TO N - 1                                                            

1 X(I) = X0 + H * I                                                           

READ Y(I)                                                                     

PRINT Y(I); X(I)                                                              

NEXT I                                                                        

S1 = 0: S2 = 0: S3 = 0: S4 = 0                                                

FOR I = 0 TO N - 1                                                            

2 S1 = S1 + X(I) ^ 2                                                          

S2 = S2 + X(I)                                                                

S3 = S3 + X(I) * Y(I)                                                         

S4 = S4 + Y(I)                                                                

NEXT I                                                                        

D = S1 * N - S2 ^ 2                                                           

D1 = S3 * N - S4 * S2                                                         

D0 = S1 * S4 - S3 * S2                                                        

A1 = D1 / D: A0 = D0 / D                                                      

YC = A1 * XC + A0                                                             

PRINT "A0="; A0, "A1="; A1, "YC="; YC                                         

FOR X = 0 TO 50 STEP 10                                                      

Y = A1 * X + A0                                                               

PRINT X, Y                                                                    

NEXT X                                                                        

END                                                                          



XC= 10

  Х               Y

 1.3          -6.56

 5.4          -3.77

 9.5          -1.84

 13.6          .1

 17.7          2.29

 21.8          4.31

 25.9          5.86

 30            8.82

 34.1          11.33

 38.2          11.27

S=-1.594203



АППРОКСИМАЦИЯ ФУНКЦИЕЙ. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ.

В инженерной деятельности часто возникает необходимость описать в виде функциональной зависимости связь между величинами, заданными таблично или в виде набора точек с координатами (xi,yi), i=0,1,2,...n, где n - общее количество точек. Как правило, эти табличные данные получены экспериментально и имеют погрешности. При аппроксимации желательно получить относительно простую функциональную зависимость (например, полином), которая позволила бы "сгладить" экспериментальные погрешности, получить промежуточные и экстраполяционные значения функций, изначально не содержащиеся в исходной табличной информации. 

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

Эта функциональная (аналитическая) зависимость должна с достаточной точностью соответствовать исходной табличной зависимости. Критерием точности или достаточно "хорошего" приближения могут служить несколько условий.

Обозначим через fi значение, вычисленное из функциональной зависимости для x=xi и сопоставляемое с yi.

Одно из условий согласования можно записать как 

S = (fi-yi)  min , 

т.е. сумма отклонений табличных и функциональных значений для одинаковых x=xi должна быть минимальной (метод средних). Отклонения могут иметь разные знаки, поэтому достаточная точность в ряде случаев не достигается.

Использование критерия     S = |fi-yi|  min , также не приемлемо, т.к. абсолютное значение не имеет производной в точке минимума.

Учитывая вышеизложенное, используют критерий наименьших квадратов, т.е. определяют такую функциональную зависимость, при которой
S =  (fi-yi)2 , (1)

обращается в минимум.

В качестве функциональной зависимости рассмотрим многочлен 

f(x)=C0 + C1X + C2X2+...+CMXM. (2)

Формула (1) примет вид S = ( C0 + C1Xi + C2Xi2+...+CMXiM - Yi ) 2



Условия минимума S можно записать, приравнивая нулю частные производные S по независимым переменным С0,С1,...СМ :

SC0 = 2  ( C0 + C1Xi + C2Xi2+...+CMXiM - Yi ) = 0 ,

SC1 = 2  ( C0 + C1Xi + C2Xi2+...+CMXiM - yi ) Xi = 0 ,(3)

SCM = 2  ( C0 + C1Xi + C2Xi2+...+CMXiM - Yi ) XiM = 0 ,

Тогда из (3) можно получить систему нормальных уравнений

C0  (N+1) + C1 Xi + C2Xi2 +...+ CM XiM = Yi ,

C0Xi + C1Xi2 + C2Xi3 +...+ CMXiM+1 = Yi Xi ,(4)

C0XiM + C1XiM+1 + C2XiM+2 +...+ CMXi2M = Yi XiM . 

Для определения коэффициентов Сi и, следовательно, искомой зависимости (2) необходимо вычислить суммы и решить систему уравнений (4). Матрица системы (4) называется матрицей Грама и является симметричной и положительно определенной. Эти полезные свойства используются при ее решении.

(N+1)

Xi

Xi2

...

XiM

Yi

Xi

Xi2

Xi3

...

XiM+1

Yi Xi

...

...

...

...

...

...

XiM

XiM+1

XiM+2

...

Xi2M

Yi XiM 

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

Задание


Найти коэффициенты прямой и определить значение функции y{-6.56,-3.77, -1.84,0.1,2.29,4.31,5.56,8.82,11.33,11.27},  x0=1.3 h=4.1, и определить интеграл заданной функции.



Программа

¦CLS                                                                           

¦XC = 10: X0 = 1.3: H = 4.1: N = 10                                            

¦DIM Y(9): DIM X(9)                                                            

¦DATA -6.56,-3.77,-1.84,0.1,2.29,4.31,5.86,8.82,11.33,11.27                   

¦FOR I = 0 TO N - 1                                                            

¦X = X0 + H * I:                                                               

¦X(I) = X                                                                     

¦READ Y(I)                                                                     

¦PRINT X(I), Y(I)                                                              

¦NEXT I                                                                        

¦S1 = 0: S2 = 0: S3 = 0: S4 = 0                                                

¦I = 0                                                                         

¦10 S1 = S1 + X(I) ^ 2:                                                        

¦S2 = S2 + X(I):                                                               

¦S3 = S3 + X(I) * Y(I):                                                        

¦S4 = S4 + Y(I)                                                                

¦I = I + 1                                                                     

¦IF I <= N - 1 THEN 10                                                         

¦D = S1 * N - S2 ^ 2:    

¦D1 = S3 * N - S2 * S4:                                                        

¦D0 = S1 * S4 - S2 * S3                                                        

¦A1 = D1 / D:                                                                  

¦A0 = D0 / D                                                                   

¦Y = A1 * XC + A0                                                              

¦PRINT TAB(2); "КОЭФФИЦИЕНТ ПРЯМОЙ В ТОЧКЕ A0="; A0,                           

¦PRINT TAB(2); "КОЭФФИЦИЕНТ ПРЯМОЙ В ТОЧКЕ A1="; A1,                           

¦PRINT TAB(2); "ЗНАЧЕНИЕ ФУНКЦИИ В ТОЧКЕ XC Y="; Y                             

¦FOR X = 10 TO 50 STEP 10                                                      

¦Y = A1 * X + AO                                                               

¦PRINT X, Y                                                                    

¦NEXT X                                                                        

¦FOR I = 1 TO N - 1                                                            

¦S = S + Y(I): NEXT I                                                          

¦D = H / 2 * (Y(0) + Y(N - 1) + 2 * S)                                         

¦PRINT "ЗНАЧЕНИЕ ИНТЕГРАЛА ПО МЕТОДУ ТРАПЕЦИИ D="; D 

Ответы

Х                Y

1.3          -6.56

 5.4          -3.77

 9.5          -1.84

 13.6          .1

 17.7          2.29

 21.8          4.31

 25.9          5.86

 30            8.82

 34.1          11.33

 38.2          11.27

 КОЭФФИЦИЕНТ ПРЯМОЙ В ТОЧКЕ A0=-6.709182

 КОЭФФИЦИЕНТ ПРЯМОЙ В ТОЧКЕ A1= .5007687

 ЗНАЧЕНИЕ ФУНКЦИИ В ТОЧКЕ XC Y=-1.701495

 10            5.007687

 20            10.01537

ЗНАЧЕНИЕ ИНТЕГРАЛА ПО МЕТОДУ ТРАПЕЦИИ D= 166.9725