Форум программистов, компьютерный форум CyberForum.ru

Метод перебора - C++

Восстановить пароль Регистрация
 
CrazyHead
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 13
02.06.2011, 12:17     Метод перебора #1
Задание: Написать программу для поиска экстремума функцие методом перебора.

Алгоритм:
Шаг1. Выбрать начальный шаг sh=(b-a)/4. Положить x0=a. Вычислить F(x0).
Шаг2. Положить x1=x0+sh. Вычислить F(x1).
Шаг3. Сравнить F(x0) и F(x1). Если F(x0)>F(x1), то перейти к шагу 4, иначе -- к шагу 5.
Шаг4. Положить x0=x1 и F(x0)=F(x1). Проверить условие принадлежности x0 интервалу [a,b]. Если a < x0 < b, то перейти к шагу 2, иначе -- к шагу 5.
Шаг5. Проверка на окончание поиска: если |sh| <= eps, то вычисления завершить, полагая xm=x0, Fm=F(x0), иначе -- перейти к шагу 6.
Шаг6. Изменить направление поиска: положить x0=x1, F(x0)=F(x1), sh=-sh/4. Перейти к шагу 2.

Собственно всё что я смог написать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cmath>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
using namespace std;
 
const float epsilon=1e-10;
 
float f(float x)
{
    float y,k,j,l;
    return y=k*x*x+l*x+j;
}
 
int main()
{
        float r,k,j,l,a,b,f1,f2,dx,x0;
   printf("Vvedi koefficienti k l j \n");
   scanf("%f" ,&k);
   scanf("%f" ,&l);
   scanf("%f" ,&j);
   printf("Vvedi interval \n");
   scanf("%f" ,&a);
   scanf("%f" ,&b);
       dx=(b-a)/4;
       x0=a;
       f(0)=k*x0*x0+l*x0+j;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 12:17     Метод перебора
Посмотрите здесь:

Алгоритм перебора C++
C++ Ускорение алгоритма перебора
Задача перебора элементов C++
C++ Программа метод перебора
C++ Поиск массива методом последовательного перебора
Объяснить алгоритм просто перебора C++
Оптимизация полного перебора C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 11:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru