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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2009, 20:00   #1
Wast
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 14
По умолчанию Вычисление функции с помощью ряда Тейлора

вычислить и вывести на экран в виде таблицы значения функции,заданной с помощью ряда Тейлора,на интервале от Хнач до Хкон с шагом dx с точностью e.Таблицу снабдить шапкой и заголовком.Каждая строка таблицы должна сдержать значение аргумента,значение функции и количество просуммированных членов ряда.
ln(1-x)=-(x+(x*x)/2+(x*x*x*x)/4+....+бесконечности)=-x(в степени n)/n; вот все задание
Код:
#include "iostream.h"
#include "math.h"
#include "iomanip.h"
main (){
int n(0),z(1);
long double xn,xk,e,dx,f,q,p,w(0);
do{
cout<<"Vvedite X nahalinoe i Xkonehnoe X>0"<<endl;
cin>>xn>>xk;
} while (xn<0 && xn<=xk);
cout<<"Vvedite E"<<endl;
cin>>e;
cout<<"Vvedite shag"<<endl;
cin>>dx;
cout<<"-------------------------------------------------------------"<<endl;
cout<<"| i | X | F | ln(1-x) |"<<endl;
cout<<"-------------------------------------------------------------"<<endl;
for (q=xn;q<=xk;q+=dx){
p=log(1-q);
f=0;
if (q!=1){
do{
f+=pow(q,n)/(n);
n++;
w=f*(-1);
}while (fabs(w-p)>e);}
cout <<"|"<<setw(14)<<n+1<<"|"<<setw(14)<<q<<"|"<<setw(14)<<w<<"|"<<setw(14)<<p<<"|"<<endl;
n=0;
}
return 0;
}
НО вот чтото тут не клеится помогите плиз уже 3 час сижу не могу понять как зделать((((( плизззз

Последний раз редактировалось MaTBeu; 21.03.2009 в 20:16.
Wast вне форума Ответить с цитированием
Старый 21.03.2009, 20:44   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Переписал. Вроде, все правильно.
При вводе еще добавил проверку, чтобы x был <1.

Код:
#include <iostream>
#include <conio.h>
#include <math.h>
#include <iomanip.h>
using namespace std;

int main(){
double Xstart,Xend,x,dx,e,f,realF;
int cnt;

do{
cout<<"Vvedite X nahalinoe i Xkonehnoe X>0"<<endl;
cin>>Xstart>>Xend;
} while (!(Xstart>0 && Xstart<=Xend && Xstart<1 && Xend<1));

cout<<"Vvedite E"<<endl;
cin>>e;
cout<<"Vvedite shag"<<endl;
cin>>dx;
//------
cout<<"--------------------------\n";
cout<<"   x   |      F     | cnt |  ln(1-x) ";
cout<<endl;

for(x=Xstart;x<=Xend; x+=dx)
 {
  f = 0;
  realF = log(1-x);
  cnt = 0;
  while(fabs(realF-f)>e)
   {
    cnt++;
    f -= pow(x,cnt)/cnt;
   }
 cout<<setw(6)<<setprecision(2)<<x<<" | "<<setw(10)<<setprecision(7)<<f<<" | ";
 cout<<setw(3)<<cnt<<" | "<<setw(10)<<setprecision(7)<<realF<<endl;
 }

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 21.03.2009, 20:49   #3
Wast
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 14
По умолчанию

ООООО спасибо щас проверять будет +1 тебе очень выручил
Wast вне форума Ответить с цитированием
Старый 21.03.2009, 21:30   #4
Wast
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 14
По умолчанию

Блинн ничего не работает там ошибка с cout error C2872 а вот дальше нисчего не получается тоесть прога ничего не считает и ответ выдает то что вводили((((((( блиннннн аааа мозг кипит((
Wast вне форума Ответить с цитированием
Старый 21.03.2009, 21:55   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Приведите текст ошибки и место, где ее выдает.
Прикладываю исходник с екзешником. У меня все работает.
Вложения
Тип файла: rar Wast1.rar (114.6 Кб, 221 просмотров)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 21.03.2009, 22:11   #6
Wast
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 14
По умолчанию

ООй сорри я просто перекапировал код и там какойто лаг и ничего не работало а вот с твоим файликом все шик))) еще раз спасибо)))0
Wast вне форума Ответить с цитированием
Старый 25.12.2011, 19:42   #7
Настеныш787
Новичок
Джуниор
 
Регистрация: 25.12.2011
Сообщений: 1
По умолчанию

Помогите, уже неделю сижу не знаю как сделать чтоб выводил на экран что Ряд расходится если это так. условие:
вычислить и вывести на экран в виде таблицы значения функции,заданной с помощью ряда Тейлора,на интервале от Хнач до Хкон с шагом dx с точностью e.Таблицу снабдить шапкой и заголовком.Каждая строка таблицы должна сдержать значение аргумента,значение функции и количество просуммированных членов ряда.
Код
#include <iostream>
#include <conio.h>
#include <clocale>
#include <math.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");
const int MaxIter=500;
double Xn, Xk, dX, eps;
int n;
cout<<"Введите начало Xn\n";
cin >>Xn;
cout <<"Введите конец Xk\n";
cin >>Xk;
if (Xn>=Xk)
cout<<"Ошибка Xn > = Xk"<<"\n";
else
cout <<"Введите шаг dX\n";
cin >>dX;
cout <<"Введите точность eps:\n";
cin >>eps;
cout <<"\n"<<"\n"<<"\nТаблица значений \n";
cout<<"____________________________ _____________"<<"\n";
cout<<"| x | y | n |"<<"\n";
cout<<"____________________________ _____________"<<"\n";
for(double x=Xn;x<=Xk;x+=dX)
{
bool done=true;
double ch=1,y=ch;
for(n=0;fabs(ch)>eps && done; n++)
{

ch*=2*(((pow(x,2*n+2))/(2*n+2))/(2*n+2)*(pow(x,2*n+1)));
y+=ch;
if (n>MaxIter)
done = false;
}
if(done)
{

cout<<"|";
cout.width(12);
cout<<x<<"|";
cout.width(12);
cout<<y<<"|";
cout.width(13);
cout<<n<<"|\n";
cout<<"____________________________ _____________\n";
}
}
_getch();
return 0;
}

с помощью таких строчек (они немного из другой программы)
if(done)
cout<<"При аргументе "<<x<<" и точности "<<eps<<" функция равна "<<sum;
else
cout<<"Ряд расходится";
Настеныш787 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление для ряда точностей. BigMoney Помощь студентам 12 05.02.2009 20:14
Нужно создать функцию, которя вычисляет корень n-порядка при помощи ряда Тейлора. ksa Общие вопросы C/C++ 3 05.01.2009 00:51
Задача на вычисление суммы ряда, Pascal die_hard Помощь студентам 9 07.12.2008 19:05