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

Описание интерфейса

При запуске программа информирует пользователя о тех методах, которыми он может находить минимум целевых функций, а так же предоставляет ему перечень из трех тестовых функций, которые эта программа может обработать.

В принципе, программа реализует нахождение минимума любой функции с любымколичеством переменных!

Пользователь должен ввести номер функции, минимум которой он хочет найти. Программа сама определит количество переменных в целевой функции.

1. f(x1,x2) = (x2-x1x1)(x2-x1x1) + (1-x1)(1-x1);

2. f(x1,x2,x3) = (x1-1)(x1-1) + (x2-3)(x2-3) + 4(x3+5)(x3+5);

3. f(x1,x2,x3,x4) = 100(x2-x1x1)^2 + (1-x1)^2 + 90(x4-x3x3)^2 + (1-x3)^3 + 10.1(x2-1)^2 + (x4-1)^2 + 19.8(x2-1)(x4-1).

Когда пользователь выберет целевую функцию, программа предложит ему ввести координаты начальной точки вручную, либо принять начальные установки инициализации. По умолчанию:

X[i] = 0.5;

Если пользователь захочет ввести другие координаты, ему будет предложено вводить новые, нажимая Enterпосле каждой новой координаты:

Zadaite 1 koordinatu: 0.2 (Enter)

Zadaite 2 koordinatu: -5 (Enter)

Zadaite 3 koordinatu: _

и так далее, ровно столько раз, сколько переменных в выбранной целевой функции..

Начиная с этого момента программа входит в свой основной цикл, выйти из которого можно только выйдя из всей программы.

Программа предложит выбрать метод, которым будет рассчитываться шаг, доставляющего минимум целевой функции при движении вдоль заданной прямой:

1. Metod Zolotogo Sechenia (1);

2. Metod Pauella.

После выбора метода программа попросит пользователя ввести максимальное количество итераций, которое она будет выполнять на данном шаге решения задачи нахождения минимума:

Vvedite max kol-vo iteratsii: _

Затем программа попросит пользователя указать точность вычислений, т.е. количество знаков после запятой, которое должно храниться в памяти во время расчетов и вычислений:

Vvedite pogreshnost' (E = 0.00001 - 0.0000000001) : _

Рекомендуется выбирать значение точности вычислений из диапазона, предложенного программой.

Теперь программа имеет достаточно параметров, чтобы выполнить расчеты и представить полученный результат. При этом она не только покажет результат вычислений, но и отразит на экране количество итераций, которое ей пришлось сделать, чтобы соблюсти указанную пользователем точность. Если точность была достигнута, программа выдаст соответствующее сообщение. Если нет – тоже сообщит об этом. А так же спросит пользователя, продолжать ли производить расчеты?

Например:

kolichestvo iteratsii v dannom shage: 68 vsego: 68

tochnost' DOSTIGNUTA...

This is vector:

1

3

-5

Prodoljit' rascheti? (y/n)

Если пользователь нажмет «n», программа завершит свою работу.

Если программа выдаст такое сообщение:

Например:

kolichestvo iteratsii v dannom shage: 100 vsego: 100

tochnost' NE DOSTIGNUTA...

This is vector:

0.8967754

2.692117

-6.138879

Prodoljit' rascheti? (y/n)

то имеет смысл выбрать «у» и продолжить поиск минимума функции. Менять целевую функцию уже нельзя, программа последовательно предложит ввести максимальное количество итераций, которое она осуществит в поиске минимума, а так же точность вычислений. Перед непосредственным расчетом программа предложит пользователю сделать выбор:

Izmenit' nachal'nuiu tochku? (y/n)

Нажав «n», пользователь продолжит поиск минимума функции с той точки, которая была получена на предыдущем шаге выполнения программы, а именно в нашем примере:

0.8967754

2.692117

-4.138879

Если пользователь выберет «у», ему будет предложено начать поиск с новой точки, координаты которой программа попросит последовательно ввести.

Соседние файлы в папке LABA5