на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Методы одномерной оптимизации
p align="left">Сводная таблица результатов №3

f(x) = (127/4)x2-(61/4)x+2

Начальная

точка

Шаг

Отрезок

Число итераций

0

0.5

[-0.5;0.5]

2

0

1

[-1;1]

2

1

0.5

[-1;0.5]

3

1

1

[-1;1]

2

2

0.5

[-2;1]

4

2

1

[-2;1]

3

-10

0.5

[-6;6]

6

-10

1

[-6;6]

5

10

0.5

[-6;6]

6

10

1

[-6;6]

5

Задание 2

Найти точки минимума внутри найденного отрезка локализации минимума методом золотого сечения.

(Программа должна обеспечить на каждой итерации метода вывод на экран:

§ номера итерации,

§ границ текущего отрезка [a, b],

§ внутренних точек и значений функции в них,

а затем

§ финальной оценки x* точки минимума функции f(x)

§ соответствующего точке x* значения функции f(x*)).

Текст программы на С++

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

#include <conio.h>

#include <stdlib.h>

double function (double); // вычисляет значение функции в данной точке

void main (void)

{

double a, b, E, F1, F2, LM, x = 0, fc, fd, fx, i = 0, c = 0, d = 0; // Определение переменных

clrscr();

cout << "Введите границы начального отрезка:" << endl << "a0 = ";

cin >> a;

cout << "b0 = ";

cin >> b;

cout << "Введите число Е:" << endl << "E = ";

cin >> E;

clrscr();

cout << "Границы начальнога отрезка:"<< endl <<"а[" << i << "] = " << a << endl;

cout << "b[" << i << "] = " << b << endl;

cout << "Число Е = " << E << endl;

F1 = (3 - sqrt(5))*0.5;

F2 = 1 - F1;

do

{

LM = b - a;

cout << endl << "Номер итерации " << i + 1 << endl;

cout << "Границы текущего отрезка:" << endl << "а[" << i << "] = " << a << endl;

cout << "b[" << i << "] = " << b << endl;

if (LM <= E)

{

x = (a + b)*0.5;

fx = function(x);

cout << "Точка минимума x = " << setprecision(10) << x << endl;

cout << "Значение функции F(x) в точке минимума = " << setprecision(10) << fx << endl;

cout << "Press any key";

getch();

exit(0);

}

else

{

c = a + F1 * LM;

d = a + F2 * LM;

fc = function(c);

fd = function(d);

cout << "Значение внутренней точки с[" << i << "] = " << setprecision(10) << c << endl;

cout << "Значение внутренней точки d[" << i << "] = " << setprecision(10) << d << endl;

cout << "Значение функции F(x) в точке с[" << i << "] = " << setprecision(10) << fc << endl;

cout << "Значение функции F(x) в точке d[" << i << "] = " << setprecision(10) << fd << endl;

}

if (fc == fd)

{

a = c;

b = d;

x = (a + b)*0.5;

fx = function(x);

cout << "Точка минимума x = " << setprecision(10) << x << endl;

cout << "Значение функции F(x) в точке минимума = " << setprecision(10) << fx << endl;

cout << "Press any key";

getch();

exit(0);

}

else

{

if (fc < fd)

{

a = a;

b = d;

i++;

}

else

{

a = c;

b = b;

i++;

}

}

}

while (1);

}

double function (double x)

{

double y;

y = x * x - 12 * x;

return (y);

}

Решение задачи

Функция f(x) = x2-12x

Границы начального отрезка:

а[0] = -9

b[0] = 11

Число Е = 0.1

Номер итерации 1

Границы текущего отрезка:

а[0] = -9

b[0] = 11

Значение внутренней точки с[0] = -1.36

Значение внутренней точки d[0] = 3.36

Значение функции F(x) в точке с[0] = 18.17

Значение функции F(x) в точке d[0] = -29.03

Номер итерации 2

Границы текущего отрезка:

а[1] = -1.36

b[1] = 11

Значение внутренней точки с[1] = 3.36

Значение внутренней точки d[1] = 6.27

Значение функции F(x) в точке с[1] = -29.03

Значение функции F(x) в точке d[1] = -35.92

Номер итерации 3

Границы текущего отрезка:

а[2] = 3.36

b[2] = 11

Значение внутренней точки с[2] = 6.27

Значение внутренней точки d[2] = 8.08

Значение функции F(x) в точке с[2] = -35.92

Значение функции F(x) в точке d[2] = -31.66

Номер итерации 4

Границы текущего отрезка:

а[3] = 3.36

