Материал: Пособие с Алгоритмами

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
    1. Алгоритм аппроксимации функции методом наименьших квадратов

Схема алгоритма, аппроксимации функции по методу наименьших квадратов (МНК) приведена на рис. 2.4-1.

МНК[3] является одним из наиболее распространенных методов аппроксимации функции. В этом методе параметры a0, a1, ..., an определяются из условия минимума суммы квадратов отклонений значений аппроксимирующей функции от табличных данных.

Вектор коэффициентов aT определяют из условия минимизации

где (n+1) – количество узловых точек.

φ(x)=a0φ0(x)+a1φ1(x)+...+amφm(x) – аппроксимирующая функция степениm

Для получения искомых значений параметров a0, a1,…amследует составить и решить систему (m+1) линейных уравнений

В качестве меры уклонения заданных значений функции y0, y1, ..., yn от многочлена степени m -, принимается величина

Поскольку МНК требует решения системы линейных уравнений (СЛУ), на рис. 2.4-2 приведена схема алгоритма решения СЛУ методом Гаусса [1]. Метод сводится к последовательному исключению из всех уравнений, начиная со второго, затем - начиная с третьего и т.д. Это позволяет получить эквивалентную систему, имеющую треугольную матрицу (прямой ход), а затем, действуя в противоположной последовательности, получают решение (обратный ход).

Рис. 2.3-1.Алгоритм метода наименьших квадратов

Рис. 2.3-2. Формирование матрицы Грама

Рис. 2.3-3. Вычисление элемента матрицы Грама

Рис. 2.3-4. Вычисление элемента правой части системы нормальных уравнений

Рис. 2.3-5.Решение системы линейных уравнений методом Гаусса

Рис. 2.3-6.Вычисление значения аппроксимирующей функции в заданных точках

Рис. 2.3-7. Вычисление невязки

    1. Алгоритмы методов численного интегрирования

В основу всех методов численного интегрирования положена замена подынтегральной функцию f(x) приближенной функцией, которая может быть проинтегрирована в аналитическим виде. В качестве такой функции обычно используют полином Рn(х) с узлами интерполяции в точках х0, х1, …,хn. Для получения простых формул на элементарных отрезках интегрирования используют полиномы нулевой, первой и второй степени и соответственно получают формулы численного интегрирования: прямоугольников, трапеций и Симпсона.

Во всех алгоритмах оценка погрешности проводится с использованием метода двойного просчета [3], который основан на двукратном вычислении значения интеграла вначале с шагом h(где h=(b-a)/n), а затем с шагом h/2. Значения интегралов Ihи Ih/2 могут быть применены для оценки погрешности интегрирования по формуле Рунге:

где: k - порядок точности метода.

      1. Метод средних прямоугольников

Схема алгоритма процедуры для вычисления определенного интеграла методом средних прямоугольников представлена на рис. 2.4-1. Эта схема требует дополнения процедуры-функции f(x), в которой вычисляется значение подынтегральной функции.

Алгоритм метода основан на замене подынтегральной функции f(x) в пределах элементарного отрезка [xi;xi+1] интерполяционным многочленом нулевой степени, равным значению функции в середине отрезка [3]. Вычисление интеграла проводится с использованием формулы:

Оценка погрешности проводится с использованием метода двойного просчета, где в формуле Рунге k=2.

Рис. 2.4-1. Метод средних прямоугольников

      1. Метод трапеций

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

Рис. 2.4-2. Алгоритм метода трапеций

Алгоритм метода основан на замене подынтегральной функции f(x) в пределах элементарного отрезка [xi;xi+1] интерполяционным многочленом первой степени[3]. Вычисление интеграла проводится с использованием формулы:

Оценка погрешности проводится с использованием метода двойного просчета, где формуле Рунге k=2.

      1. Метод Симпсона

Схема алгоритма метода Симпсона, представленная на рис. 2.4-3, должна быть дополнена процедурой-функцией f(x), в которой вычисляется значение подынтегральной функции.

Рис. 2.4-3. Алгоритм метода Симпсона

Алгоритм метода Симпсона основан на замене подынтегральной функции f(x) в пределах двух элементарных отрезков [xi;xi+2] интерполяционным многочленом второй степени[3]. Количество отрезков должно быть четным (n=2m). Вычисление интеграла проводится с использованием формулы:

Оценка погрешности проводится с использованием метода двойного просчета, где формуле Рунге k=4.

    1. Алгоритмы методов решения обыкновенных дифференциальных уравнений

Схема алгоритма решения обыкновенных дифференциальных уравнений (ОДУ) методами Рунге-Куттыс заданной точностью представлена на рис. 2.5-1.

Рис.2.5-1. Алгоритм решения ОДУ методами Рунге-Кутты

