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

Помогите вычислить функции с помощью разложения в ряд! - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Eithery
 Аватар для Eithery
2 / 2 / 0
Регистрация: 04.06.2009
Сообщений: 20
13.09.2011, 02:57     Помогите вычислить функции с помощью разложения в ряд! #1
Где я нетак делаю? компилятор Dev-C++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<math.h>
using namespace std;
 
main()
{
      float a,x,s;
      int k,n;
      cout<<"vvedite x,n: "<<endl;
      cin>>x;
      cin>>n;
      a=x;
      s=1;
      for(k=1;k<=n;k++)
      {
         a=a*(-1)*k;
         s=s+a;  
         }
      cout<<"s="<<s<<endl;
      system("pause");
      }
Миниатюры
Помогите вычислить функции с помощью разложения в ряд!  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LEQADA
Мастер кустарных методов
 Аватар для LEQADA
227 / 222 / 9
Регистрация: 09.11.2010
Сообщений: 680
13.09.2011, 03:03     Помогите вычислить функции с помощью разложения в ряд! #2
Eithery, а в чём собственно проблема?
Eithery
 Аватар для Eithery
2 / 2 / 0
Регистрация: 04.06.2009
Сообщений: 20
13.09.2011, 03:03  [ТС]     Помогите вычислить функции с помощью разложения в ряд! #3
если решать по формуле, то не получается...
т.е. как я понял...
по формуле: (-1)^n*x^n+2
a0 (n=0) = x^2
a1 (n=1) = - x^3 = a0*x*(-1)
a2 (n=2) = x^4 = a1*x*(-1)
a3 (n=3) = -x^5 = a2*x*(-1)......
LEQADA
Мастер кустарных методов
 Аватар для LEQADA
227 / 222 / 9
Регистрация: 09.11.2010
Сообщений: 680
13.09.2011, 04:18     Помогите вычислить функции с помощью разложения в ряд! #4
Eithery, я сейчас задам глупый вопрос (ночь, голод... ну сам понимаешь ))). Ты собираешься суммировать бесконечную сумму или как?

Добавлено через 54 минуты
Короче вот так переписал. Проверил... Вроде работает. Сам погоняй. Скорее всего где-то накосячил.
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>
#include<math.h>
using namespace std;
 
int main(void)
{
    float a,x,s,b;
    int n,k;
    setlocale(LC_ALL,"Russian");
    cout<<"\nВведите x: ";
    cin>>x;
    cout<<"Введите n: ";
    cin>>n;
    if (n>0 && x<1 && x>-1){
    a=x;
    b=x;
    s=0;
    for(k=0;k<=n;k++)
    {
        a=pow(-1.0,k) * (pow(b,k+2));
        s=s+a;  
    }
    cout<<"s="<<s<<endl;}
    else 
    cout << "Проверьте введённые параметры"<<endl;
    return 0;
}
Eithery
 Аватар для Eithery
2 / 2 / 0
Регистрация: 04.06.2009
Сообщений: 20
13.09.2011, 17:40  [ТС]     Помогите вычислить функции с помощью разложения в ряд! #5
Спасибо большое.... всё проанализировал
вот результат:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<math.h>
using namespace std;
 
main()
{
      float a,x,s;
      int k,n;
      cout<<"vvedite x,n: "<<endl;
      cin>>x;
      cin>>n;
      a=x;
      s=1;
      for(k=1;k<=n;k++)
      {
         a=a*(-1)*x;
         s=s+a;  
         }
      cout<<"s="<<s<<endl;
      system("pause");
      }
Тема закрыта!
LEQADA
Мастер кустарных методов
 Аватар для LEQADA
227 / 222 / 9
Регистрация: 09.11.2010
Сообщений: 680
13.09.2011, 19:35     Помогите вычислить функции с помощью разложения в ряд! #6
Eithery, чувак... ну сам посмотри... неправильно твой код работает.

Добавлено через 4 минуты
Если лень считать, то просто добавь вычисление самой функции (НЕ ряда) и выведи значение на экран наряду с приблизительным (рядОм). И увидишь, что даже при больших n, значения у тебя очень разные, а у меня почти одинаковые.
Yandex
Объявления
13.09.2011, 19:35     Помогите вычислить функции с помощью разложения в ряд!
Ответ Создать тему
Опции темы

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