Главная » Просмотр файлов » Шестаков В.С. Расчет на ЭВМ нефтегазового оборудования. Учебное пособие для МНГ-2015

Шестаков В.С. Расчет на ЭВМ нефтегазового оборудования. Учебное пособие для МНГ-2015 (811778), страница 34

Файл №811778 Шестаков В.С. Расчет на ЭВМ нефтегазового оборудования. Учебное пособие для МНГ-2015 (Шестаков В.С. Расчет на ЭВМ нефтегазового оборудования. Учебное пособие для МНГ-2015) 34 страницаШестаков В.С. Расчет на ЭВМ нефтегазового оборудования. Учебное пособие для МНГ-2015 (811778) страница 342020-09-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

5.9):1) устанавливаются границы изменения всех переменных[Хmin i, Xmax i];2) принимаются значения начальных шагов изменения переменных dXi в относительных единицах (можно задать 0.05 от задаваемогоинтервала изменения переменной);3) задаются начальной точкой поиска Хнi;4) вычисляется значение функции в начальной точкеy = f(Xн1,Xн2,...,Xнi);5) изменяется первая переменная на шаг x1 = x1 + dX1, а значения остальных остаются неизменными и вновь вычисляется значениефункции y=f(x1,x2,...,xi);6) сравнивается последнее значение функции с предыдущим,если происходит "улучшение" функции, то продолжают изменять переменную x1 в том же направлении.

Если сразу же происходит "ухудшение" функции, то изменяют x1 в другом направлении194x1 = x1 - dX1;7) изменение переменной осуществляется до тех пор, покафункция не начнет "ухудшаться", после чего выполняется возврат в"лучшую" найденную точку по переменной x1;8) из найденной точки x1 организуется аналогичным образомизменение переменной x2, а после нахождения лучшего значения повторой переменной изменение поочередно всех остальных;9) после изменения всех остальных переменных уменьшаютсязначения шагов изменения переменных (обычно в два раза) и повторяются пункты 7..9 до достижения заданной точности. Для практического применения при реализации в программе можно задавать определенное число циклов по уменьшению шага.

Так, при задании 6 циклов будет достигнута точность 0.16 % от заданного диапазона изменения переменной, что вполне достаточно для инженерных расчетов.х2Х2maxХ2нХ2minХ1minх1Х1нХ1maxРис. 5.9. Иллюстрация метода многомерной поисковойоптимизации покоординатного спускаДостоинствами метода можно считать существенное уменьшение требуемого числа вычислений по сравнению с полным перебором.К недостаткам метода следует отнести то, что в результате оптимизации может быть найден не глобальный, а локальныйоптимум.Рассмотренный алгоритм достаточно сложен для реализации его ввиде программы для ЭВМ, поэтому его не программируют каждый раззаново, а после первого программирования оформляют в виде подпро195граммы и используют для других задач, вызывая подпрограмму внужном месте.

Для отладки программы можно рекомендовать использовать функцию, оптимальное решение которой заранее известно, например, минимальное значение функции Y=10+(x1-5)2+(x2-3)2 будетравно 10 при значении x1=5 и x2=3.Пример программы для этой функции с выводом на лист «Покоорд» результатов будет иметь следующий вид:Option ExplicitDim A0, A1, A2, IvSub Пример_оптимизации() ‘Основная процедураDim Xmin(10) As Single, Xmax(10) As Single, dx(10) As SingleDim Xo(10) As Single, Xн(10) As Single, Yo As Single, NNCall Ввод (Xmin, Xmax, Xн)Iv = 17‘Задание начальной строки для выводаCall opt_pok_spuska(2, Xн, Xmin, Xmax, Xo, Yo, NN)Worksheets("Покоорд").Range("G12") = Xo(1) ‘Вывод оптимальногоWorksheets("Покоорд").Range("G13") = Xo(2) ‘решенияWorksheets("Покоорд").Range("G14") = YoWorksheets("Покоорд").Range("G15") = NNEnd SubSub Ввод (Xmin, Xmax, Xн)With Worksheets("Покоорд")A0 = .Range("G4"): A1 = .Range("G5"): A2 = .Range("G6")Xmin(1) = .Range("F8"): Xmin(2) = .Range("G8")Xmax(1) = .Range("F9"): Xmax(2) = .Range("G9")Xн(1) = .Range("F10"): Xн(2) = .Range("G10")End WithEnd SubFunction Fy(X() As Single)Dim YY = A0 + (X(1) - A1) ^ 2 + (X(2) - A2) ^ 2Worksheets("Покоорд").Cells(Iv, 1) = X(1)Worksheets("Покоорд").Cells(Iv, 2) = X(2)Worksheets("Покоорд").Cells(Iv, 3) = YIv = Iv + 1 : Fy = YEnd FunctionSub opt_pok_spuska(N As Integer, Xн() As Single, Xmin() As Single, Xmax() AsSingle, X() As Single, Yo As Single, NN)' Подпрограмма оптимизации методом покоординатного спуска' Входные данные: N - количество переменных оптимизации;' Хн - массив с начальными значениями переменных;' Хmin- массив с минимально допустимыми значениями переменных;196' Хmax- массив с максимально допустимыми значениями переменных;' Выходные данные:' Х - массив с оптимальными значениями переменных;' Yо - наилучшее значение функции после оптимизации;' Целевая функция должная быть оформлена подпрограммой функцией' Function FY(x), где Х - массив со значениями переменных.Dim i, j, k1 As Integer, dx(10) As SingleDim Y As Single, B As BooleanYo = 1E+31For i = 1 To Ndx(i) = (Xmax(i) - Xmin(i)) / 20 'Начальный шаг изменения переменнойNext iNN = 1'Переменная для выдачи числа вычислений функцииFor i = 1 To NX(i) = Xн(i)'Занесение в массив Х начальных значенийNext iY = Fy(X)'Вызов подпрограммы расчета функцииj=1'Переменная для цикла оптимизации (уменьшение шага)Do While j <= 7 'Начало цикла оптимизацииFor i = 1 To N'Цикл поочередного изменения всех переменныхB = Truek1 = 0'Переменная для возврата в "лучшую" точкуWhile B'Цикл изменение при увеличении переменнойk1 = k1 + 1If Y < Yo Then Yo = YX(i) = X(i) + dx(i) 'Изменение переменныхIf X(i) > Xmax(i) ThenX(i) = Xmax(i)B = False'Выход из цикла при достижении границыEnd IfNN = NN + 1Y = Fy(X)'Вызов подпрограммы расчета функцииIf Y > Yo ThenB = FalseX(i) = X(i) - dx(i) 'Возврат в лучшую точкуEnd IfWend' Завершение цикла while b doB = TrueWhile B And (k1 <= 1) 'Цикл при уменьшении переменнойIf Y < Yo Then Yo = YX(i) = X(i) - dx(i)'Изменение переменныхIf X(i) < Xmin(i) ThenX(i) = Xmin(i)197B = FalseEnd IfNN = NN + 1Y = Fy(X)If Y > Yo ThenX(i) = X(i) + dx(i)B = FalseEnd IfWenddx(i) = dx(i) / 2Next ij=j+1LoopEnd Sub'Вызов подпрограммы расчета функции'Для выхода из цикла по В' Завершение цикла while b do'Конец цикла For i = 1 To N' Конец цикла While j <= 7В программе применены глобальные переменные для передачи вподпрограмму функцию коэффициентов A0, A1, A2 и номера строкитаблицы Iv.

