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

Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления - C++

Восстановить пароль Регистрация
 
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
26.02.2014, 22:16     Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления #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 <conio.h>
#include <math.h>
#include <iostream.h>
 
double f(double x) {
 
    return   x*x*x-3;
}
int main() {
    int k_iter=0;
    double a,b,x0;
    const double eps = 0.000001;
 a = 1; b = 4;
    
    do {
        x0=(a+b)/2;
        if (f(x0)*f(a)<=0) b=x0;
        else a=x0;
 
        k_iter+=1;
 
    }
    while (fabs(a-b)>=eps);
        cout<<"x0="<<x0<<"\n";
        cout<<"k_iter="<<k_iter<<"\n";
        getch();
    return 0;
}
нужно вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления!
Нужно оформить еще через одну функцию, которая ссылается по указателю!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 22:16     Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления
Посмотрите здесь:

C++ Вычислить методом итераций корень уравнения
C++ Описать рекурсивную функцию, которая методом деления отрезка пополам находит корень уравнения
C++ Вычислить методом Ньютона корень уравнения
C++ Найти корень заданного уравнения методом простой итерации с заданной точностью
Найти корень уравнения методом половинного деления C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
26.02.2014, 22:24     Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления #2
Цитата Сообщение от Bakinowski Wlad Посмотреть сообщение
Нужно оформить еще через одну функцию, которая ссылается по указателю!
поясните указатель на функцию нужно использовть?
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
26.02.2014, 22:30  [ТС]     Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления #3
mustimur, да, но я не знаю как его оформить
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
26.02.2014, 22:57     Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления #4
Как то так
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
#include <conio.h>
#include <math.h>
#include <iostream>
 
typedef double (*fun) (double);
using namespace std;
double f(double x) {
return x*x*x-3;
}
 
double answer (double a1,double b1, fun f1)
{
int k_iter=0;
double a,b,x0;
const double eps = 0.000001;
a = a1; b = b1;
 
do {
x0=(a+b)/2;
if (f(x0)*f(a)<=0) b=x0;
else a=x0;
 
k_iter+=1;
 
}
while (fabs(a-b)>=eps);
cout<<"k_iter="<<k_iter<<"\n";
return x0; 
}
int main() {
double a,b,x0;
a = 1; b = 4;
x0 =answer(a,b,&f);  
cout<<"x0="<<x0<<"\n";
getch();
return 0;
}
Ps #include <iostream> в моем компиляторе у вас может и #include <iostream.h>
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
26.02.2014, 23:06  [ТС]     Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления #5
mustimur, спасибо, всё работает!)
Yandex
Объявления
26.02.2014, 23:06     Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления
Ответ Создать тему
Опции темы

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