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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ask13
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 8
#1

Решение уравнения методом хорд с применением рекурсии Ошибка - C++

17.04.2013, 13:29. Просмотров 562. Ответов 0
Метки нет (Все метки)

Написать программу, использующую рекурсивную функцию rооt(f, а, b, ерs), которая методом хорд находит с точностью ерs корень уравнения f(x) = 0 на отрезке [а, b]. Считать, что ерs > 0, а < b, и f(x) – непрерывная и монотонная функция на отрезке [a, b].
Ошибки:
1. Выдаёт что корень есть на том участке, на котором его нет.
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
29
30
31
32
33
34
35
#include <stdio.h>
#include <conio.h>
#include <math.h>
double f(double x)
{
    return sqrt(fabs(cos(x))) - x; // Заменить ф-ей, корни которой мы ищем
}
 
// a, b - пределы хорды, epsilon - необходимая погрешность
double Root(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;
}   
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    double a, b, eps;
    cout << "Введите a, b:\n";
    cin >> a >> b;
    cout << "Введите epsilon:\n";
    cin >> eps;
    cout << "Ответ: " << root(a, b, eps);
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2013, 13:29     Решение уравнения методом хорд с применением рекурсии Ошибка
Посмотрите здесь:

C++ Решение уравнений методом хорд на C++
Решение нелинейного уравнения. Метод хорд и касательных C++
Решение уравнения методом бисекции с использованием рекурсии C++
Решение уравнений методом хорд C++
C++ Решение уравнения методом ломаных
Найти корень уравнения методом хорд и методом касательных C++
Решение уравнения методом хорд и касательных C++
C++ Решение уравнения методом половинного деления и методом итераций
Написать функцию, находящую корни уравнения методом хорд с использованием указателей C++
Найти корни уравнения методом хорд C++
Найти корень уравнения методом хорд C++
C++ найти корень уравнения методом хорд

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

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

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