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

Вычисление тангенса с заданой точностью - C++

Восстановить пароль Регистрация
 
Kakadrilus
1 / 1 / 0
Регистрация: 08.11.2013
Сообщений: 24
19.12.2013, 15:45     Вычисление тангенса с заданой точностью #1
Задача. Решить уравнение x*tg(x)=a методом половинного деления с заданой точностью е=0,0001.
Спасибо заранее.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
19.12.2013, 16:19     Вычисление тангенса с заданой точностью #2
В какой области искать решения? Ты хоть понимаешь, что данное уравнение в общем случае имеет бесконечное множество решений!
Kakadrilus
1 / 1 / 0
Регистрация: 08.11.2013
Сообщений: 24
19.12.2013, 18:59  [ТС]     Вычисление тангенса с заданой точностью #3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
В какой области искать решения? Ты хоть понимаешь, что данное уравнение в общем случае имеет бесконечное множество решений!
точно,забыл сказать, что интервал можно считывать с клавиатуры.

Добавлено через 1 час 39 минут
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
В какой области искать решения? Ты хоть понимаешь, что данное уравнение в общем случае имеет бесконечное множество решений!
думаю если задать интервал на котором точно будет 1 корень, то так тоже можно, к примеру, [0,1]
max777alex
44 / 44 / 3
Регистрация: 01.02.2012
Сообщений: 822
19.12.2013, 19:31     Вычисление тангенса с заданой точностью #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
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
 
const double EPS = 0.0001;
double a;
double l, r;
 
double f(double x)
{
    return x * tan(x);
}
 
int main()
{
   cin >> a >> l >> r;
 
   while(fabs(r - l) > EPS)
    {
        double m = (r + l) / 2;
        double res = f(m);
        if(res > a)
            l = m;
        else 
            r = m;
    }
 
    printf("%.10f\n", (r + l) / 2);
 
    return 0;
}
Kakadrilus
1 / 1 / 0
Регистрация: 08.11.2013
Сообщений: 24
19.12.2013, 19:43  [ТС]     Вычисление тангенса с заданой точностью #5
Цитата Сообщение от max777alex Посмотреть сообщение
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
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
 
const double EPS = 0.0001;
double a;
double l, r;
 
double f(double x)
{
    return x * tan(x);
}
 
int main()
{
   cin >> a >> l >> r;
 
   while(fabs(r - l) > EPS)
    {
        double m = (r + l) / 2;
        double res = f(m);
        if(res > a)
            l = m;
        else 
            r = m;
    }
 
    printf("%.10f\n", (r + l) / 2);
 
    return 0;
}
спасибо большое, только можешь, пожалуйста объяснить пару моментов?
насколько я понял l,r - это левая и правая границы интервала, а-наш параметр.
мне не понятно что мы делаем в этих строчках
C++
1
double res = f(m);
что такое res?
max777alex
44 / 44 / 3
Регистрация: 01.02.2012
Сообщений: 822
19.12.2013, 19:45     Вычисление тангенса с заданой точностью #6
Цитата Сообщение от Kakadrilus Посмотреть сообщение
спасибо большое, только можешь, пожалуйста объяснить пару моментов?
насколько я понял l,r - это левая и правая границы интервала, а-наш параметр.
мне не понятно что мы делаем в этих строчках
C++
1
double res = f(m);
что такое res?
res - значение функции f в точке m, а функция f объявлена выше
Kakadrilus
1 / 1 / 0
Регистрация: 08.11.2013
Сообщений: 24
19.12.2013, 19:53  [ТС]     Вычисление тангенса с заданой точностью #7
Цитата Сообщение от max777alex Посмотреть сообщение
res - значение функции f в точке m, а функция f объявлена выше
printf("%.10f\n") - что означает %.10f?
Извините за мою тупость..программирование трудно дается.
max777alex
44 / 44 / 3
Регистрация: 01.02.2012
Сообщений: 822
19.12.2013, 19:55     Вычисление тангенса с заданой точностью #8
Цитата Сообщение от Kakadrilus Посмотреть сообщение
printf("%.10f\n") - что означает %.10f?
Извините за мою тупость..программирование трудно дается.
это означает, что выведется 10 знаков после запятой
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2013, 20:00     Вычисление тангенса с заданой точностью
Еще ссылки по теме:

Функция округления вещественного числа с заданой точностью C++
Вычисление суммы ряда с точностью E>0 C++
Вывести таблицу значений функции с заданой точностью C++

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

Или воспользуйтесь поиском по форуму:
Kakadrilus
1 / 1 / 0
Регистрация: 08.11.2013
Сообщений: 24
19.12.2013, 20:00  [ТС]     Вычисление тангенса с заданой точностью #9
Цитата Сообщение от max777alex Посмотреть сообщение
это означает, что выведется 10 знаков после запятой
спасибо большое!
Yandex
Объявления
19.12.2013, 20:00     Вычисление тангенса с заданой точностью
Ответ Создать тему
Опции темы

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