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

Метод хорд, проверьте правильность кода - C++

Восстановить пароль Регистрация
 
dogg12
 Аватар для dogg12
57 / 23 / 5
Регистрация: 21.02.2011
Сообщений: 503
06.03.2014, 02:09     Метод хорд, проверьте правильность кода #1
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>
 
double func(double x)
{
    return x*x*x+20*x+8*(log(2+10*sqrt(3)));
}
 
double find(double infinum, double supremum, double epsilon)
{
    while (fabs(supremum - infinum) > epsilon)
    {
        infinum = supremum - (supremum - infinum) * func(supremum) / (func(
                supremum) - func(infinum));
        supremum = infinum - (infinum - supremum) * func(infinum) / (func(
                infinum) - func(supremum));
    }
 
    return supremum;
}
 
int main()
{
    double a = 0, b = 1;
    std::cout << find(a, b, 0.0001) << std::endl;
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 02:09     Метод хорд, проверьте правильность кода
Посмотрите здесь:

Проверьте правильность C++
C++ Проверьте правильность кода. Почему выдаёт ошибку?
C++ Проверьте правильность написания кода и коментарии
Проверьте правильность кода C++
C++ проверьте на правильность
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,913
06.03.2014, 10:12     Метод хорд, проверьте правильность кода #2
dogg12, рабочие формулы правильные?

А переменные в этом случае supremum,infinum лучше не называть.
dogg12
 Аватар для dogg12
57 / 23 / 5
Регистрация: 21.02.2011
Сообщений: 503
06.03.2014, 12:33  [ТС]     Метод хорд, проверьте правильность кода #3
если я не ошибся, то должно быть верно.
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,913
06.03.2014, 19:44     Метод хорд, проверьте правильность кода #4
dogg12, просто википедия отличает формулы секущих и хорд.
dogg12
 Аватар для dogg12
57 / 23 / 5
Регистрация: 21.02.2011
Сообщений: 503
06.03.2014, 19:54  [ТС]     Метод хорд, проверьте правильность кода #5
S_el, если учесть, что код, который предлогает википедия правилен, то мое решение верно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double f(double x)
{
    return sqrt(fabs(cos(x))) - x; // Заменить ф-ей, корни которой мы ищем
}
 
// a, b - пределы хорды, epsilon - необходимая погрешность
double findRoot(double a, double b, double epsilon)
{
    while(fabs(b - a) > epsilon)
    {
        a = b - (b - a) * f(b)/(f(b) - f(a));
        b = a - (a - b) * f(a)/(f(a) - f(b));
    }
 
    // a - i-1, b - i-тый члены
 
    return b;
}
код из википедии
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,913
06.03.2014, 19:57     Метод хорд, проверьте правильность кода #6
Цитата Сообщение от dogg12 Посмотреть сообщение
если учесть, что код, который предлагает википедия правилен, то мое решение верно.
Я видел код из википедии,но в этом-то и есть главная проблема Вики.1 человек ничего не слышал о том,что метод хорд и секущих не одно и тоже,второй убежден,что это таки 1 метод.1-ый пишет формулы,обоснование,историю и применимость.Второй-код.Кому верить спрашивается?
Yandex
Объявления
06.03.2014, 19:57     Метод хорд, проверьте правильность кода
Ответ Создать тему
Опции темы

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