b[3] = 8.08

Значение внутренней точки с[3] = 5.16

Значение внутренней точки d[3] = 6.27

Значение функции F(x) в точке с[3] = -35.3

Значение функции F(x) в точке d[3] = -35.92

Номер итерации 5

Границы текущего отрезка:

а[4] = 5.16

b[4] = 8.08

Значение внутренней точки с[4] = 6.27

Значение внутренней точки d[4] = 6.96

Значение функции F(x) в точке с[4] = -35.92

Значение функции F(x) в точке d[4] = -35.06

Номер итерации 6

Границы текущего отрезка:

а[5] = 5.16

b[5] = 6.96

Значение внутренней точки с[5] = 5.85

Значение внутренней точки d[5] = 6.27

Значение функции F(x) в точке с[5] = -35.97

Значение функции F(x) в точке d[5] = -35.92

Номер итерации 7

Границы текущего отрезка:

а[6] = 5.16

b[6] = 6.27

Значение внутренней точки с[6] = 5.58

Значение внутренней точки d[6] = 5.85

Значение функции F(x) в точке с[6] = -35.83

Значение функции F(x) в точке d[6] = -35.97

Номер итерации 8

Границы текущего отрезка:

а[7] = 5.58

b[7] = 6.27

Значение внутренней точки с[7] = 5.85

Значение внутренней точки d[7] = 6.01

Значение функции F(x) в точке с[7] = -35.97

Значение функции F(x) в точке d[7] = -35.99

Номер итерации 9

Границы текущего отрезка:

а[8] = 5.85

b[8] = 6.27

Значение внутренней точки с[8] = 6.01

Значение внутренней точки d[8] = 6.11

Значение функции F(x) в точке с[8] = -35.999

Значение функции F(x) в точке d[8] = -35.986

Номер итерации 10

Границы текущего отрезка:

а[9] = 5.85

b[9] = 6.11

Значение внутренней точки с[9] = 5.95

Значение внутренней точки d[9] = 6.01

Значение функции F(x) в точке с[9] = -35.997

Значение функции F(x) в точке d[9] = -35.999

Номер итерации 11

Границы текущего отрезка:

а[10] = 5.95

b[10] = 6.11

Значение внутренней точки с[10] = 6.01

Значение внутренней точки d[10] = 6.05

Значение функции F(x) в точке с[10] = -35.999

Значение функции F(x) в точке d[10] = -35.997

Номер итерации 12

Границы текущего отрезка:

а[11] = 5.95

b[11] = 6.05

Значение внутренней точки с[11] = 5.99

Значение внутренней точки d[11] = 6.01

Значение функции F(x) в точке с[11] = -35.999

Значение функции F(x) в точке d[11] = -35.999

Номер итерации 13

Границы текущего отрезка:

а[12] = 5.95

b[12] = 6.01

Точка минимума x = 5.981

Значение функции F(x) в точке минимума = -35.999999

f(x) = x2-12x

?

отрезки?

Точка минимума

Значение функции

Число итераций

0.1

[2;8]

6.003

-35.999999

10

[-9;11]

5.981

-35.999999

13

[4;11]

5.996

-35.999999

10

[-7;13]

6.018

-35.999966

13

[2;16]

6.006

-35.999957

12

[0;30]

6.002

-35.999997

13

[2;8]

6.003

-35.999999

10

[0;20]

6.005

-35.999965

13

f(x) = 2x2+(16/x)

?

отрезки?

Точка минимума

Значение функции

Число итераций

0.01

[0.6;2.6]

1.5875

15.119055

13

[-0.4;3.6]

1.5820

15.119055

15

[1;3]

1.5861

15.119055

14

[0;2]

1.5874

15.119052

13

[-0.9;2.1]

1.5880

15.119050

13

[-1.9;4.1]

1.5864

15.119057

15

[-5;9]

1.5862

15.119061

17

[-4;8]

1.5866

15.119055

16

f(x) = (127/4)x2 - (61/4)x+2

?

Отрезки?

Точка минимума

Значение функции

Число итераций

0.001

[-0.5;0.5]

0.2418

0.18548

16

[-1;1]

0.2418

0.18548

17

[-1;0.5]

0.2420

0.18548

17

[-1;1]

0.2418

0.18548

17

[-2;1]

0.2420

0.18548

18

[-2;1]

0.2420

0.18548

18

[-6;6]

0.2418

0.18548

21

[-6;6]

0.2418

0.18548

21

[-6;6]

0.2418

0.18548

21

[-6;6]

0.2418

0.18548

21

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.