Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Автоматизация измерений, контроля и испытаний. Курсовое проектирование

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
91
Рис. 8.1. График функции у = –(х – 3)2 и результат поиска
max
X
.
(8.9)
y(x)
y(X
max
)
0
100
200
10 0
10
x, X
max
Для примера выберем функцию у = х3 – 75x.
Для поиска экстремума в MathCAD методом дихотомии (от греч.
– на две части и … – сечение) воспользуемся программой-
функцией. Чтобы её записать, введём имя будущей программы-функции
X
. Затем нужно создать тело программы-функции, для чего открыть
max
панель «Programming», выбрав в главном меню «Вид – Панели инстру­ментов – Программирование», и на появившейся панели щёлкнуть левой кнопкой мыши на «Add line». После чего на экране появится вертикаль­ная черта и вертикальный столбец с двумя полями для ввода операторов, образующих тело программы-функции.
Теперь заполним поля программы-функции операторами. Чтобы пе­рейти в первое сверху поле, нужно щёлкнуть на нём мышью, после чего ввести первый оператор тела программы-функции. Так как самое нижнее поле всегда предназначено для определения возвращаемого программой значения, то поля ввода для дополнительных операторов открываются с помощью щелчка на кнопке «Add line» панели программирования. При этом поле ввода добавляется внизу выделенного к этому моменту опера­тора. Итак, нам потребуется 5 полей. В первое поле вводим начальное значение диапазона а = –10, во второе – конечное b = 10, в третье – по­грешность ε = 0,01. В четвёртое поле тела программы-функции запишем
экстремума (максимума) методом сканирования
Метод деления отрезка пополам (дихотомии)
92
a
ba
xyxyxb
xyxyxa
xx
ba
x
ba
b
a
X
max
.ε10ifbreak
)1()2(if2
)1()2(if1
ε12
2
1
εwhile
01.0ε
10
10
:
(8.10)
оператор цикла «while», для чего нужно на панели «Programming» вы­брать «while». Оператор «while» состоит из условия выполнения цикла и тела. В пятое поле программы-функции запишем переменную a, значе­нию которой будет соответствовать значение программы-функции.
Для построения графика необходимо выбрать в главном меню «Вид – Панели инструментов – График», далее на появившейся панели «Graph» выбрать элемент «Декартов график», после чего на рабочей области про­граммы MathCAD появится область построения графика. По оси ординат области построения графика необходимо ввести «y(x), y(X абсцисс – «x, X
». Далее двойным щелчком левой кнопки мыши по об-
max
)», а по оси
max
ласти построения графика необходимо вызвать панель форматирования графика, на которой выбрать закладку «Трассировки», выделить мышью «trace2» и в поле «Символ» выбрать «dmnd». Кроме того, для удобства можно установить диапазон значений по оси абсцисс путём ввода соот­ветствующих значений в области на оси x графика. Поскольку значения по оси х изменяются от a = –10 до b =10, их и введём.
написать в рабочей области MathCAD интересующую нас переменную и поставить знак равенства, после чего программа автоматически выведет значение экстремума. При Х
75x
водную y' = 3х2 – 75. При y' = 0 получаем x = ±5, что совпадает с расчё-
Чтобы получить численное значение экстремума функции y(x), нужно
Проверить результат машинного поиска экстремума функции у = х3 –
можно аналитически. Для этого приравняем нулю её первую произ-
= –5,063 получим у
max
max(Хmax
) = 249,94.
93
тами, сделанными на MathCAD. Тогда у
3
х
max
X
.
(8.11)
y(x)
y(X
max
)
x, X
max
400 200 0
200 400
10 0 10
max(Хmax
= 5) = 250, что соответ-
ствует машинному расчёту.
График функции и результат поиска экстремума показан на рис. 8.2.
Рис. 8.2. График функции у = х3 – 75x и результат поиска
экстремума (максимума) методом деления отрезка пополам
Для примера возьмём функцию у = х 6sin
Для поиска экстремума в MathCAD воспользуемся программой­функцией. Чтобы её записать, введём имя будущей программы-функции
X
. Затем нужно создать тело программы-функции, для чего открыть
max
панель «Programming», выбрав в главном меню «Вид – Панели инстру­ментов – Программирование», и на появившейся панели щёлкнуть левой кнопкой мыши на «Add line». После чего на экране появится вертикаль­ная черта и вертикальный столбец с двумя полями для ввода операторов, образующих тело программы-функции.
Теперь заполним поля программы-функции операторами. Чтобы пе­рейти в первое сверху поле, нужно щёлкнуть на нём мышью, после чего ввести первый оператор тела программы-функции. Так как самое нижнее поле всегда предназначено для определения возвращаемого программой значения, то поля ввода для дополнительных операторов открываются с помощью щелчка на кнопке «Add line» панели программирования. При этом поле ввода добавляется внизу выделенного к этому моменту опера-
Метод золотого сечения
.
94
тора. Итак, нам потребуется 8 полей. В первое поле мы вводим началь-
2
53
a
ba
abzax
xx
xb
xyxy
axbx
xx
xa
xyxy
ba
axbx
abzax
z
b
a
X
max
εifbreak
)(1
12
2
)1()2(if
)1(2
21
1
)1()2(if
εwhile
)1(2
)(1
2
53
01.0ε
10
10
:
.
(8.12)
ное значение диапазона а = –10, во второе – конечное, т.е. b = 10, в тре­тье – погрешность ε = 0,01, в четвёртое – коэффициент деления отрезков
z =
, в пятое и шестое – начальные значения точек x1 = a + z(b
a), x2 = b – (x1 – a).
В седьмом поле тела программы-функции запишем оператор цикла «while», для чего нужно на панели «Programming» выбрать «while». Опе­ратор «while» состоит из условия выполнения цикла и тела. В восьмом поле программы-функции запишем переменную a, которой будет соот­ветствовать значение программы-функции.
Для построения графика необходимо выбрать в главном меню «Вид – Панели инструментов – График», далее на появившейся панели «Graph»
95
выбрать элемент «Декартов график», после чего на рабочей области про-
3
х
3
х
3
х
2
1
y(x)
y(X
max
)
x, X
20 10
0
10
20 10 5 0 5 10
граммы MathCAD появится область построения графика. По оси ординат области построения графика необходимо ввести «y(x), y(X абсцисс – «x, X
». Далее двойным щелчком левой кнопки мыши по об-
max
)», а по оси
max
ласти построения графика необходимо вызвать панель форматирования графика, на которой выбрать закладку «Трассировки», выделить мышью «trace2» и в поле «Символ» выбрать «dmnd».
Кроме того, для удобства можно установить диапазон значений по оси абсцисс путём ввода соответствующих значений в области на оси x графика. Поскольку значения по оси х изменяются от a = –10 до b = 10, их и введём. В результате получим график, изображённый на рис. 8.3.
Чтобы получить численное значение экстремума функции y(x), нужно написать в рабочей области MathCAD интересующую нас переменную и поставить знак равенства, после чего программа автоматически выведет значение экстремума. При Х
Проверить результат поиска экстремума функции у = х 6sin но аналитически. Для этого приравняем нулю её первую производную
y' = 1 – 2cos( 2пπ. Поскольку данная функция периодическая, то можно говорить о ло-
кальном экстремуме (максимуме) на отрезке [–10, 10]. Ему будет соот­ветствовать значение аргумента х = –π, что совпадает с расчётами, сде-
Рис. 8.3. График функции у = х 6sin
и
результат поиска экстремума (максимума)
методом «золотого сечения»
= –3,144 у
max
max(Хmax
). При y' = 0 получим x = 3arccos(
) = 2,055.
) ± 2пπ, или х = π ±
мож-
96
ланными на MathCAD. Тогда у
max
X
.
(8.13)
max(Хmax
= –π) = 2,055, что полностью соот-
ветствует машинному расчёту.
Метод квадратичной интерполяции
Для примера снова выберем функцию у = –(x – 3)2 при–10 < х <10.
Для поиска экстремума в MathCAD воспользуемся программой­функцией. Чтобы записать её, введём имя будущей программы-функции
X
. Затем нужно создать тело программы-функции, для чего открыть
max
панель «Programming», выбрав в главном меню «Вид – Панели инстру­ментов – Программирование», и на появившейся панели щёлкнуть левой кнопкой мыши на «Add line». После чего на экране появится вертикаль­ная черта и вертикальный столбец с двумя полями для ввода операторов, образующих тело программы-функции.
Теперь заполним поля программы-функции операторами. Чтобы пе­рейти в первое сверху поле, нужно щёлкнуть на нём мышью, после чего ввести первый оператор тела программы-функции. Так как самое нижнее поле всегда предназначено для определения возвращаемого программой значения, то поля ввода для дополнительных операторов открываются с помощью щелчка на кнопке «Add line» панели программирования. При этом поле ввода добавляется внизу выделенного к этому моменту опера­тора. Итак, нам потребуется 6 полей. В первое поле вводим предполага­емое значение экстремума x1 = 1, во второе – начальное значение рас­чётного экстремума, не равное x1: xm = 777, в третье – шаг h = 1, в чет­вёртое – погрешность ε = 0,01. В пятом поле тела программы-функции запишем оператор цикла «while», для чего нужно на панели «Program­ming» выбрать «while». Оператор «while» состоит из условия выполне­ния цикла и тела. В шестом поле программы-функции запишем перемен­ную xm, которой будет соответствовать значение программы-функции.
97
xm
xmx
xxm
c
b
xm
h
hxxyxxyhxxy
b
xyxyxy
h
c
hxx
hxx
xxm
h
xm
x
X
max
1
ε1ifbreak
2
2
)12)(2(1)1(4)12)(0(
))2()1(2)0((
2
1
12
10
ε1while
01.0ε
1
777
11
:
2
2
.
(8.14)
Панели инструментов – График», далее на появившейся панели «Graph» выбрать элемент «Декартов график», после чего на рабочей области про­граммы MathCAD появится область построения графика. По оси ординат области построения графика необходимо ввести «y(x), y(X абсцисс «x, X сти построения графика необходимо вызвать панель форматирования графика, на которой выбрать закладку «Трассировки», выделить мышью «trace2» и в поле «Символ» выбрать «dmnd». Кроме того, для удобства можно установить диапазон значений по оси абсцисс путём ввода соот­ветствующих значений в области на оси x графика. Поскольку значения по оси х изменяются от a = –10 до b = 10, их и введём.
Для построения графика необходимо выбрать в главном меню «Вид –
». Далее двойным щелчком левой кнопки мыши по обла-
max
Этот график показан на рис. 8.4.
)», а по оси
max
98
Рис. 8.4. График функции у = –(х – 3)2
y(x)
y(X
max
)
x, X
max
0
100
200
10 5 0 5 10
и результат поиска экстремума (максимума)
методом квадратичной интерполяции
Чтобы получить численное значение экстремума функции y(x), нужно написать в рабочей области MathCAD интересующую нас переменную и поставить знак равенства, после чего программа автоматически выведет значение экстремума. При Х
Проверить результат поиска экстремума функции у = –(х 3)
max
= 3 у
max(Хmax
) = 0.
2
можно
аналитически. Для этого приравняем нулю её первую производную y' = 2(х 3). При y' = 0 получаем x = 3, что совпадает с расчётами, сде­ланными на MathCAD. Тогда у
max(Хmax
= 3) = 0, что полностью соответ-
ствует машинному расчёту.
Задание
Для каждого варианта заданы: метод оптимизации, функция оптими­зации.
Необходимо найти экстремум (максимум) функции в соответствии с вариантом, приведенным в табл. 8.1, построить график зависимости ис­ходных данных y = f(x) и нанести на него найденный экстремум.
99
Варианты заданий
Но­мер
вари-
анта
Метод оптимизации
Функция
1
Сканирования
y(x) = x3 – 30x2 + 3x + 1
2
Дихотомии
y(x) = x3 – 30x2 + 9x + 8
3
Золотого сечения
y(x) = x3 – 30x2 + 4x + 1
4
Квадратичной интерполяции
y(x) = x3 – 30x2 + 8x + 6
5
Сканирования
y(x) = x3 – 30x2 + 25x + 10
6
Дихотомии
y(x) = x3 – 30x2 + 16x + 2
7
Золотого сечения
y(x) = x3 – 30x2 + 37x + 49
8
Квадратичной интерполяции
y(x) = x3 – 30x2 + 6x + 12
9
Сканирования
y(x) = x3 – 30x2 + 29x + 35
10
Дихотомии
y(x) = x3 – 30x2 + 10x + 17
11
Золотого сечения
y(x) = x3 – 30x2 +2x + 3
12
Квадратичной интерполяции
y(x) = x3 – 30x2 +12x + 8
13
Сканирования
y(x) = x3 – 30x2 +34x + 13
14
Дихотомии
y(x) = x3 – 30x2 +19x + 14
15
Золотого сечения
y(x) = x3 – 30x2 +11x + 27
16
Квадратичной интерполяции
y(x) = x3 – 30x2 + 20x + 8
17
Сканирования
y(x) = x3 – 30x2 + 5x + 3
18
Дихотомии
y(x) = x3 – 30x
2
+ x + 18
19
Золотого сечения
y(x) = x3 – 30x2 + 7x + 5
20
Квадратичной интерполяции
y(x) = x3 – 30x2 + 33x + 2
21
Сканирования
y(x) = x3 – 30x2 + 15x + 10
Таблица 8.1
100
Окончание табл. 8.1
Номер
вари-
анта
Метод оптимизации
Функция
22
Дихотомии
y(x) = x3 – 30x2 + 36x + 6
23
Золотого сечения
y(x) = x3 – 30x2 + 40x + 35
24
Квадратичной интерполяции
y(x) = x3 – 30x2 + 18x + 6
25
Сканирования
y(x) = x3 – 30x2 + 39x + 25
26
Дихотомии
y(x) = x3 – 30x2 + 17x + 4
27
Золотого сечения
y(x) = x3 – 30x2 + 31x + 29
28
Квадратичной интерполяции
y(x) = x3 – 30x2 + 35x + 14
29
Сканирования
y(x) = x3 – 30x2 + 22x + 5
30
Дихотомии
y(x) = x3 – 30x2 + 38x + 30
31
Золотого сечения
y(x) = x3 – 30x2 + 14x + 19
32
Квадратичной интерполяции
y(x) = x3 – 30x2 + 32x + 32
33
Сканирования
y(x) = x3 – 30x2 + 21x + 37
34
Дихотомии
y(x) = x3 – 30x2 + 13x + 24
35
Золотого сечения
y(x) = x3 – 30x2 + 27x + 10
36
Квадратичной интерполяции
y(x) = x3 – 30x2 + 30x + 26
37
Сканирования
y(x) = x3 – 30x2 + 23x + 37
38
Дихотомии
y(x) = x3 – 30x2 + 28x + 39
39
Золотого сечения
y(x) = x3 – 30x2 + 24x + 19
40
Квадратичной интерполяции
y(x)= x
3
30x2 + 26x + 40
1. Экстремум каких функций R(х) можно найти методом сканиро-
вания?
2. В чем заключается основное достоинство метода сканирования?
3. Каким способом можно повысить точность нахождения реше-
ния?
4. Для каких функций пригоден метод половинного деления?
5. Каково основное достоинство метода половинного деления?
Контрольные вопросы
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]