Компьютерное моделирование. Лабораторный практикум. Алтаев А.А - 41 стр.

UptoLike

Составители: 

81
end
end
else choice(fc,xc)
end
end
else choice(fr,xr)
end;
s1:=0;
s2:=0;
for i:=1 to n+1 do
begin
s1:=s1+f[i];
s2:=s2+sqr(f[i]);
end;
sig:=s2-s1*s1/(n+1);
sig:=sig/(n+1);
writeln(l:3,f[l]:12:8);
for j:=1 to n do
write(xl[j]);
writeln;
until sig<1e-10;
writeln('Минимум найден в точке');
for j:=1 to n do
writeln('x[',j,']=',xl[j]);
writeln;
writeln('Значение минимума
функции',f[l]);
writeln('Количество вычислений
функции=',tev);
readln;
end.
Целевая функция может иметь несколько
минимумов. На рисунке П.3 показана топология функции от
двух переменных, которая имеет два минимума:
глобальный
A и локальный B. Если координаты начальной
вершины многогранника
x
1
j будут выбраны в окрестности
точки B, то велика вероятность, что будет получено
82
неверное решение: многогранник «сползет» в овраг B. Во
избежание подобных ошибок рекомендуется выполнить
несколько расчетов, меняя каждый раз координаты
начальной вершины. Из полученных решений следует
выбрать результат с наименьшим значением целевой
функции.
В процедуре
functmin записана функция
(
)
(
)
2
1
2
12
1100 xxxz +=
, координаты точки минимума
которой
x
1
= x
2
=1 при значении z = 0.
35
30
25
20
15
A
B
30
10
Рис. П.3.
                  end                                     неверное решение: многогранник «сползет» в овраг B. Во
                  end                                     избежание подобных ошибок рекомендуется выполнить
                    else choice(fc,xc)                    несколько расчетов, меняя каждый раз координаты
           end
                                                          начальной вершины. Из полученных решений следует
           end
           else choice(fr,xr)                             выбрать результат с наименьшим значением целевой
     end;                                                 функции.
        s1:=0;
        s2:=0;
        for i:=1 to n+1 do
                  begin
                    s1:=s1+f[i];
                    s2:=s2+sqr(f[i]);
                  end;                                                 20                               30
        sig:=s2-s1*s1/(n+1);
        sig:=sig/(n+1);                                                       B
        writeln(l:3,f[l]:12:8);                                 25
               for j:=1 to n do
                   write(xl[j]);
                                                                                      15
               writeln;
        until sig<1e-10;                                        30                             10
        writeln('Минимум найден в точке');
        for j:=1 to n do
            writeln('x[',j,']=',xl[j]);                                                             A
        writeln;
        writeln('Значение               минимума
функции',f[l]);                                                 35
        writeln('Количество           вычислений
функции=',tev);
        readln;
     end.
      Целевая   функция     может    иметь    несколько
                                                                                   Рис. П.3.
минимумов. На рисунке П.3 показана топология функции от
двух переменных, которая имеет два минимума:
глобальный A и локальный B. Если координаты начальной     В      процедуре           functmin       записана функция
вершины многогранника x1j будут выбраны в окрестности     z = 100( x2 − x1 ) + (1 − x1 ) , координаты точки минимума
                                                                            2           2

точки B, то велика вероятность, что будет получено        которой x1 = x2 =1 при значении z = 0.

                          81                                                         82