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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 00:16   #1
chibbis
Новичок
Джуниор
 
Регистрация: 23.12.2009
Сообщений: 1
По умолчанию Вычисление арктангенса через ряд Тейлора. С++.

Вычислить и вывести на экран в виде таблицы значение функции арктангенс, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dX с точностью е. Таблицу снабдить заголовком с шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.

Мой код:
#include <iostream>
#include <cmath>

using std::cout;
using std::cin;
using std::endl;

int main()
{
const double pi = acos(-1); //ввод числа пи
double x, eps, term, f=0; //f - сумма ряда, term - очередной член ряда
double Xn, Xk, dX;
int n = 0; //счетчик итераций


cout <<"Enter the range of functions Xn and Xk\n";//ввод интервала вычисления
cin >>Xn >>Xk;

cout <<"Enter the step dX\n";//ввод шага вычисления
cin >>dX;

cout <<"Enter accuracy Eps:\n"; //ввод точности вычисления
cin >>eps;

cout <<endl<<endl<<"\nThe table of the values:\n";
cout << "--------------------------------------------------------" <<endl;
cout << "| X | F=Arctg(x) | n |" <<endl;
cout << "--------------------------------------------------------" <<endl;

f = pi/2;
x=Xn;

while (fabs(term)>eps)
{
term = pow((-1.0), (n+1))/((2*n+1)*pow(x, (2*n+1))); //вычисление очередного члена ряда

cout << term<<endl;

f+=term; //вычисление суммы ряда
cout <<"|\t" <<x <<"\t|\t" <<f <<"\t|\t"<<n <<"\t|"<<endl;//вывод таблицы результатов
++n;
x+=dX;
}

cout << "--------------------------------------------------------" <<endl;

return 0;
}

он выводит неверные значения помогите, пжлст...

Последний раз редактировалось chibbis; 23.12.2009 в 00:36.
chibbis вне форума Ответить с цитированием
Старый 23.12.2009, 11:48   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Вот часть программы. Т.к. формулы нет соображайте сами и не мешало бы пользоваться поиском по форуму. Подобных решений уйма. Научитесь пользоваться тегом CODE, для чего выделите текст программы и нажмите значок # на панели сообщения.
Код:
for(x=Xn;x<=Xk; x+=dx)
{
n=0;
f = pi/2;
while (fabs(term)>eps)
{
if(x!=0)
term = pow((-1.0), (n+1))/((2*n+1)*pow(x, (2*n+1))); //вычисление очередного члена ряда
f+=term; //вычисление суммы ряда
n++;
}
cout <<"|\t" <<x <<"\t|\t" <<f <<"\t|\t"<<n <<"\t|"<<endl;//вывод таблицы результатов
}
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу найти ошибку в коде pavelstraut Общие вопросы C/C++ 5 24.07.2009 23:20
Не могу найти ошибку в коде! Natasha666 Помощь студентам 1 20.05.2009 09:27
Не могу найти ошибку. Помогите, пожалуйста! Evgesha Помощь студентам 3 15.03.2009 14:04
Пожалуйста помогите найти ошибку в коде решения задачи на записи GUnt Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2008 21:09
Помогите найти ошибку в коде, пожалуйста Gobl1n Паскаль, Turbo Pascal, PascalABC.NET 3 30.11.2008 17:44