Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2013, 20:58   #11
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Код:
a=a*(pow((x+2.0)),n))/pow(2.0,n);
так?
Diana528 вне форума Ответить с цитированием
Старый 07.09.2013, 20:59   #12
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от Diana528 Посмотреть сообщение
Код:
a=a*(pow((x+2.0)),n))/pow(2.0,n);
так?
Так хуже. У Вас же переменная "a" изначально нулю равна. Вы всегда ноль будите получать. Зачем умножать?
8Observer8 вне форума Ответить с цитированием
Старый 07.09.2013, 21:01   #13
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

как тогда?
Diana528 вне форума Ответить с цитированием
Старый 07.09.2013, 21:02   #14
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Похоже, что так

Код:
    for (i = 0; i <= n; i++) {
        a = pow((x + 2.0), n) / pow(2.0, n);
        s = s + a;
    }
8Observer8 вне форума Ответить с цитированием
Старый 07.09.2013, 21:07   #15
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

все равно не то
Diana528 вне форума Ответить с цитированием
Старый 07.09.2013, 21:10   #16
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Посчитайте вручную на бумажке. Что получается?
8Observer8 вне форума Ответить с цитированием
Старый 07.09.2013, 21:45   #17
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

я не понимаю как считать
Diana528 вне форума Ответить с цитированием
Старый 07.09.2013, 22:13   #18
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Обратите внимание на область сходимости. И ещё Вы не сможете считать до бессконечности, поэтому Вам нужно будет запрашивать у пользователя точность (эпсилон). Найдите книжку через гугл: бахвалов численные методы Там должен быть пример с рядом Тейлора.

Последний раз редактировалось 8Observer8; 07.09.2013 в 22:18.
8Observer8 вне форума Ответить с цитированием
Старый 07.09.2013, 22:20   #19
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

а как вы бы решили этот пример?
Diana528 вне форума Ответить с цитированием
Старый 07.09.2013, 22:36   #20
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Как же Вы у меня ошибку не заметили?

Вот, что в цикле должно быть (цикл по i):
Код:
        a = pow((x + 2.0), i) / pow(2.0, i);
        s = s + a;
x нужно брать из Вашего диапазон сходимости (-4; 0)

1) Переменные лучше double объявлять и распологать поближе к месту использования.
2) Проверяйте x на ноль.
3) Запрашивайте эпсилон, а не n (думаю, можно пока n оставить)
4) Вынесите в отдельную функцию

Немного небрежный код, но рабочий:

Код:
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;

double seriesOfTaylor(double x, int n) {
    double sum = 0, a;

    for (int i = 0; i <= n; i++) {
        a = pow((x + 2.0), i) / pow(2.0, i);
        sum = sum + a;
    }

    double y1;
    y1 = -0.5 * sum;
    return y1;
}

int main() {
    cout << "Enter n: ";
    int n;
    cin >> n;

    cout << "Enter x: ";
    double x;
    cin >> x;
    
    if (x == 0) {
        cerr << "Error: you cannot use x = 0" << endl;
        return 1;
    }

    double y1, y2 = 1 / x;

    y1 = seriesOfTaylor(x, n);

    cout << "y1= " << y1 << endl;
    cout << "y2= " << y2 << endl;
    
    return 0;
}

Последний раз редактировалось 8Observer8; 07.09.2013 в 23:13.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ряд Тейлора misery24-7 Паскаль, Turbo Pascal, PascalABC.NET 5 20.06.2012 19:57
Ряд Тейлора fpm.altyev Помощь студентам 0 19.06.2012 17:08
Ряд Тейлора(C++) GUWK_Lammer Помощь студентам 0 09.02.2012 20:52
вычислить функцию с по-щью разложения в ряд.(Ряд Тейлора) feelstor Помощь студентам 2 26.12.2011 03:44
Ряд Тейлора siriusz Общие вопросы C/C++ 6 06.02.2009 20:26