Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ_тема_2.doc
Скачиваний:
7
Добавлен:
22.11.2019
Размер:
330.24 Кб
Скачать

Масштабирование переменных (данных)

Основная цель масштабирования добиться того, что бы в представляющей интерес области переменные имели одинаковые порядки модулей. Для масштабирования применяют линейные преобразования переменных, при этом переходят от переменных отражающих суть явления к переменным удобным для решения определенного класса задач. Используемая замена имеет следующий вид: X = D*Y здесь {Xi} – исходная переменная; {Yi} – преобразованная переменная; D – диагональная матрица, элементами которой служат характерные значения модулей соответствующих переменных.

Масштабирование диагональным преобразованием может приводить к потере точности. Ненадежно оно также в том случае, если при решении задач (например поиска экстремумов), модули переменных существенно меняются. В этом случае элементы матрицы dj пригодные для одной точки не годятся для другой. Пусть известен диапазон значений переменных aj  xj  bj , тогда новую переменную yj можно ввести по формуле:

Это соответствует линейному преобразованию: DY + c = X

Где D - диагональная матрица, у которой элементы:

Если имеются лишь грубые оценки для aj и bj, тем более отличающиеся на несколько порядков, то этот метод масштабирования применять нельзя. Кроме того, сама процедура масштабирования сильно влияет на вычисление вторых производных, снижая скорость сходимости оптимизирующих процедур.

Интерполяция и аппроксимация данных

Интерполяция – это нахождение промежуточных значений для зависимости представленной в отдельных точках. Интерполяционная формула сопоставляет с функцией y(x) заданной в точках xk , k = 0,… m функцию известного класса, зависящую от параметров: Y (x, a0, a1,…, an). Эти параметры выбираются таким образом, чтобы обе функции совпадали в узлах интерполяции: Y(xk) = y(xk) = yk. Самый простой в использовании полином, имеющий степень 1 создаёт многоугольный путь из отрезков прямых которые проходят через эти точки. Интерполяционная функция имеет вид:

, xk  x  xk+1

При использовании полиномов более высокой степени число узловых точек определяет степень полинома. Если число узловых точек например k, то на них можно построить полином k-1. Степень полинома n равна n = k-1.

Сформируем матрицу: Xj,i = (xj)i , при этом Xj,0 = 1

Если i=0,1,…,n и j=0,1,…,n то это матрица вида nn и коэффициенты полинома формально представляются в виде вектора: a = X –1y. Формула для самого полинома будет иметь вид: P(x) =  amxm , m = n, …, 0. Погрешность полиномиальной аппроксимации резко возрастает с ростом степени полинома, так что степень используемых полиномов обычно не превосходит 5.

Наиболее известна интерполяция полиномом Лагранжа:

Ещё одним методом является объединение фрагментов графиков, полиномов низкой степени и интерполирование между последовательными узлами.

Две части графика соединены в узле (xk+1, yk+1) и совокупность функций Sk(x) формирует кусочно-полиномиальную кривую, которая и определяет S(x). Математически можно построить такие кубические функции Sk(x), на каждом интервале (xk, xk+1), чтобы полученная в результате кривая y(x) = S(x) не имела бы острых углов, а её первая и вторые производные были бы непрерывны на всём интервале от [x0,xN].

Непрерывность первой производной S'(x) означает что S(x) не имеет острых углов. Непрерывность второй производной S'' (x) означает что радиус кривизны определён в каждой точке. Предположим что {(xk, yk)}Nk=0 − это N+1 точка, где a  x0  x1 <x2< … < xN = b. Функция S(x) называется кубическим сплайном, если существует N кубических полиномов следующего вида:

S(x) = Sk(x) = Sk,0 + Sk,1(x – x1) + Sk,2(x – x2)2 + Sk,3(x – x3)3

x[xk, xk+1 …], k = 0, …, N-1,

таких, что выполняются следующие 4 условия:

  1. S(xk) = yk , k = 0, … N

  2. Sk(xk+1) = Sk+1(xk+1), для всех k = 0, …N-2 − непрерывность

  3. S'k (xk+1) = S'k+1(xk+1), k = 0, …N-2 − гладкость

  4. S''k(xk+1) = S''k+1(xk+1)

Каждый полином имеет 4 коэффициента, так что всего их 4N. Заданные точки (узлы) интерполяции обеспечивают N+1 условие и каждое из свойств 2, 3 и 4 добавляют ещё N-1 условие, поэтому всего получается N+1+3(N-1)=4N-2 уравнений, которые можно использовать для нахождения коэффициентов сплайна. Нахватает двух уравнений или образуется две степени свободы, это ограничения в крайних точках. Поэтому кубический сплайн требует дополнительной стратегии для двух крайних точек. В связи с этим можно построить следующие типы сплайнов:

  1. смыкающийся сплайн: S'(a) = d0

S' (b) = dN

  1. естественный сплайн. Для него определяются нулевые вторые производные: S''(a) = S''(b) = 0 (сплайн со свободными концами)

  2. экстраполяционный сплайн, для него вторая производная на левом конце ищется по узлам x1 , x2. Производная на правом ищется по xN-1, xN

  3. Сплайн, заканчивающийся параболой, т.е. кубическая кривая на концах вырождается в параболу.

В MathCad имеется возможность линейной и кубической интерполяции сплайными.

Linear Interpolation f(x):=linterp(X,Y,x);

Cubic Spline Interpolation

S:=cspline(X,Y) − вектор коэффициентов

f(x):=interp(S,X,Y,x)