Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 2 / 2
Регистрация: 17.04.2021
Сообщений: 143

Как сделать рекурсию в методе хорд?

17.05.2021, 12:15. Показов 687. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Описать рекурсивную функцию hord(a, b, e), которая методом хорд находит с точностью e корень уравнения f(x) = 0 на отрезке [а, b] (считать, что e > 0, а < b, f(a) • f(b) < 0 и f(x) – непрерывная и монотонная на отрезке [а, b]).
Метод хорд работает аналогично методу половинного деления, но отрезок [a, b] делится точкой с не пополам. Проведём хорду АВ, где А(а, f(a)), B(b, f(b)), а точка С(с, 0) получается при пересечении этой хорды с осью абсцисс. Формулу для с вывести нетрудно, используя уравнение прямой АВ и подставив в него у =0.
c = a - (f(a) * (b-a)/f(b)-f(a))

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
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <cmath>
using namespace std;
double  f(double x)
{
    return (x - 1) * (x - 1) - 5;
}
double hord(double (*f)(double),double & a, double& b, double& eps,int& z)
{      double t;
    while (fabs(b - a) >= eps) {
        t = a - (f(a) * (b - a)) / (f(b) - f(a));  
        //cout << "t= " << t << endl;
        //cout << "f(a)= " << f(a) << endl;
        //cout << "f(b)= " << f(b) << endl;
        //cout << "f(t)= " << f(t) << endl;
        if (f(a) * f(t) < 0) {
            b = t;
                  cout << "b= " << b;
        }
        else if (f(t) * f(b) < 0) 
        {
             a = t;
                  cout << "a= " << a;
        }
    }
    t = round(t / eps) * (pow(0.1, z));
    return t;
}
//--------------------------------------------------------------
int  main()
{
    setlocale(LC_ALL, "Russian");
    int povtor = 1;
    double a,b,eps;
    int z;
    while(povtor!=0)
    {
    cout << "Введите значение a(<b): ";
    cin >> a;
    cout << "Введите значение b(>a): ";
    cin >> b;
    while (a >= b)
    {
        cout << "\nОшибка, введите a<b \n \nВведите a: ";
        cin >> a;
    }
    while (b <= a)
    {
        cout << "\nОшибка, введите b>a \n \nВведите b: ";
        cin >> b;
    }
    cout << "Введите точность : ";
    cin >> z;
    eps = 1/(pow(10, z));
    double t = hord(f,a,b,eps,z);
    cout << "x=" << t << " f(x)=" << f(t) << endl;
    //cout << "Функция = " << hord(a, b, eps);
    cout << "\nХотите продолжить?(1 -да, 0 - нет): ";
    cin >> povtor;
    }
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2021, 12:15
Ответы с готовыми решениями:

Ошибка в методе хорд
f=inline('exp(x)-2.5*(cos(x)).^2-3'); a=0; E=input('Введите точность 0.001 или 0.00001 или 0.00000001 E='); a=0; b=2; j=0; ...

Найти ошибки в Методе хорд
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;cmath&gt; using namespace std; int main() { setlocale (0,&quot;&quot;); double x, a, b,...

Не могу найти ошибку в методе дихотомии и хорд
Решил уравнение двумя методами, корни получаются разные, причем как в одном так и другом неправильно(сказал преподаватель) не могу найти...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2021, 12:15
Помогаю со студенческими работами здесь

Как сделать рекурсию?
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include&lt;windows.h&gt; #include &lt;iostream&gt; int main(void) { ...

Как сделать рекурсию?
Помогите, как сделать рекурсию? Ставлю nod = b(p1,p2); За этим следует ошибка Process is terminated due to StackOverflowException ...

Как из этого сделать рекурсию
В файле записанно 1 число, вот так все работает, но как сделать рекурсию из этого? def primfacs(): fl = open('1.txt') ...

Как сделать из этого рекурсию?
код не проходит тест по времени помогите сделать из этого рекурсию вместо цикла using System; public class Test { public static...

Как это сделать через рекурсию?
using System; class Program { public int a = new int; public int n; public int k; public int rec(int i, int...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер