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

Вычисление арккотангенса через арктангенс, разложенный в степенные ряды - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Безбашенное
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 7
03.01.2013, 00:55     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #1
ошибки :
не возвращает 0, ругается на i...помогите исправить
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
#include<iostream>
using namespace std;
 
double atan(int n, double x)
{
    
for (register int i=0; i<= n ;i++)
    double atan = 0;
    atan+=(pow((-1),i)/(2*i+1))*pow(x,2*i +1);
 
    return 0;
}
 
 
void main()
{
    setlocale(LC_ALL, "Russian");
    long acot; int n; double x;
    cout<< "введите n";
    cin>> n;
    cout << "введите x";
    cin>> x;
    if (abs(x)>1) cout<< "некорректное значение X"; 
    acot=atan(n,x)+2*atan(n,1);
    cout<<"arcctg"<<x<<"="<<acot;
    return ;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2013, 00:55     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды
Посмотрите здесь:

C++ Ряды.Вычисление суммы ряда с заданной погрешностью.
C++ ArcSec через степенные ряды
C++ Вычисление матричных выражений через функции
C++ Есть ли в С++ функция арккотангенса?
Вычислить арктангенс через разложение в ряде Тейлора C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
03.01.2013, 01:49     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #2
Цитата Сообщение от Безбашенное Посмотреть сообщение
double atan = 0;
* * atan+=(pow((-1),i)/(2*i+1))*pow(x,2*i +1);
- кто даёт переменным служебные имена?atan это имя функции из cmath почему то мы не пишем double sqrt = pow(2,.5) ну а почему тогда atan такая участь постигла?

Цитата Сообщение от Безбашенное Посмотреть сообщение
register int
- это что за тип такой register?
Цитата Сообщение от Безбашенное Посмотреть сообщение
double atan(int n, double x)
- функция и возврат нуля
Цитата Сообщение от Безбашенное Посмотреть сообщение
return 0;
- это вообще ни в какие ворота.
Мэйн тоже плох...
Могу посоветовать прочесть http://www.cyberforum.ru/faq/thread4...ml#post2449607
ниже будут коды копипаста и по разложениям в ряд Тейлора...
HighPredator
 Аватар для HighPredator
5342 / 1725 / 320
Регистрация: 10.12.2010
Сообщений: 5,108
Записей в блоге: 3
03.01.2013, 02:07     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
это что за тип такой register
Это не тип. Это рекомендация компилятору разместить переменную данного типа в машинном регистре. Такое применяют для ускорения циклов.
-=ЮрА=-
03.01.2013, 03:13
  #4

Не по теме:

HighPredator, спасибо, но я вообще-то адресовал свой вопрос автору темы. Так вот да будет всем известно, что register это рекомендация такая же как inline и компилятор может просто игнорировать спецификатор register и обрабатывать переменную как обычно

Безбашенное
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 7
03.01.2013, 03:14  [ТС]     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
кто даёт переменным служебные имена?atan это имя функции из cmath почему то мы не пишем double sqrt = pow(2,.5) ну а почему тогда atan такая участь постигла?
библиотека стандартных математических функций не подключена, так что компилятору без разницы) но впредь постараюсь больше так не делать.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
функция и возврат нуля
а, да. туплю.
исправила на возвращение значения atan , пишет - тип возвращаемого значения не соответствует типу функции.
не будем пока принимать во внимание моё не понимание степенных рядов, мне бы с ошибками компиляции разобраться....
-=ЮрА=-
Заблокирован
Автор FAQ
03.01.2013, 03:24     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #6
Цитата Сообщение от Безбашенное Посмотреть сообщение
библиотека стандартных математических функций не подключена, так что компилятору без разницы)
- да неужели?У вас функция
Цитата Сообщение от Безбашенное Посмотреть сообщение
double atan(int n, double x)
и переменная
Цитата Сообщение от Безбашенное Посмотреть сообщение
double atan = 0;
- хуже придумать просто невозможно
В остальном повторюсь код плох и править его не могу - мозг просто отказывается исправлять, если напишите формулу разложения напишу код подобный этому
Вычисление функций с использованием их разложения в степенной ряд

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Могу посоветовать прочесть http://www.cyberforum.ru/faq/thread4...ml#post2449607
вобще то я не воздух сотрясал - там материал который способен научить, ну ладно не хотите как хотите...