Эти величины нельзя передавать через аргументы подпрограмм, так как включение их в аргументы подпрограммы метода оптимизации лишит ее универсальности. Для каждой решаемой задачипридется вносить исправления.Метод случайного поискаРассмотрим метод, который лишен недостатка предыдущего обеспечивает поиск глобального оптимума. Из-за простоты алгоритмаон используется очень часто для проведения оптимизации. Метод основан на достижении заданной вероятности получения оптимальногорешения. Требуемое число вычислений для достижения задаваемойвероятности не зависит от числа переменных проектирования.Суть метода заключается в следующем. Интервал изменения каждой переменной делится на равное число ячеек (наиболее просто организовать алгоритм вычислений, если поделить интервал на числоячеек, кратное 10).

Затем, пользуясь случайными числами, осуществляется вычисление целевой функции требуемое число раз. Послесравнения полученных значений целевой функции определяется"лучшая" область, где находятся оптимальные значения переменных.Случайные числа могут быть взяты из таблиц случайных чисел илиполучены специальной программой - генератором случайных чисел.Рассмотрим вначале определение требуемого числа вычисленийфункции для одной переменной (рис. 5.10). Если разбить интервал ееизменения на K=10 ячеек (доля изменения переменной при этом будет198равна f=1/К=0.1) и вычислитьуодин раз функцию, то, как известно, вероятность того, чтомы получили оптимальноерешение, будет Po = 0.1, т. е.равна доле изменения переменной, Po =f.

А что будет, если выполним два вычисления?По логике вероятность должнахвозрасти, но нам известно изкурса "Теория вероятности", ХminХmaxчто с увеличением числа поРис. 5.10. Схема к определениюпыток вероятности перемнотребуемого числа вычислений дляжаются, поэтому возникаетодной переменнойабсурдная ситуация, что с увеличением числа расчетов снижается вероятность. Но все приходит внорму, если рассматривать вероятность не поиска оптимального решения, а противоположную ей вероятность пропуска оптимальногорешения, которая определится по известному выражениюPп = 1 - Po , или через долю, Pп = 1 – f .После М вычислений вероятность пропуска лучшего значенияPп =(1 - f ) М,а вероятность получения оптимального решения будетPo = 1 -Pп = 1 - (1 - f ) М .Для определения М по задаваемым значениям Po и f необходимопрологарифмировать выражениеМ = ln(1-Po) / ln(1-f).Требуемое число вычислений функции, согласно полученномувыражению, в данном методе не зависит от числа переменных (именно число вычислений функции, а не просто всех вычислений, включающее и вычисление значений самих переменных).После М вычислений будет достигнута заданная вероятность Родля каждой из независимых переменных, т.

е. для всего пространствапроектирования. Результаты вычислений для нескольких значений Рои f приведены в табл. 5.1, где указано, сколько ячеек надо выбратьслучайным образом, чтобы обеспечить заданную вероятность Po призаданной доле f изменения переменных. Из таблицы видно, что при199случайном выборе 44 ячеек при f = 0.1 вероятность достижения оптимального значения составит 99 %. Это очень неплохо, так как для достижения 100 % целевую функцию, как отмечалось выше, в случае 5переменных пришлось бы вычислять 4084101 раз.Таблица 5.1Требуемое число вычислений для достижения заданной вероятностиВероятность PoДоля измененияпеременных f0.8161610,10,010.922230Х2maxx2 iХ2minХ1minx1 iХ1maxРис. 5.11.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее