ИНФОРМАТИКА Численные методы. Аппроксимация Интерполяция Графическое представление аппроксимации y f (x) y y (x) 0 x Метод наименьших квадратов N N 2 Q [ (( xi ) f ( xi )] min i 1 2 i i 1 Метод Крамера Пример алгоритма аппроксимации экспериментальных данных методом наименьших квадратов N DET2=D(1,1)*C(2)-D(1,2)*C(1) x(N), y(N) A(1)=DET1/DET D(2,2), A(2), C(2) A(2)=DET2/DET I=1,N x(i), y(i) A(1), A(2) X Y=A(1) + A(2)*x D(1,2)=0 x, y D(2,2)=0 Q$ C(1)=0 C(2)=0 Q$=”Y” I=1,N КОНЕЦ D(1,2)=D(1,2)+x(i) D(2,2)=D(2,2)+x(i)^2 C(1)=C(1)+y(i) C(2)=C(2)+x(i)*y(i) D(1,1)=N D(2,1)=D(1,2) DET=D(1,1)*D(2,2)-D(1,2)^2 DET1=C(1)*D(2,2) – C(2)*D(1,2) 1 Интерполяция данных y y0 y0 f ( x0 ) y1 f ( x1 ) y1 yi f ( xi ) yi y n f ( xn ) y0 0 x0 x1 xi xn x y0 f ( x0 ) x0 , x1,..., , y1 f ( x1 ) xn ,…, - узлы yn f ( xn ) интерполяции. . P( x0 ) f ( x0 ), P( x1 ) f ( x1 ),...,P( xn ) f ( xn ) P( x ) A0 A1 ( x x0 ) A2 ( x x0 )( x x1 ) ... An ( x x0 )( x x1 )...( x xn1 ) y0 A0 y1 A0 A1 ( x1 x0 ) y A A ( x x ) A ( x x )( x x ) 2 0 1 2 0 2 2 0 2 1 ........................................................................... y A A ( x x ) A ( x x )( x x ) ... A ( x x )( x x )...( x x ) n 0 1 n 0 2 n 0 n 1 n n 0 n 1 n n 1 y A y A A h y A 2hA 2!2hA ........................................................................... y A nhA n( n 1 )2hA n( n 1 )( n 2 )3hA 0 0 1 0 2 0 1 n 0 1 1 2 2 3 ... n! nhAn ЛИНЕЙНАЯ ИНТЕРПОЛЯЦИЯ y0 A0 y1 A0 A1h y1 y0 A1 h y1 y0 P( x ) y0 ( x x0 ) h Нелинейная интерполяция (квадратичной интерполяция) y0 f ( x0 ) y1 f ( x0 h ) y2 f ( x0 2h ) y1 y0 y2 2 y1 y0 f ( x ) y0 ( x x0 ) ( x x0 )( x ( x0 h )) 2 h 2h h x1 x0 x2 x1 x0 x x0 2h Кусочно-линейное описание контуров обувной детали y A i (xi ; yi ) A (x ; y ) 3 3 3 A (x ; y ) 2 2 2 A (x ; y ) 1 1 An (xn ; yn ) 1 0 A (x ; y ) 1 1 1 Интерполяция полиномом Лагранжа x xi Pn ( x ) f i i 0 j 0 x i x j n n j i n Pn ( x ) A i f i i 0 n (x x j ) Ai j 0 n ;i j (x i x j ) j 0 Коэффициент полинома находится как отношение произведений отклонений точки х, не принадлежащей узлу, от всех узлов (исключая i-й) и произведения отклонений i-го узла от всех остальных узлов. При создании алгоритма расчета по формуле Лагранжа необходимо формировать 2 цикла: по i – внешний, по j – внутренний. Во внешнем цикле формируется сумматор (вычисляется сумма произведений коэффициентов полинома и значений функции). Во внутреннем цикле формируются интеграторы, начальные значения их устанавливаются во внешнем цикле. Интерполяция полиномом Ньютона Pn(x) = A0 + A1*(x-x0) + A2*(x-x0)*(x-x1) + …+ An*(x-x0)*(x-x1)*…*(x-xn-1) Неизвестные коэффициенты Ai определяются из условий Лагранжа: Pn(xi) = fi Первый интерполяционный полином для интерполяции вперед: q(q 1)2 y 0 q (q 1)...(q n 1)n y 0 Pn ( x ) y 0 qy 0 ... 2! n! x* x0 q h где h – шаг интерполяции. Второй интерполяционный полином Ньютона для интерполяции назад: Pn ( x ) y n qy n 1 где q q(q 1)...(q n 1)n y 0 q(q 1)2 y n 2 ... 2! n! x * xn h h – шаг интерполяции. Конечные разности i-го порядка: y0 = y1-y0 y1 = y2-y1 … yn-1 = yn – yn-1 y20 = y1-y0 y21 = y2-y1 Первые разности или конечные разности первого порядка конечные разности 2-го порядка Таблица конечных разностей: X y y 2y x0 y0 y1-y0 x1 y1 y2-y1 y1-y0 2y12y0 y2-y1 2y22y1 x2 y2 y3-y2 x3 y3 y4-y3 y3-y2 3y 4y 3y23y1 3 НАЧАЛО Вариант блок-схемы интерполяции полиномом Лагранжа N 1 1 A=P1/P2 X(N), Y(N) S = S + A*y(i) I=1, N X1, S X(i), Y(i) B$ X1 B$=”y” S=0 КОНЕЦ I=1, N P1=1: P2=1 J=1, N I<>J P1=P1*(x1 – x(j)) P2=P2*(x(i) – x(j)) 3 1 1 2 2