Безбашенное
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 7
03.01.2013, 03:28  [ТС]     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #7
Да поняла уже, что фигню нагородила
-=ЮрА=-
03.01.2013, 03:35
  #8

Не по теме:

Безбашенное, я отвечал не с целью вас унизить или ещё что либо а с целью помощи, повторюсь

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
если напишите формулу разложения напишу код подобный этому
пока я просто предлагаю свою помощь, вот

Безбашенное
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 7
03.01.2013, 04:07  [ТС]     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #9
Задание:
Реализовать вычисление arcctg до заданного знака после десятичной точки e через степенные ряды, не прибегая к использованию стандартных библиотечных функций.

http://www.cyberforum.ru/cgi-bin/latex.cgi?arctg=\sum_{n=0}^{\propto }  ((-1)^n/(2n+1))*x ^(2n+1)

arcctg x = arctg( x) + 2*arctg( 1)

Добавлено через 1 минуту
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
пока я просто предлагаю свою помощь, вот
Ваша помощь мне очень пригодится)

Добавлено через 2 минуты
там Х^(2n+1)
-=ЮрА=-
Заблокирован
Автор FAQ
03.01.2013, 04:41     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #10
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n} = {(-1)}^{n}*\frac{{x}^{2*n + 1}}{2*n + 1}
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n + 1} = {(-1)}^{n + 1}*\frac{{x}^{2*(n + 1) + 1}}{2*(n + 1) + 1}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{a}_{n + 1}}{{a}_{n}} = \frac{{(-1)}^{n + 1}*\frac{{x}^{2*(n + 1) + 1}}{2*(n + 1) + 1}}{{(-1)}^{n}*\frac{{x}^{2*n + 1}}{2*n + 1}} = (-1)*{x}^{2}*\frac{2*n + 1}{2*n + 3}
Чтобы далеко не ходить лишь немножко подправляю код
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Вычисление функций с использованием их разложения в степенной ряд
и использую его для нахождения арктангенса, арккотангенс уже за вами
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 <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
 
double S(double x, double err, double &n)
{
    double an  = x;
    double sum = 0;
    for(n = 0; err < fabs(an); n = n + 1)
    {
        sum += an;
        an  *= (-1)*x*x*(2*n + 1)/(2*n + 3.0);
    }
    return sum;
}
 
int main()
{
    double xn, xk, dx, s, n;
    cout<<"xn = ";cin>>xn;
    cout<<"xk = ";cin>>xk;
    cout<<"dx = ";cin>>dx;
    cout<<"|  x  |  Sum  |atan(x)| n |\n";
    for(double x = xn; x <= xk; x = x + dx)
    {
        s = S(x, 1E-4, n);
        cout<<setw(5)<<setprecision(3)<<x<<" | "
            <<setw(5)<<setprecision(3)<<s<<" | "
            <<setw(5)<<setprecision(3)<<atan(x)<<" | "
            <<n<<endl;
    }
    system("pause");//Для CodeBlocks добавить в инклуды <cstdlib>
    return 0;
}
Миниатюры
Вычисление арккотангенса через арктангенс, разложенный в степенные ряды  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2013, 04:47     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды
Еще ссылки по теме:

C++ Вычисление косинуса через ряд
C++ Вычисление выражения через цикл for
C++ Вычисление факториала через двусвязный список

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
03.01.2013, 04:47     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды #11
В заключение проверка в codpad.org
http://codepad.org/QlnjbdNx
Output:
xn = xk = dx = | x | Sum |atan(x)| n |
0.2 | 0.197 | 0.197 | 2
0.3 | 0.291 | 0.291 | 3
0.4 | 0.38 | 0.381 | 4
0.5 | 0.464 | 0.464 | 5
0.6 | 0.54 | 0.54 | 7
0.7 | 0.611 | 0.611 | 9
0.8 | 0.675 | 0.675 | 13
0.9 | 0.733 | 0.733 | 25
1 | 0.785 | 0.785 | 5e+03
на сим считаю что могу закончить с помощью и лишь порекомендовать прочесть мой FAQ по рядам
Yandex
Объявления
03.01.2013, 04:47     Вычисление арккотангенса через арктангенс, разложенный в степенные ряды
Ответ Создать тему
Опции темы

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