Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ряд Тейлора

Ответить
Настройки темы
C/C++ - Ряд Тейлора

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: ka_omsk
Дата: 15-03-2011
Помогите пожалуйста
Задание выглядит так:
Вычислить и вывести на экран значения исходной функции (функция записана слева от знака «=»), значения функции, рассчитанное с помощью ряда Тейлора, на интервале от X нач до X кон из области определения функции с шагом dx и точностью eps. На экране так же должно отображаться количество просуммированных членов ряда.



у меня есть небольшие наброски:

#include <iostream.h>
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int n(0),z(1);
long double xn,xk,eps,dx,f,q,p,w(0);
do{
cout<<"Vvedite X nahalinoe i X konechnoe X>0"<<endl;
cin>>xn>>xk;
} while (xn<0 && xn<=xk);
cout<<"Vvedite eps"<<endl;
cin>>eps;
cout<<"Vvedite shag"<<endl;
cin>>dx;
cout<<"-------------------------------------------------------------"<<endl;
cout<<"| i | X | F | arctg (x) |"<<endl;
cout<<"-------------------------------------------------------------"<<endl;
????????????????????????
????????????????????????
????????????????????????
getch();
}

Отправлено: 16:34, 15-03-2011

 

Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


в чем собственно загвоздка?
сначала сделаем цикл перебирающий шаг
Код: Выделить весь код
while(xn <= xk)
{
***body****
xn+=dx;
}
в body описывается само вычисление arctg x.
это вычисление можно так-же сделать циклом
Код: Выделить весь код
double otvet = - pi / 2;
int step = 1;
while ( **пока не достигнем точности eps****)
{
otvet += pow(-1,step)/ ((step*2 - 1)*pow(xn , step*2 - 1));
}
вот както так... eps я правда незнаю как тебе проверять надо, но я думаю в принципе мощно не плюсовать сразу а записывать куданить и проверять меньше епсилон это или нет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:54, 15-03-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


т.е. всё то, что я написал - чушня полная??? А то что-то я не въехал))

Отправлено: 18:29, 15-03-2011 | #3


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


да нормально ты написал... данные получаешь с клавиатуры через консоль, мало подятно зачем это?
Цитата ka_omsk:
cout<<"-------------------------------------------------------------"<<endl;
cout<<"| i | X | F | arctg (x) |"<<endl;
cout<<"-------------------------------------------------------------"<<endl; »
а вообще тебя же просят ряд тейлора посчитать - вот так примерно его мона посчитать

Отправлено: 20:01, 16-03-2011 | #4

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата Beyound:
while ( **пока не достигнем точности eps****) »
с этим местом осторожней, ряд может и не сходиться из-за вычислительной ошибки. Лучше сделать (дополнительно) ограничение на кол-во шагов.
Ещё бывает интересный случай, когда 0.0 > 0.0000001 (по краней мере условие <= не выполняется). В общем вычисление с плавающей точкой - не очень точная вещь

Отправлено: 12:30, 19-03-2011 | #5


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


в таком случае, подскажите пожалуйста как лучше написать такое выражение, буду очень признателен!

Отправлено: 20:20, 20-03-2011 | #6


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:47, 20-03-2011 | #7


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


я на втором курсе..

Отправлено: 11:09, 21-03-2011 | #8


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


ну вот и пиши не смущаясь всякими представлениями вещественных чисел в компе с помощью всяких мантисс и из-за этого возможной несходимости как те верно сказал pva. Давно бы уже написал и отнес преподу, переписал и сдал.

Отправлено: 18:18, 21-03-2011 | #9


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


понимаешь ли в чём проблема, я учусь дистанционно (т.е. это предполагает САМООБУЧЕНИЕ в большинстве случаев) и у меня просто нет возможности кататься по преподам))

Отправлено: 08:57, 22-03-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ряд Тейлора

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Звук - Ряд вопросов по ESI Julia J7BXA Прочее железо 4 02-02-2011 17:00
[решено] Не пускают на ряд сайтов Wyuyone Лечение систем от вредоносных программ 4 13-09-2010 22:41
Разное - Ряд проблем с семеркой treehel Microsoft Windows 7 1 05-02-2010 13:16
звуковой ряд CHIKANOV Видео и аудио: обработка и кодирование 2 21-10-2005 21:05
Ряд вопросов Guest Сетевые технологии 1 12-05-2004 14:55




 
Переход