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

Посчитать arcsin как сумму ряда - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Sergeymd
 Аватар для Sergeymd
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 45
16.09.2010, 13:51     Посчитать arcsin как сумму ряда #1
Нужно посчитать arcsin как сумму ряда с заданной точностью Посчитать arcsin как сумму ряда

Функция выводит в большинстве случаев nan(наверно из за двойного факториала)

Java
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
    public double dfact(int n) {
        double res = 1.0;
        for (int i = n; i >= 1; i -= 2) {
            res *= i;
        }
        return res;
    }
    
    public double myarcsin(double x) {
 
        double eps = 0.0001;
        double retVal = 0;
        int k = 1;
        double prev = 0;
        try {
            do {
                prev = retVal;
                retVal += (dfact(2 * k - 1) * Math.pow(x, 2 * k + 1))
                        / dfact(2 * k) * 2 * k + 1;
 
                k++;
            } while ((Math.abs(retVal - prev)) > eps);
 
        } catch (Exception ee) {
            System.out.print(ee.toString());
        }
        return retVal + x;
    }
ps: Писал на жаве но думаю особой разницы нет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2010, 13:51     Посчитать arcsin как сумму ряда
Посмотрите здесь:

Посчитать сумму ряда C++
C++ Посчитать сумму ряда.
C++ Посчитать частичную сумму ряда
Посчитать сумму ряда C++
Посчитать сумму ряда C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
16.09.2010, 15:05     Посчитать arcsin как сумму ряда #2
В строке 19 двух пар скобок не хватает.
Писал на джаве - так почему бы не спросить в соответствующем разделе?
Black Fregat
 Аватар для Black Fregat
1353 / 983 / 215
Регистрация: 31.05.2009
Сообщений: 4,093
16.09.2010, 15:25     Посчитать arcsin как сумму ряда #3
Ну кто так делает.. Эти учебные задачи для того и даются, чтобы донести до Вас мысль о том, что не надо рассчитывать очередной член ряда "в лоб".. Если отталкиваться от предыдущего члена (в Вашем случае - от предыдущего "через один") - там всего несколько умножений, никаких факториалов, никаких степеней
Sergeymd
 Аватар для Sergeymd
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 45
19.09.2010, 15:22  [ТС]     Посчитать arcsin как сумму ряда #4
ну вот эту закономерность ряда что то не могу выявить

Добавлено через 9 минут
во к примеру есть такой вариант, но как его получили
Java
1
2
3
4
5
6
7
8
9
public double myarcsin(double x, double eps) {
        double a = x;
        double ret_val = a;
 
        for (double k = 1.0; Math.abs(a) > eps; ++k, ret_val += a) {
            a *= ((4.0 * k * (k - 1.0) + 1.0) * x * x) / (k * (4.0 * k + 2.0));
        }
        return ret_val;
    }
Yandex
Объявления
19.09.2010, 15:22     Посчитать arcsin как сумму ряда
Ответ Создать тему
Опции темы

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