Линейное и нелинейное программирование

else

min := b

end;

begin

randomize;

writeln('Поиск глобального многомерного минимума функции');

writeln('(для курсового проекта по прикладной математике)');

writeln('Автор: Ткаченко К.С. М-21д');

writeln;

writeln('Введите интервал изменения x1');

write(' Введите a1 : '); readln(a1);

write(' Введите b1 : '); readln(b1);

writeln('Введите

интервал изменения x2');

write(' Введите a2 : '); readln(a2);

write(' Введите b2 : '); readln(b2);

write('Введите погрешность eps : '); readln(eps);

write('Введите вероятность поиска P : '); readln(P);

write('Введите коэффициент alpha : '); readln(alpha);

write('Введите коэффициент dV : '); readln(dV);

writeln;

writeln('Алгоритм поиска глобального минимума по координатной '+

'сетке с равномерным шагом');

writeln;

t := false; N := 0;

fS := large; fmin := large;

a1n := a1; a2n := a2; b1n := b1; b2n := b2;

repeat

d1 := b1n - a1n; d2 := b2n - a2n;

dx1 := d1 / alpha; dx2 := d2 / alpha;

x1 := a1n; x2 := a2n;

fT := f(x1, x2);

N := N + 1;

if fT < fmin then

begin

fmin := fT;

x1min := x1; x2min := x2;

end;

repeat

repeat

x1 := x1 + dx1; (* Шаг 1 *)

fT := f(x1, x2);

N := N + 1;

if fT < fmin then (* Шаг 2 *)

begin

fmin := fT;

x1min := x1; x2min := x2;

end;

until x1 > b1n; (* Шаг 3 *)

x1 := a1n; x2 := x2 + dx2; (* Шаг 4 *)

fT := f(x1, x2); (* Шаг 5 *)

N := N + 1;

if fT < fmin then (* Шаг 6 *)

begin

fmin := fT;

x1min := x1; x2min := x2;

end;

until x2 > b2n; (* Шаг 7 *)

if abs(fS - fmin) > eps then (* Шаг 8 *)

begin (* Шаг 9 *)

fS := fmin;

a1n := max(x1min-dx1,a1n); b1n := min(x1min+dx1,b1n);

a2n := max(x2min-dx2,a2n); b2n := min(x2min+dx2,b2n);

end

else t := true; (* Шаг 10 *)

until t;

writeln('Число испытаний N = ', N);

writeln('fmin = ', fmin : 6 : 3);

writeln('x1min = ', x1min : 6 : 3);

writeln('x2min = ', x2min : 6 : 3);

writeln;

writeln('Алгоритм поиска глобального минимума функции '+

'методом случайного поиска');

writeln;

fmin := large;

x1min := fmin; x2min := fmin;

d1 := b1 - a1; d2 := b2 - a2;

Rho := dV/(d1 * d2);

N := ceil(ln(1 - P)/ln(1 - Rho));

writeln('Число испытаний N = ', N);

for i := 1 to N do (* Шаги 1, 2 *)

begin

x1 := a1 + random * d1; (* Шаги 3, 4 *)

x2 := a2 + random * d2;

fT := f(x1, x2); (* Шаг 5 *)

if fT < fmin then (* Шаг 6 *)

begin

fmin := fT;

x1min := x1;

x2min := x2

end;

end; (* Шаг 7 *)

writeln('fmin = ', fmin : 6 : 3);

writeln('x1min = ', x1min : 6 : 3);

writeln('x2min = ', x2min : 6 : 3);

end.

Б. Результаты работы программы

Поиск глобального многомерного минимума функции

(для курсового проекта по прикладной математике)

Автор: Ткаченко К.С. М-21д

Введите интервал изменения x1

Введите a1 : -5

Введите b1 : 5

Введите интервал изменения x2

Введите a2 : -5

Введите b2 : 5

Введите погрешность eps : 0.0001

Введите вероятность поиска P : 0.95

Введите коэффициент alpha : 20

Введите коэффициент dV : 1

Алгоритм поиска глобального минимума по координатной сетке с равномерным шагом

Число испытаний N = 905

fmin = -2.500

x1min = -0.500

x2min = 2.000

Алгоритм поиска глобального минимума функции методом случайного поиска

Число испытаний N = 299

fmin = -2.469

x1min = -0.677

x2min = 2.173

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16 


Другие рефераты на тему «Математика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2020 - www.refsru.com - рефераты, курсовые и дипломные работы