В зависимости от порядка метода схема алгоритма дополняется соответствующей процедурой, в которой производится вычисление функции y(xi), по формулам соответствующим порядку метода Рунге-Кутты (рис.2.5-2).

Рис.2.5-2. Решение ОДУ методами Рунге-Кутты с постоянным шагом

Заданная погрешность обеспечивается дополнением алгоритмов решения методом двойного просчета, в котором оценка погрешности производится по формуле Рунге:

где p – порядок метода Рунге-Кутты.

Если условие выполняется, то шаг для следующей точки выбирается равным величине h, иначе шаг уменьшается вдвое и продолжается уточнение yiв точке хi.

    1. Алгоритмы методов одномерной оптимизации

      1. Метод дихотомии

Схема алгоритм метода дихотомии, представленная на рис. 2.6-1, требует дополнения процедуры-функции f(x), в которой вычисляется значение целевой функции.

Рис.2.6-1. Алгоритм метода дихотомии

В методе дихотомии используется функция f(x), унимодальная на отрезке [a;b][3].На отрезке [a0;b0], где a0=a, аb0 = b, выбираются две точки симметричные относительно середины отрезка:

где d - параметр метода, величина которого (0<d<e/2.).

Вычислим и сравним значения функций f(a1) и f(b1). В силу унимодальности функции можно провести сокращение отрезка неопределенности по следующему правилу:

Еслиf(a1) £f(b1), то x*Î[a0;b1] ;

Если f(a1) >f(b1), то x*Î[a1;b0].

Сокращение отрезка проводятся до тех пор, пока не выполнится неравенствоΔn=|bn-an|ε.

      1. Метод золотого сечения

Схема алгоритма метода золотого сечения, представленная на рис. 2.6-2, требует дополнения процедуры-функции f(x), в которой вычисляется значение целевой функции.

Рис.2.6-2. Алгоритм метода золотого сечения

В методе дихотомии используется функция f(x), унимодальная на отрезке [a;b] [3].В основу метода положено разбиение отрезка неопределенности [a;b] в соотношении золотого сечения:

или ,

где k1=0.382, а k2=0.618.

Сравнение значений функции в точках х1 и х2 позволяет, в силу унимодальности функции f(x), отбросить ту часть отрезка, где заведомо нет точки минимума. Известно, что и точка х1и точка х2дваждыосуществляет золотое сечение на отрезке[a;b]. Это приводит к тому, что значение целевой функции на каждой итерации (кроме первой) вычисляется один раз.

После каждой итерации длина отрезка неопределенности сокращается в 1.618 раза. Сокращение отрезка проводятся до тех пор, пока не выполнится неравенствоΔn=|bn-an|ε.

      1. Метод средней точки

Схема алгоритма метода средней точки, представленная на рис. 2.6-3, требует дополнения процедуры-функции f(x), в которой вычисляется значение целевой функции.

Рис. 2.6-3. Алгоритм метода средней точки

Алгоритм метода средней точки [2] основан на сокращении длины текущего отрезка неопределенности [a;b], путем отбрасывания той половины отрезка, которая не содержит точки минимума. В основу метода положено основное свойство унимодальности функции, то есть, для того чтобы на отрезке [a;b] существовал минимум, необходимо, чтобы первая производная на нем была неубывающей. Выбрав середину текущего отрезка c=(ai+bi)/2), принимается решение: если , то в следствии унимодальности функции, точка минимума не может лежать левее точки с, переопределяется левая граница отрезка(ai+1), а если , то минимум не может лежать правее точки с и переопределяется правая граница отрезка (bi+1=c). В случае если за точку минимума принимают значение с.

Сокращение отрезка проводятся до тех пор, пока не выполнится неравенствоΔn=|bn-an|ε.

После каждой итерации длина отрезка неопределенности сокращается в 2 раза, однако метод имеет существенный недостаток –необходимость вычисление производной от целевой функции.

    1. Алгоритмы методов многомерной оптимизации

Итерационные методы, применяемые для решения задач минимизации функции нескольких переменных, относятся к классу методов спуска[3]. В них каждая итерация(k) приводит к уменьшению значения целевой функции: Q(xk+1,yk+1)<Q(xk,yk), для всех k³0.

В качестве начальной точка (x0, y0)выбирается точка, принадлежащая области допустимых значений функции.

Поскольку направление спуска совпадает с направлением вектора антиградиента, то координаты очередной точки траектории спуска вычисляются по формулам:

где lk - шаг спуска. Способ задания шага спуска lk определяется конкретным методом.

Итерации повторяются до тех пор пока не выполняется условие окончания цикла:

Схема алгоритма метода градиентного спуска, представленная на рис. 2.7-1, требует дополнения следующих процедур-функций:

  • Q(x,y) – целевая функции;

  • g1(x,y) – частная производная по х;

  • g2(x,y)– частная производная по y.

Источник: https://studfile.net/preview/16570289/