- •Г.Г КАШЕВАРОВА, Т.Б. ПЕРМЯКОВА
- •Предисловие
- •Введение
- •Общие сведения о математическом моделировании.
- •Численные методы
- •Элементы теории погрешности
- •Понятия мастера и надстройки
- •Глава 1. Основные понятия матричного исчисления. Матрицы в расчетах строительных объектов
- •1.1. Матрицы и векторы. Определения
- •1.2. Матрицы специального вида
- •1.3. Действия над матрицами
- •1.4. Нормы матрицы и вектора
- •1.5. Матрицы в задачах строительной механики
- •1.5.1. Матрицы влияния внутренних сил
- •1.5.2. Матричная форма расчета статически определимых ферм
- •1.5.3, Матричная форма метода сил
- •1.5.4. Матричная форма метода перемещений
- •1.6. Матрицы в расчетах инженерных сетей
- •1.7. Функции Excel для операций над матрицами
- •Категория: математические. Функции:
- •2.1. Системы линейных алгебраических уравнений
- •2.2.1. Метод Гаусса
- •2.2.2. Метод Гаусса для СЛАУ с ленточными матрицами
- •2.2.3. Метод прогонки
- •2.2.4. Метод (схема) Холецкого
- •2.3. Итерационные методы решения систем линейных алгебраических уравнений
- •2.3.1. Метод Якоби (простых итераций)
- •2.3.2. Метод Гаусса - Зейделя.
- •2.3.3. Условия сходимости итерационного процесса
- •2.5. Обусловленность задач и вычислений, или как узнать, что получены правильные ответы
- •2.6. Вычисление определителя
- •2.7. Вычисление обратной матрицы
- •2.8. Нахождение собственных значений и собственных векторов матриц
- •2.8.1. Вводные замечания
- •2.8.2. Методы развертывания вековых определителей
- •2.8.3. Итерационные методы определения максимального по модулю собственного значения
- •2.9.1. Реализация метода Гаусса средствами приложения Excel
- •Последовательность действий:
- •2.9.4. Реализация метода Зейделя средствами приложения Excel
- •Последовательность действий:
- •3.1. Отделение корней
- •3.2. Этап уточнения корня
- •3.2.1. Метод половинного деления (бисекций)
- •3.2.2.Метод хорд
- •3.2.3. Метод Ньютона (метод касательных)
- •3.2.4. Модифицированный метод Ньютона
- •3.3. Системы нелинейных уравнений
- •3.4. Реализация численных методов решения нелинейных уравнений средствами приложения Excel
- •3.4.1. Решение нелинейных уравнений
- •Последовательность действий
- •4.2.3. Интерполяционный полином Эрмита
- •4.2.4. Сплайн-интерполяция
- •Глава 4. Аппроксимация
- •4.1. Задача и способы аппроксимации
- •4.2. Интерполирование функций
- •4.2.1. Постановка задачи интерполирования
- •4.2.2. Интерполяционная формула Лагранжа
- •4.3. Среднеквадратичное приближение функций
- •4.3.1. Метод наименьших квадратов
- •4.3.4. Квадратичное (параболическое) приближение
- •4.3.4. Эмпирические формулы с двумя параметрами. Метод выравнивания
- •4.4. Решение задач аппроксимации с помощью электронных таблиц Excel
- •4.4.1. Построение линейной эмпирической формулы методом наименьших квадратов
- •Последовательность действий
- •Последовательность действий
- •5.1. Квадратурные формулы прямоугольников
- •5.2. Квадратурная формула трапеций
- •5.3. Квадратурная формула Симпсона
- •5.4. Реализация методов численного интегрирования средствами приложения Excel
- •Глава 6. Численные методы решения дифференциальных уравнений с начальными и краевыми условиями
- •6.1.1. Задачи Коши и краевые задачи
- •6.2.1.Классификация уравнений и типы задач
- •6.3. Численные методы решения задач Коши
- •6.3.1. Метод Эйлера
- •(геометрический метод решения задачи Коши)
- •6.4. Численные методы решения краевых задач
- •Разностная схема краевой задачи для обыкновенного дифференциального уравнения 2-го порядка
- •Конечно-разностная аппроксимация функций двух переменных
- •Сходимость метода конечных разностей
- •6.5. Вариационный подход к решению краевых задач
- •6.5.1. Основные понятия вариационного исчисления
- •6.5.2. Связь решения краевой задачи с нахождением минимума функционала
- •6.5.3. Метод Ритца
- •6.6.1. Решение задачи Коши методом Эйлера
- •Построение второй итерации
- •Последовательность действий.
- •Порядок построения графиков приближенных решений краевой задачи
- •Глава 7. Метод конечных элементов
- •7.1. Основные положения МКЭ
- •Построение расчетной модели
- •Аппроксимация искомой функции
- •Составление разрешающих уравнений
- •Решение системы линейных алгебраических уравнений
- •7.2.1. Классификация конечных элементов
- •Одномерный конечный элемент
- •Двухмерные конечные элементы.
- •элемента
- •Одномерный симплекс-элемент
- •Двухмерный треугольный симплекс-элемент
- •7.2.3. Интерполирование векторных величин
- •7.2.4. Разбиение области на конечные элементы
- •7.2.5 Нумерация узлов и элементов
- •7. 3. Основные соотношения МКЭ
- •7.3.1. Получение разрешающих уравнений на примере плоской задачи теории упругости
- •7.3.2. Примеры разрешающих уравнений в задачах расчета строительных объектов
- •7.4. Другие типы конечных элементов
- •7.4.1. Элементы Эрмита
- •7.5. Теоретическая и практическая сходимость МКЭ
- •7.6.1. Специализированные программные комплексы
- •7.6.2. Универсальные программные комплексы
- •8.1.1. Математическая модель задачи оптимизации
- •8.1. Общие сведения
- •8.1.2. Необходимые и достаточные условия экстремума функции
- •8.1.3. Классификация задач математического программирования
- •8.2. Постановка задачи оптимального проектирования
- •8.2.1. Определение входных и выходных параметров
- •8.2.2. Выбор целевой функции
- •8.2.3. Назначение ограничений
- •8.2.4. Нормирование управляемых и выходных параметров
- •8.2.5. Примеры постановок задач оптимального проектирования
- •8.3. Задачи линейного программирования
- •8.3.1. Общая постановка задачи ЛП
- •8.3.2. Геометрический смысл системы линейных неравенств с двумя неизвестными
- •8.3.4. Симплекс-метод решения задач линейного программирования
- •Задача об оптимальном плане выпуска продукции
- •Задача об оптимальном раскрое материалов (о минимизации отходов)
- •Задача о планировании смен на предприятии
- •Задача о покрытии местности при строительстве объектов
- •Транспортная задача
- •Задача о назначениях (проблема выбора)
- •8.3.6. Двойственные задачи в линейном программировании
- •8.4. Нелинейные задачи оптимизации
- •8.4.1. Выпуклые множества и выпуклые функции
- •8.4.2. Классификация численных методов решения нелинейных задач оптимизации
- •Основные этапы поиска экстремума
- •8.4.3. Численные методы одномерного поиска
- •Метод перебора или равномерного поиска
- •Метод дихотомии (или половинного деления)
- •Метод квадратичной интерполяции
- •Метод покоординатного спуска
- •Метод градиентного спуска
- •Метод наискорейшего спуска
- •Метод сопряженных градиентов
- •Метод Ньютона
- •Метод штрафных функций
- •8.5. Решение задач оптимизации с помощью электронных таблиц Excel
- •Литература
- •Оглавление
- •Численные методы решения задач строительства на ЭВМ
Из табл. 8.5 получаем х* » 1,59 и Zm « Z(l,59) = -6,04.
Заметим, что если воспользоваться формулой (8.98), то число шагов можно определить заранее. В нашем случае п >4,8, т.е. и=5 и отпадает необходимость в 4-м столбце таблицы.
Метод квадратичной интерполяции
В данном методе используется аппроксимация функции. Сущность этого метода проще показать в виде алгоритма.
Алгоритм квадратичной интерполяции.
Этап 1. Вычисление Z(x)в начальной точке х0.
Этап 2. Назначение шага h. Если Z(xQ+h) < Z(x0), то осуществляется переход к этапу 3. В противном случае принимается h=-h и выполняется этап 3. Этапы 1 и 2 следует рассматривать в качестве предварительных для выбора направления поиска. Следующие этапы выполняются многократно.
Этап 3. Вычисление xk+i = хк+ h и Z(**+L).
Этап 4. Если Z(xk+у) <Z(x0, то шаг h удваивается и выполняется этап 3. Если Z(xk+i)> ZfxQ, то JC*+I обозначается через хт, хк - через хт.\ и т. д., уменьшается h наполовину и этап 3 выполняется последний раз.
Этап 5. Исключение из полученных четырех равноотстоящих значений xnl+h хт, xm.i , хт_2 либо x„l+i, либо хт_2 >в зависимости от того, какая из этих точек находится дальше от точки х*, в которой функция Z(x) имеет наименьшее значение. Пусть ха, хь , хс - оставшиеся три точки, где
хс - центральная, 2Lxa = xc- h w x b =xc+h.
Этап 6. Проведение квадратичной интерполяции для определения координат точки
*h[Z(xa) - Z ( x b)]
х = х г + -------- |
L- |
------ |
(8.99) |
с2[Z (xa) - 2 Z ( x c) + Z (xb)]
8.4.4.Безусловная минимизация функций многих
переменных
Среди прямых методов многомерного поиска особое место занимает симплекс-метод, предназначенный для решения задач
линейного программирования, который был рассмотрен в подразделе 8.3.4. Метод сканирования (метод сеток), описанный выше, также можно отнести к методам решения многомерных задач оптимизации, однако чаще всего его применяют для задач с
двумя или тремя переменными. Кроме того, эти методы используют информацию об ограничениях задачи, т.е. относятся к методам решения задач математического программирования.
Рассмотрим методы, в которых выражения ограничений не используются непосредственно, т.е. речь идет о методах безусловной минимизации. Но эти методы, как мы увидим далее, могут применяться и для решения задач с ограничениями.
Метод покоординатного спуска
Этот метод [3, 19] относится к методам нулевого порядка, т.е. он позволяет получать решение задачи на основе использования только значений целевой функции.
Метод состоит в том, что выбирается какая-либо начальная точка из допустимого множества значений переменных и осуществляется изменение только одной переменной (например, х х)
в сторону уменьшения (увеличения) Z ( X ) , пока это возможно, затем переходят к этой же процедуре по другой переменной (х2) и т.д. Такие действия приводят обычно к локальному экстремуму. Для нахождения глобального экстремума часто применяют метод случайного поиска, т. е, случайно выбирают новую начальную точку и осуществляют покоординатный спуск, затем сравнивают полученные решения; если новое решение совпадает с полученным ранее, то считают, что получено приближенное решение задачи; если новое решение не совпадает с полученным ранее, то снова случайным образом выбирают начальную точку и применяют покоординатный спуск. Затем сравнивают полученные решения. Так поступают несколько раз: если лучшее решение повторяется, то процесс заканчивается, и лучшее повторяющееся решение
принимается за решение задачи.
ёЗамечание! Для минимизации по каждой переменной могут использоваться любые известные методы одномерного поиска.
Обозначим через Q область ограничений (8.2) - (8.3) и опишем по шагам этот алгоритм, предполагая, что отыскивается
минимум Z( X) при J GQ.
Н Алгоритм метода покоординатного спуска
1- й шаг. Из области Q выбирают некоторую точку М0 (х]0, ...,хпо) вычисляют Z(xI0, ...,хпо)= Z0 и переходят ко 2-му шагу.
2- й шаг. Выбирают к-ю координату, по которой буде осуществляться спуск, и задают шаг hj. Обычно для определенности берут 1-ю координату, т. е. полагают к = 1 и задают шаг hi для продвижения вдоль этой координаты. Переходят к 3-му шагу.
3- |
й шаг. Вычисляют х\ = хк0 + hk и проверяют, принадлежит ли |
||
х\ области Q. Если х\ е Q , то переходят к 4-му шагу. Если х\ gQ, то |
|||
переходят к 5-му шагу. |
|
||
4-й |
шаг. |
Вычисляют |
2 1{х10,---,хк0, х \ , х к^ 0,---,хм )к |
сравнивают это значение с Z0. Есл и Z\ < Z о, то переходят к 3-му шагу. |
|||
Если Zi>Z0, то переходят к 5-му шагу. |
|
||
5- |
й шаг. Вычисляют х\ |
= хк0 —hk и проверяют, принадлежит л |
х\ области Q. При зацикливании, т. е. при возвращении к прежней точке, переходят к 6-му шагу. Если х\ е £2 и нет зацикливания, то переходят к 4-му шагу при отрицательном шаге hk. Если х\ не принадлежит области
£2, то переходят к 6-му шагу.
6- й шаг. Переходят ко 2-му шагу, изменив к. Если при любом продвижение невозможно, т. е. при любом к действия приводят к 6-му шагу, то покоординатный спуск заканчивается, и последнее значение координатX,, хъ ...Хп Даетминимум (локальный или глобальный).
С помощью метода покоординатного спуска обычно решение получается быстрее, чем с помощью метода сканирования.
Известны и другие методы прямого многомерного поиска. Среди них можно выделить метод деформируемого многогранника Нелдера и Мида [3,20], который является модификацией симплекс-метода; метод Пауэлла, являющегося развитием метода покоординатного спуска, а также методы случайного поиска [3]. Указанные методы наиболее полно отражают различные подходы к построению алгоритмов прямых методов. Важность методов нулевого порядка несомненна, поскольку в ряде практических задач оптимизации информация о значениях целевой функции является единственной надежной
информацией, которой располагает исследователь. С другой стороны, при использовании даже самых эффективных методов нулевого порядка, для получения решения иногда требуется чрезвычайно большое количество вычислений значений функции. Это обстоятельство, наряду с совершенно естественным стремлением реализовать возможности нахождения стационарных точек (то есть точек, удовлетворяющих необходимому условию экстремума), приводит к необходимости рассмотрения методов, основанных на использовании градиента функции.
Метод градиентного спуска
Напомним, что градиент скалярной функции направлен в сторону наискорейшего увеличения функции (т.е. наискорейшего
подъема), а вектор, противоположный этому градиенту (отрицательный градиент или антиградиент), направлен в сторону
наискорейшего уменьшения функции (наискорейшего спуска).
Далее везде предполагаем, что целевая функция и ее первые и вторые производные по всем переменным существуют и непрерывны, и что компоненты градиента могут быть записаны в аналитическом виде или с достаточно высокой точностью вычислены при помощи численных методов.
В основе простейшего градиентного метода [2, 3, 19]лежит формула
Х ш = X k + h V Z ( X k), |
(8.100) |
где h - величина шага; VZ(X*) - единичный вектор направления
поиска на к -м шаге.
При поиске максимума целевой функции следует двигаться в направлении градиента функции (формула 8.100), а при поиске минимума - в направлении, противоположном градиенту (антиградиента), т.е.
Х ш = Х к - К Ч г ( Х к ) . |
(8.101) |
Если функция Z ( X) дважды дифференцируема, имеет ограниченный экстремум, то для нее градиентный метод сходится.
Способ выбора шага, направления поиска или того и другого одновременно определяет сущность метода.
В случае, если шаг h принимается постоянным, но малым, сходимость градиентного метода будет медленной. Если шаг выбрать большим, то сходимости может не быть.
Поэтому иногда выбирают шаг, регулярно уменьшающийся и
стремящийся к нулю, например К или величину шага hk = — :
к
вычисляют путем решения задачи одномерной минимизации целевой функции по h вдоль антиградиентного направления. Такой градиентный метод носит название метода наискорейшего спуска (метод Коши).
■ Пример 8.10. Найти минимум функции Z (X) = 2xf + 5х\ + Ъх] с помощью градиентного метода.
Выбираем в качестве исходной точку Хо = (3; 1; 1), шаг Л^О, 16 и
проведем первую итерацию. |
|
|
Вычислим |
функцию Z (X о) = 26, |
градиент |
VZ(X ) = (4х, ;10х2;6JC3 ). |
|
|
Вточке X о направление V Z ( X о)=(4*3; 10-1; 6-1)=(12; 10; 6). |
||
Тогда |
Х\ =Хо —AVZ(^o) =(3;1;1)-0,16*(12;10;6), |
т.е. |
х', = 3 -12 0,16 = 1,08; х\ =1 -10• 0,16 = -0,6; xj =1-6-0,16 = 0,04;
Z(Xi) = 4,15.
Для второй итерации имеем
V Z ( X I) =(4-1,08; 10-(—0,6); 6-0,04)=(4,32; -Х>\ 0,24), h2 = ^ = 0,08.
Тогда
Х 2 = Х, - 0,08(4,32;-6;0,24) = (1,08;-0,6;0,04) - (0,36;-0,48;0,019).