- •Мінчев Дмитро Степанович нагірний Антон Вікторович Лабораторні роботи з дисципліни:
- •1. Вимоги до виконання лабораторних робіт
- •2. Вимоги до побудови блок-схеми алгоритмів
- •3. Основи програмування у середовищі Visual Basic.
- •Application.Workbooks("Кафедра").Worksheets("Лист1").Range("Al")
- •If умова then
- •If умова then
- •Call ім’я_процедури (параметри) ім’я_процедури параметри
- •4. Побудова тривимірних графіків функцій у середовищі Mathcad
- •Теоретична частина
- •Лабораторна робота №1.
- •Лабораторна робота №2.
- •Лабораторна робота №3.
Лабораторна робота №3.
Пошук екстремуму функцій.
Визначити максимум та мінімум функції однієї змінної
f (x) = _________________________________________
на інтервалі __________________
Визначити максимум та мінімум функції двох змінних
f (x1,x2) = _______________________________________________________
________________________________________________________________
на інтервалі _______________________
Рівень складності ________
Студент групи ______ ПІПб__________________________
Викладач __________________________
Дата _________________
Контрольні питання
Дайте визначення унімодальної функції.
Дайте визначення локального та глобального мінімуму функції. Наведіть графічну інтерпретацію для функції однієї змінної.
Дайте визначення строгого та нестрогого локального максимуму функції. Наведіть графічну інтерпретацію для функції однієї змінної.
В чому полягає класичний метод пошуку екстремуму функції однієї змінної? Які він має переваги та недоліки?
Наведіть графічну інтерпретацію метода дихотомії. Що називають параметром методу δ?
Наведіть графічну інтерпретацію методу золотого перерізу. Яка особливість цього методу робить його одним з найбільш економічних?
Поясніть за допомогою графічного представлення сутність методу Ньютона для визначення екстремуму функції однієї змінної. Накресліть блок-схему цього методу.
В чому полягає метод розрядного пошуку екстремуму функції однієї змінної? Наведіть блок-схему методу.
Дайте визначення градієнта та антиградієнта функції багатьох змінних. Наведіть графічну інтерпретацію для випадку функції двох змінних.
Які властивості градієнта функції використовуються при чисельному пошуку екстремуму функції багатьох змінних?
В чому відміна реалізації градієнтних методів пошуку екстремуму функції багатьох змінних для випадків, якщо похідна досліджуваної функції може бути обчислена, або не може бути обчислена.
Чи залежить точність та економічність методів чисельного пошуку екстремуму функції декількох змінних від обирання початкового наближення?
Додаток.
Приклади команд та конструкцій керування у Visual Basic.
Введення значень змінних зі сторінки Excel в середовище VBA:
vnt_a = Worksheets("Лист1").Range("vnt_a").Value
Виведення значень змінних з середовища VBA на сторінку Excel:
Worksheets ("Лист1").Range("vnt_a").Value = vnt_a
Введення значень елементів масиву в середовище VBA зі сторінки Excel з використанням циклу For…Next:
Fori_cnt = 0 To vnt_n - 1
Forj_cnt = 0 To vnt_n - 1
Arr_A(i_cnt, j_cnt) = Worksheets("Лист1"). _
Range("Massiv_A").Cells(i_cnt + 1, j_cnt + 1)
Next j_cnt
Next i_cnt
Виведення значень елементів масиву з середовища VBA на сторінку Excel:
Fori_cnt = 0 To vnt_n - 1
Forj_cnt = 0 To vnt_n - 1
Worksheets("Лист1").Range("Massiv_A"). _
Cells(i_cnt + _1, j_cnt + 1) = Arr_A(i_cnt, j_cnt)
Next j_cnt
Next i_cnt
Оголошення статичних масивів:
Dim Arr_A(99,99) As Double
Dim Arr_A(1 to 100,1 to 100) As Double
Наведеним способом оголошується двовимірний масив розміром 100×100, де елементи масиву дійсні числа. В першому випадку нумерація рядків та стовпчиків починається з 0, а в другому – з 1.
Оголошення динамічних масивів:
оголошення масиву без розміру для оголошення типу масиву:
Dim Arr_A()As Double
встановлення розміру масиву:
ReDim Arr_A(1 to 100,1 to 100)AsDouble
Конструкція if…then:
If Abs(Arr_A(i_cnt, k_cnt)) > maxim Then
maxim = Abs(Arr_A(i_cnt, k_cnt))
Else
l_cnt = i_cnt
End If
В якості прикладу готової програми розглянемо програму сортування заданого масиву за зростанням значень його елементів. На рис.1Д представлений інтерфейс програми в середовищі Microsoft Excel.
Рис. 1Д. Можливий варіант інтерфейсу програми сортування масиву за зростанням значень його елементів
Для побудови кнопки із назвою «Відсортувати масив», яка активує процедуру сортування, що записана в VBA, необхідно:
В середовищі MicrosoftExcel в меню Елементи управління на вкладці Додати вибрати команду Вставити елемент управління «Кнопка» (див рис. 2Д).
Рис.2Д. Побудова елементу управління «Кнопка»
Натиснути курсором на лист Microsoft Excel в тому місці, де бажано побудувати кнопку та за допомогою курсору рамкою задати габаритні розміри об’єкту.
Рис. Д3. Побудова кнопки управлінняCommandButton1
Для перейменування кнопки необхідно натиснути на кнопку правою клавішею миші в Режимі конструктора. В меню Об’єкт CommandButton1 вибрати вкладку Edit і записати бажану назву кнопки (див. рис. Д4).
Рис. 8.4 Перейменування кнопки управлення CommandButton1
Для зв’язку елемента управління «Кнопка» з процедурою записаною в середовищі VBA необхідно натиснути на кнопку правою клавішею миші в Режимі конструктора і вибрати вкладку Вихідний текст (див рис. Д4). У відкритому вікні VBA буде записана процедура, що зв’язана з побудованою кнопкою.
Код програми, реалізований в VBA, представлений нижче.
Private Sub CommandButton1_Click()
Dim Arr1(1 To 3, 1 To 3) As Double
Dim Arr2(1 To 3, 1 To 3) As Double
Dim ArrB(1 To 9) As Double
Fori_cnt = 1 To 3
Forj_cnt = 1 To 3
Arr1(i_cnt, j_cnt) = _
Worksheets("Лист1").Range("Arr_1").Cells(i_cnt, j_cnt)
Next j_cnt
Next i_cnt
f_cnt = 1
For i_cnt = 1 To 3
For j_cnt = 1 To 3
Arr B(f_cnt) = Arr1(i_cnt, j_cnt)
f_cnt = f_cnt + 1
Next j_cnt
Next i_cnt
Forv_cnt = 1 To 9
Min = ArrB(v_cnt)
l = v_cnt
Fori_cnt = v_cnt To 9
If Min > ArrB(i_cnt) Then
Min = ArrB(i_cnt)
l = i_cnt
End If
Next i_cnt
ArrB(l) = ArrB(v_cnt)
ArrB(v_cnt) = Min
Next v_cnt
f_cnt = 1
Fori_cnt = 1 To 3
Forj_cnt = 1 To 3
Arr1(i_cnt, j_cnt) = ArrB(f_cnt)
f_cnt = f_cnt + 1
Worksheets("Лист1").Range("Arr2").Cells(i_cnt, j_cnt) = _ Arr1(i_cnt, j_cnt)
Next j_cnt
Next i_cnt
End Sub
Література
Адлер, Ю. П. Планирование эксперимента при поиске оптимальных условий [Текст] / Ю. П. Адлер, Е. В. Маркова, Ю. В. Грановский. – М : Наука, 1976. – 278 с.
Амосов, А. А. Вычислительные методы для инженеров: Учебное пособие [Текст] / А. А. Амосов, Ю. А. Дубинский, Н. В. Копченова. – М.: Высшая школа, 1994. – 544 с.
Анеликова, Л. А. Лабораторные работы по Excel [Текст] / Л. А. Анеликова. – М.: СОЛОН-ПРЕС, 2006. – 128 с.
Банди, Б. Методы оптимизации : вводный курс [Текст] / Б. Банди. – М.: Радио и связь, 1988. – 128 с.
Блохин, А. В. Теория эксперимента [Электронный ресур]: Курс лекций в двух частях: Часть 2. – Электрон.текст. дан. (1,0 Мб). – Мн.: Научно-методический центр “Электронная книга БГУ”, 2003. – Режим доступа:
http://anubis.bsu.by/publications/elresources/Chemistry/blohin2.pdf. – Электрон. версия печ. публикации, 2002. – PDF формат, версия 1.4 .
Васильев, Ф. П. Методы оптимизации [Текст] / Ф. П. Васильев. – М.: Издательство «Факториал пресс», 2002. – 824 с.
Глушаков, С. В. Программирование на VisualBasic 6.0 [Текст] / С. В. Глушаков, А. С. Сурядный. – Х. : Фолио, 2004. – 497 с.
Двигуни внутрішнього згоряння : Серія підручників у 6 томах. Т.4. Основи САПР ДВЗ. [Текст] / за ред. А. П. Марченка, А. Ф. Шеховцова. – Х. : Видавн. центр НТУ “ХПІ”, 2004. – 428 с.
Демидова, Л. А. Программирование в среде Visual Basic for Aplications [Текст] / Л. А. Демидова, А. Н. Пылькин. – М. : Горячая линия - Телеком, 2004. – 175 с.
Кузьмин, В. Microsoft Office Excel. Учебный курс [Текст] / В. Кузьмин. – СПб.: Издательская группа BHV, 2004. – 493 c.
Макаров, Е. Г. Инженерные расчёты в Mathcad: учебный курс [Текст] / Е. Г. Макаров. – СПб.: Питер, 2005. – 448 с.
Парсаданов, И. В. Повышение качества и конкурентоспособности дизелей на основе комплексного топливо-экологического критерия : монография [Текст] / И. В. Парсаданов. – Х. : Издательский центр НТУ «ХПИ», 2003. – 244 с.
Ракитин, В. И. Практическое руководство по методам вычислений с приложением программ к персональным компьютерам: Учебное пособие [Текст] / В. И. Ракитин, В. Е. Первушин. – М.: Высшая школа, 1998 г. – 383 с.
