Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209

Какой из методов не верен?

24.02.2013, 03:07. Показов 684. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Было задание написать метод Дихотомии и Золотого сечения.
Написал проги но на одних и тех же функциях с одинаковой погрешностью и интервалом, выдаётся разный ответ.
Какой метод я неверно написал не могу понять...
Дихотомия
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Дихотомия.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"//все включения здесь
using namespace std;
 
//Функция
double f(double x)
{
    return x*sin(x);
}
 
//метод дихотомии, возвращает max значение на отрезке [a;b] 
double dichotomia(double a, double b, double e)
{
    double ak=a, bk=b,tau=(e/3);
    do 
    {
        //шаг 1 вычисление альфа и бета на текущей итерации
        double alpha_k=(ak + bk)/2-tau;
        double beta_k=(ak + bk)/2+tau;
        //шаг 2
        if(f(alpha_k) < f(beta_k))
        {
            bk = beta_k;
        }
        else
        {
            ak = alpha_k;
        }
    } 
    while (!(ak-bk<=e));//условие выхода из цикла с заданной погрешностью
    return (ak+bk)/2;//Возвращаем ответ
}
 
//точка входа в приложение
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");//русская локаль
    printf("Метод \"Дихотомии\"\nВведите интервал отрезка [a;b]\n");
    double a=0,b=0,e=0;
    cin>>a>>b;
    printf("Введите погрешность e\n");
    cin>>e;
    printf("Ответ: %f\n",dichotomia(a,b,e));
    system("pause");//ждём реакции юзера
    return 0;
}

Золотое сечение
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Золотое_Сечение.cpp: определяет точку входа для консольного приложения.
//Реализует метод золотого сечения
 
#include "stdafx.h"//Все включения для этого проекта тут
using namespace std;
 
//Функция
double f(double x)
{
    return x*sin(x);
}
 
//метод золотого сечения, возвращает max значение на отрезке [a;b] 
double golden_ratio(double a, double b, double e)
{
    double ak=a, bk=b,lambda=sqrt((5)-1)/2;     
    //задаём начальные значения альфы и беты
    double alpha_k = a + (1 - lambda)*(b - a);
    double beta_k = a + lambda*(b - a);
    do //Начало цикла
    {
        if(f(ak)>f(bk))//если f(ak)>f(bk)
        {
            //шаг 2
            ak = alpha_k;
            alpha_k=beta_k;
            beta_k = ak + lambda*(bk - ak);
        }
        else
        {
            //шаг 3
            bk = beta_k;
            beta_k = alpha_k;
            alpha_k=ak + (1 - lambda)*(bk - ak);;
        }
    }
    while (!((bk-ak)<e));
    return f((ak+bk)/2);//результат выполнения функции
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    printf("Метод \"Золотого сечения\"\nВведите интервал отрезка [a;b]\n");
    double a=0,b=0,e=0;
    cin>>a>>b;
    printf("Введите погрешность e\n");
    cin>>e;
    printf("Ответ: %f\n",golden_ratio(a,b,e));
    system("pause");//ждём реакции юзера
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.02.2013, 03:07
Ответы с готовыми решениями:

Какой из следующих интерфейсов верен
A) interface А {void Print() {};} B) abstract interface А {Print();} C) abstract interface A { abstract void Print() {};} ...

Если ключ не верен — вывести пустой массив, если верен — вывести этот массив
Как мне здесь сделать условие? &quot;Если ключ не верен - вывести пустой массив, если верен - вывести этот массив&quot; это файл сервиса ...

Какой класс необходим для методов мыши?
одскажите пожалуйста,какой класс нужен для того, что установить положение курсора мыши в точку с координатами, скрыть мышь, установить...

6
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.02.2013, 12:19
Kill100, такое возможно, если погрешность велика. И, кстати, метод золотого сечения, на самом деле, является частным случаем дихотомии. Так что вам достаточно только одной правильной реализации.
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,722
24.02.2013, 14:21
Собственно, что за вопрос? Возьми результат для функи с известным корнем, сравни -- по крайней мере, какой неверен (стесняюсь спросить, а вдруг оба?) станет ясно.
0
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
24.02.2013, 15:51  [ТС]
Цитата Сообщение от iama Посмотреть сообщение
Kill100, такое возможно, если погрешность велика. И, кстати, метод золотого сечения, на самом деле, является частным случаем дихотомии. Так что вам достаточно только одной правильной реализации.
Ну так отличаться на 1 при погрешность в 0.001 не может же...
PS я да же не знаю что ищу максимум или минимум.
0
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
26.02.2013, 12:27  [ТС]
Дихотомия верна Щас в маткаде проверял. А ошибку в сечении найти не могу (
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
26.02.2013, 12:45
Цитата Сообщение от Kill100 Посмотреть сообщение
C++
1
lambda=sqrt((5)-1)/2;
а чего какой странный короень из числа? 5-1 О_О зачем?, или имелась ввиду запись ?
C++
1
(sqrt(5.)-1)/2.
1
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
26.02.2013, 13:01  [ТС]
Цитата Сообщение от aLarman Посмотреть сообщение
а чего какой странный короень из числа? 5-1 О_О зачем?, или имелась ввиду запись ?
C++
1
(sqrt(5)-1)/2
Ого спасибо чел. Не заметил такой фигни.
Должно было быть
https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{sqrt(5)-1}{2}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.02.2013, 13:01
Помогаю со студенческими работами здесь

Какой из методов интегрирования наиболее точный и почему
Метод Симпсона, прямоугольников или трапеций?

Считывание файла: какой из приведенных методов эффективнее
у меня есть 2 класа которые считывают даны с 1 файла но делают это по разному: Вопрос: какой делает это ефективные ? клас№1 ...

Явно указать какой из перегруженных методов надо вызвать
Смотрите, есть 2 перегруженных метода (exe), делают одно и тоже, возвращают немного разные результаты, более конкретно класс при помощи...

Какой (какие) из методов Parse или TryParse вызывает исключение
A) Parse B) TryParse C) Оба вызывают D) Оба не вызывают

Какой интерфейс идентичен ICollection<T> но без методов Add(), Remove(), Clear()
Добрый вечер! Не подскажите интерфейс, который идентичен ICollection&lt;T&gt;, за исключением того, что в нём отсутствую методы Add(),...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru