Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 13.12.2017, 21:53   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 410
Репутация: 102
По умолчанию Разложить в ряд Тейлора - Cи

Добрый вечер. Дано задание: написать программу для вычисления приближенного значения у(х) в точке 0<|x|<1 с помощью разложения в ряд Тейлора S(x). Найти приближенное значения функции с погрешностью меньше е<0,0001. Значение х и е вводить с клавиатуры. Вывести на экран точное значение y(x), найденное приближенное значение S(x) и полученную погрешность |y(x)-S(x)|
Функция
Код:

y=((x*x)/4+(x/2)+1)*pow(e,(x/2));

Разложение в ряд Тейлора
Код:

s+=(((k*k)+1)/(fact(k)))*(pow(x/2,k));
k Є (0;infinity)

Вот то что уже есть:
Код:

double  fact(int N)
{
    if(N < 0) 
        return 0; 
    if (N == 0) 
        return 1; 
    else  
        return N * fact(N - 1); 
}
int main()
{
    float x,e,y=0,s=0; 
    int k=0;
 
    printf("Enter x\n");
    scanf("%f",&x);
    if(x<=0||x>=1)
        return 0;
    printf("\nEnter e\n");
    scanf("%f",&e);
        
 
            y=((x*x)/4+(x/2)+1)*pow(e,(x/2));
            printf("%f\n",y);
    
            do
            {
                s+=(((k*k)+1)/(fact(k)))*(pow(x/2,k));
                printf("%f\n",s);
                k++;
            }
            while((fabs(y-s))<0.0001);
                
    return 0;
}

Что здесь нужно добавить, чтобы программа соответствовала заданию?
Вероника99 вне форума   Ответить с цитированием
Старый 13.12.2017, 22:40   #2
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 410
Репутация: 102
По умолчанию

Не подскажете?(
Вероника99 вне форума   Ответить с цитированием
Старый 14.12.2017, 01:21   #3
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 11,512
Репутация: 1855

icq: 216409213
По умолчанию

Как минимум: добавить проверку на введенную точность, цикл крутить до введенной точности, исправить условие цикла - у вас достигаемая точность должна останавливать цикл.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 14.12.2017, 01:56   #4
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 410
Репутация: 102
По умолчанию

Цитата:
Код:

            while((fabs(y-s))<0.0001);
                

}

Вместо этого написала while((fabs(y-s))<e);
Но получаетс бесконечный цикл. Что именно нужно поменять в цикле?Я что-то совсем не понимаю
Вероника99 вне форума   Ответить с цитированием
Старый 14.12.2017, 02:05   #5
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 11,512
Репутация: 1855

icq: 216409213
По умолчанию

Еще раз перечитайте мой пост. У вас при каком условии должен продолжать работать, а при каком остановиться? Какое их этих условий вы запихнули в вайл?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 14.12.2017, 02:18   #6
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 410
Репутация: 102
По умолчанию

Мне нужно найти приближенное значения функции с погрешностью меньше е<0,0001.
Приближенное значения функции в моем коде - это s
значит, я перепутала, в цикле нужно писать:
Код:

while(s>e);

Добавляю проверку на ввод точности:
Код:

    printf("\nEnter e\n");
    scanf("%f",&e);
        if(e>1)
			return 0;

Правильно?
Вероника99 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ошибками. Разложить функцию e^2x в ряд Тейлора (Маклорена). Паскаль NikSon-xD Помощь студентам 7 24.12.2013 16:30
вычислить функцию с по-щью разложения в ряд.(Ряд Тейлора) feelstor Помощь студентам 2 26.12.2011 03:44
sh(х) разложить в ряд Тейлора Litoi Помощь студентам 5 26.09.2011 21:16
Разложить ф-цию рядом Тейлора (С++) Дезик Помощь студентам 7 15.11.2010 10:19
Разложить в ряд arcsin. FPU smalsvoloch Общие вопросы C/C++ 0 28.10.2010 20:57


13:24.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru