Методы первого порядка безусловной многомерной минимизации (градиентные методы). Метод Гаусса-Зейделя — КиберПедия 

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

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Методы первого порядка безусловной многомерной минимизации (градиентные методы). Метод Гаусса-Зейделя

2017-12-21 418
Методы первого порядка безусловной многомерной минимизации (градиентные методы). Метод Гаусса-Зейделя 0.00 из 5.00 0 оценок
Заказать работу

Задание:

Создать приложение для нахождения минимума функции f(x,у) методом Гаусса-Зейделя. Определить сколько итераций потребуется для достижения точности l=10-3, 10-5, 10-7 при одних и тех же начальных приближениях.

Кодпрограммы:

#include "stdafx.h"

#include <conio.h>

#include <math.h>

#include <stdlib.h>

#include <windows.h>

#include <locale.h>

using namespace std;

#define N 2

 

int i;

 

float f(float x[N+1]);

void graddirection(void);

void scanforonedim(void);

void pausa();

void outputresult(void);

 

 

float absgrad,e1,h,h1,z,s[3],x[3];

float K = 2;

 

float f(float x[N+1])

{

float y;

y = x[1]*x[1]+4*x[1]*x[1]*x[2]+pow(x[2],1/5);

return y;

}

 

void graddirection(void)

{

float gradx,grady;

gradx =2*x[1]+8*x[1]*x[2];

grady = 4*x[1]*x[1]+0.2/x[2];

absgrad = sqrt(gradx*gradx+grady*grady);

 

if(absgrad!=0)

{

s[1] = gradx/absgrad;

s[2]=grady/absgrad;

};

}

 

void scanforonedim(void)

{

short a;

float d1,z1;

z=f(x);

graddirection();

do{

d1=fabs(h1);

for(i = 1; i<=N; i++) x[i]=h1*s[i];

z1=f(x); a = (z1<z);

if(!a) h1 /= -K;

z=z1;

}

while (a || d1 >=e1);

}

 

void pausa()

{

printf("\nНажимите любую кнопку для продолжения...\n");

_getch();

};

 

void outputresult(void)

{

printf("Вектор приближения (x1,x2) на данном шаге ");

printf("вычислений ");

printf("x1=%f x2=%f\n",x[1],x[2]);

printf("f(x1,x2) = %f\n", f(x));

pausa();

 

};

 

void main()

{

setlocale(LC_ALL,"Rus");

float d,e;

char finish;

printf("Введите координаты начального ");

printf("вектора (x1,x2)\n");

for(i = 1;i<=N;i++) scanf_s("%f",&x[i]);

graddirection();

 

if(!absgrad)

{

printf("Стационарнаяточка x1 = %f", x[1]);

printf("x2=%f",x[2]);

};

 

e = 0.0001;

 

outputresult();

h=0.2;

e1=e/K;

 

do{

d=fabs(h);

h1=h;

scanforonedim();

outputresult();

h /=K;

}while(d>=e);

 

pausa();

}

 

Результат:

 

 

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

Решение задач линейного программирования с помощью ПОИСКА РЕШЕНИЙ в среде EXCEL

 

Цель работы:

1) Научиться составлять математические модели линейных задач.

2) Ознакомиться с технологией решения задач линейного программирования с помощью ПОИСКА РЕШЕНИЙ в среде EXCEL.

 

Задание:

Решить задачи, используя надстройку Excel Поиск решений

 

Три типа самолетов следует распределить между двумя авиалиниями. В таблице заданы количество самолетов каждого типа, месячный объём перевозок каждым самолетом на каждой авиалинии и соответствующие эксплутационные расходы. Требуется распределить самолёты по авиалиниям так, чтобы при минимальных суммарных эксплуатационных расходах перевезти по каждой из них соответственно не менее 300 и 200 ед. груза.

 

Математическая модель задачи:

x1,x2, x3 – количество самолётов, необходимых для перелёта

 

(x1*15) + (x2*30) + (x3*25) ≥ 300

(50-x1)*10 + (20-x2)*25 + (30-x3)*50 ≥ 200

(x1*15) +(x2*70) + (x3*40) + (50-x1)*20 + (20-x2)*28 + (30-x3)*70 -> min

xj≥ 0

Результаты решения задач с помощью ПОИСКА РЕШЕНИЙ в среде EXCEL

Выводы по работе

В ходе выполнения работы была составлена математическая модель задачи; получено решение через сервис поиск решения. По результатам проверки был сделан вывод о том, что сервис правильно подобрал решение.

 

Лабораторная работа № 6.

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

Цель работы:

1) ознакомиться с теорией векторной оптимизации;


Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.