Лабораторная работа - Метод градиентного спуска - файл n3.docx

Лабораторная работа - Метод градиентного спуска
скачать (269.8 kb.)
Доступные файлы (3):
maths_lab_3.cpp
n2.pdf104kb.04.10.2009 15:11скачать
n3.docx348kb.19.10.2009 11:17скачать

n3.docx

Лабораторная работа №3

по дисциплине «Вычислительная математика»

тема:

МЕТОД ГРАДИЕНТНОГО СПУСКА

(Вариант №17)

Выполнил студент

гр. АСОИ-237

Рахимов Роман

Проверила:

Ошмарина Е.М.
Цель работы:

Ознакомление с методами поиска экстремума нелинейной выпуклой функции нескольких переменных и решение таких задач с помощью ЭВМ.
Код программы:
#include //библиотека стандартных потоков ввода/вывода

#include //библиотека математических функций

#include //библиотека управления выводом на экран

#include
using namespace std;
int main()

{ double a, b, c, d; //объявляем переменные

const double e=0.0001; //задаем значение е

long double k, x, y, x0, y0, f; //объявляем переменные

int i=0;

system("cls");

cout.precision(12);

cout<<"a="; cin>>a;

cout<<"b="; cin>>b;

cout<<"c="; cin>>c;

cout<<"d="; cin>>d; //ввод даных с клавиатуры

k=1.0;

x=0;

y=0; //начальные значения количества шагов, аргумента и функции
while(fabs(a+exp(c*x*x+d*y*y)*2*c*x)>=e/2 && fabs(b+exp(c*x*x+d*y*y)*2*d*y)>=e/2)

//пока (условие продолжения перебора) выполнять

{

i++;

x0=x-k*(a+exp(c*x*x+d*y*y)*2*c*x); //подсчет координаты по х

y0=y-k*(b+exp(c*x*x+d*y*y)*2*d*y); //подсчет координаты по у

if((a*x0+b*y0+exp(c*x0*x0+d*y0*y0))>(a*x+b*y+exp(c*x*x+d*y*y)))

//если значения ф-ции меньше её значения в след. шаге, то

k=k/2; //уменьшение величины шага в 2 раза

else {x=x0; y=y0;} //х=х0, у=у0, если условие не выполнилось

cout<<"x="<d:\_files\_documents\3 семестр\выч. математика\лаб3_2.jpg
d:\_files\_documents\3 семестр\выч. математика\лаб3_3.jpgd:\_files\_documents\3 семестр\выч. математика\лаб3_4.jpg

d:\_files\_documents\3 семестр\выч. математика\лаб3_5.jpg


Вывод:

В ходе лабораторной работы была разработана программа для нахождения минимума функции от двух переменных методом градиентного спуска. Для семнадцатого варианта минимум функции был рассчитан в 191-ом шаге и оказался равен -8.54144.


Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации