Cтраница 4
На каждом шаге интегрирования по формулам Рунге - Кутта четвертого порядка необходимо четыре раза вычислять правую часть дифференциального уравнения. Это приведет к увеличению времени счета, однако компенсируется более высокой точностью формулы, в силу чего интегрирование можно вести с большим шагом. При использовании вычислительных машин выбор величины шага интегрирования производится автоматически в процессе интегрирования. Изменение шага обычно производится по результатам сравнения решений, получаемых на некотором интервале интегрированием с целым и половинным шагом. Если результаты этих двух вычислений совпадают с заданной точностью, то шаг для дальнейшего интегрирования остается прежним или увеличивается, в противном случае уменьшается. [46]
Трудности численного решения этой задачи связаны с наличием растущего положительного корня у линеаризированной системы. Положительный корень характерен для кинетических уравнений, описывающих взрывные процессы. Наличие растущего положительного корня затрудняет оценки точности решения и выбора величины шага интегрирования, что было проиллюстрировано на примере модельной одномерной линейной системы. [47]
В подавляющем большинстве методы нелинейного программирования могут быть охарактеризованы как многошаговые методы или методы последовательного улучшения исходного ( или начального) решения. Однако в отличие от симплексного метода в линейном программировании, являющегося также многошаговым методом с ограниченным числом шагов, в задачах нелинейного программирования обычно заранее нельзя сказать, какое наибольшее число шагов гарантирует нахождение оптимума с заданной степенью точности. Более того, если в симплексном методе величина каждого шага строго определена, в методах, используемых для решения задач нелинейного программирования, выбор величины шага представляет собой серьезную проблему, от успешного решения которой во многом зависит эффективность применения того или иного метода. [48]
В подавляющем большинстве методы нелинейного программирования могут быть охарактеризованы как многошаговые методы пли методы последовательного улучшения исходного ( или начального) решения. Однако в отличие от симплексного метода в линейном программировании, являющегося также многошаговым методом с ограниченным числом шагов, в задачах нелинейного программирования обычно заранее нельзя сказать, какое наибольшее число шагов гарантирует нахождение оптимума с заданной степенью точности. Более того, если в симплексном методе величина каждого шага строго определена, в методах, используемых для решения задач нелинейного программирования, выбор величины шага представляет собой серьезную проблему, от успешного решения которой во многом зависит эффективность применения того или иного метода. Разнообразие методов решения задач нелинейного программирования как раз и объясняется стремлением найти оптимальное решение за наименьшее число шагов, чтобы избежать необходимость многократного вычисления значений целевой функции. [49]
Выбор максимальной величины шага обеспечивает их минимальное число в процессе поиска. Однако это не означает, что время поиска на ЭВМ также минимально. С уменьшением числа шагов ( итераций) возрастает время, необходимое для определения величины шага на каждой итерации. Поэтому эффективный подход к выбору величины шага должен быть индивидуальным в зависимости от специфики решаемой задачи. Тем не менее опыт оптимального проектирования на ЭВМ позволяет дать следующие общие рекомендации. Вдали от оптимума и границ допустимой области целесообразно вести крупношаговый поиск с максимальной величиной шага. Вблизи оптимума или границ допустимой области следует переходить на мелкошаговый поиск с шагом, пропорциональным модулю градиента Я0 или постоянным. [50]