Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №36 / Доклад по МО №3 к3.doc
Скачиваний:
9
Добавлен:
01.05.2014
Размер:
171.01 Кб
Скачать

4. Спецификация программы.

4.1. Исходные данные.

Исходными данными является начальная точка для алгоритма Swann4, шаг для алгоритма Swann, шаг для Давидона и шаг Больцано, а также направление поиска рt. (все перечисленные параметры вводятся перед компилированием, так что, по сути, исходными данными не являются, т.к. в задаче была указана одна функция и вся программа была оптимизирована под конкретные данные)

4.2. Выходные данные.

Выходными данными являются:

  1. Значение границ интервала, полученного Swann, интервал, корень, полученный при досрочном завершении Свенна4, и количество итераций.

  2. Значение границ интервала, полученного Boltsano, корень полученный методом Boltsano (при досрочном завершении Boltsano) и количество итераций.

  3. Значение минимума, полученного методом Davidonа, и количество итераций.

  4. Для всех алгоритмов (при досрочном завершении или обычном завершении Давидона) приводится значение найденного минимума, значение функции в точке минимума, параметр <альфа>.

4.4. Назначение программы.

Программа находит минимум многомерной функции методом линейного поиска.

4.4.1 Основные переменные;

а)функция Swann4

Имя

Тип

Описание

y1

double

значение производной в точке по направлению

y2

double

значение производной в точке по направлению

alfa

double

параметр альфа

x1

myVector

вектор

x2

myVector

вектор

б)функция Boltsano

Имя

Тип

Описание

x

myVector

вектор

y

double

значение производной в точке по направлению

c

double

параметр альфа

b

double

Правая граница интервала

eps

double

Эпсилон – точность вычислений

в)функция Davidon

Имя

Тип

Описание

x1

myVector

вектор

x2

myVector

вектор

Х

myVector

вектор

y

double

значение производной в точке по направлению

alfa0

double

сдвиг координат

eps

double

Эпсилон – точность вычислений

r

double

параметр альфа

z

double

для нахождения r

w

double

для нахождения r

fmin

double

минимальное значение функции среди трех точек

xmin

double

аргумент при минимальном значении функции среди трех точек

k

int

Счетчик итераций

4.4.2 Процедуры и функции.

Имя

Параметры

Назначение

входные

выходные

транзитные

fun

const myVector &mV

Находит значение целевой функции

gradient

const myVector &point

находит градиент функции в точке

d_fun

const

myVector &point,const myVector &line

находит градиент функции в точке

по направлению

Swann4

const myVector &start_point, myVector &linealone=false

double &a,

double &b,

myVector &answer

Свенн-4

Davidon

myVector &start_point, myVector &line

myVector &answer

double &a,

double &b

метод Давидона

Boltsano

myVector &start_point, myVector &line

myVector &answer

double &a,double &b

Метод Больцано

4.3. Место и форма представления данных.

Выходные данные выводятся на экран.

4.4. Сценарий диалога с пользователем

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

4.5. Описание пользовательских данных

class myVector

{

public:

double x,y; //default Constructor

myVector(double x0=0, double y0=0){

x=x0;

y=y0;

} //basic operators

myVector operator + (const myVector &mV) { //sum of two Vectors

return myVector(x+mV.x,y+mV.y);

}

myVector &operator -(){ //unary minus

this->x = - this->x;

this->y = - this->y;

return *this;

}

myVector operator -(const myVector &mV) { //difference of two vectors

return myVector(x-mV.x,y-mV.y);

}

myVector operator *(const double i) { //multiply by Num postfix

return myVector(x*i,y*i);

}

double operator *(const myVector &mV){ //Scalar Multiply

return (this->x * mV.x + this->y * mV.y);

}

};

Соседние файлы в папке Лабораторная работа №36