Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 22.10.2017
Сообщений: 13
1

Вычисление значения функции разложением в ряд Тейлора

22.10.2017, 16:11. Показов 1350. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужна хелпа .
Не могу понять почему не пашет.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
using namespace std;   
 
 
 
long double fact(int g)
{
    if(g < 0) 
        return 0; 
    if (g == 0) 
        return 1; 
    else 
        return g * fact (g - 1); 
}
 
int main () 
 
{
    setlocale (LC_ALL, "rus");
    char kl;
    printf ("Задание\nВычислите частичную сумму ряда\n\n  S=x-x^2/2!+x^3/3!-x^4/4!+....   \n\nВычисления прекратите, когда модуль очередного слагаемого станет меньше 0,001.\nПроверьте, насколько сумма приблизилась к значению sin(x).\n\n");
    do
    {
        
        int c,b,x,p,g;
        float S;
         float a;
        
        a=1;
        p=0;
        b=1;
        S=0;
        g=1;
        
   
         
     
    
         printf ("Введите x: ");
        scanf ("%d", &x);
        printf (" S =x-x^2/2!+x^3/3!-x^4/4!+....\n");
       
        while (a>0.001)
        {
          a=(-1)*(-1^b)*(x^b)/c;
         
            if (a>0.001)
            {
                printf ("\n (-1)*(-1^%d)*(%d^%d)/(%d)=%.4f\n",b, x,b, c, a);
                b++;
                p++;
                c=fact(g+p);
                //a=(((-1)*(-1^b)*(x^b))/c);
                S=S+a;
                system ("pause");
            }
        }
        printf ("\n S = %.4f\n", S);
        printf ("Нажмите Enter для продолжения или Esc для выхода из программы.\n");
        do
        {
            kl = getch();
                if (kl == 13)
                    printf ("\n");
                else
                    if (kl == 27)
                        return 0;
        }
        while (kl != 13);
    }
    while (1);
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2017, 16:11
Ответы с готовыми решениями:

Вычисление значения функции разложением в ряд Тейлора
П.5.4.Правил Запрещено создавать темы с бессмысленными названиями вроде &quot;Помогите!&quot;, &quot;Вопрос&quot; и...

Вычисление значения функции разложением в ряд Тейлора: ln(1 + x)
Дано вещественное число X (|X| &lt; 1) и целое число N &gt; 0. Написать функцию для вычисления суммы...

Вычисление значения функции разложением в ряд Тейлора
Рассчитать сумму членов бесконечного ряда с заданной пользователем точностью е для заданного...

Вычисление значения функции разложением в ряд Тейлора
Добрый вечер всем, работаю с c++ около двух недель, дали задание написать программу с Рядом Тейлора...

10
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
22.10.2017, 16:38 2
Не хотите поделится как оно должно "пахать"? Входные данные? Или какая ошибка при компиляции?
0
0 / 0 / 0
Регистрация: 22.10.2017
Сообщений: 13
22.10.2017, 16:40  [ТС] 3
Никаких ошибок в компиляции.
Просто не правильный ответ.
Задание

Вычислите частичную сумму ряда
S=x-x^2/2!+x^3/3!-x^4/4!+....
Вычисления прекратите, когда модуль очередного слагаемого станет меньше 0,001.
Проверьте, насколько сумма приблизилась к значению sin(x)

Строгих входных данных нет.
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
22.10.2017, 16:43 4
Лучший ответ Сообщение было отмечено GrandLaw как решение

Решение

См.
Вычисление функций разложением в ряд Тейлора
Вот синус оттуда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double mysin(double x,double eps)
{
    double s,an;
    int n;
    n=1;
    an=x;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x*x/(2.*n-1.0)/(2.0*n-2.0); 
    }
    return s;
}
И, кстати x^y это не возведение в степень, а исключающее или.
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
22.10.2017, 16:49 5
GrandLaw, ты думаешь, что (-1^b) и (x^b) - это возведение в степень?
0
0 / 0 / 0
Регистрация: 22.10.2017
Сообщений: 13
22.10.2017, 16:53  [ТС] 6
Уже нет
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
22.10.2017, 16:54 7
Вообще, использование факториала при вычислении рядов Тейлора - чрезвычайно порочная практика. И дело не только в чудовищной неэффективности такого подхода, но и в переполнении разрядной сетки уже для не очень больших значений n, и как следствие - возникновение трудно уловимых ошибок..
Посмотри, как это должно делаться в списке тем, приведенных ниже.

Добавлено через 59 секунд
Нужно просто внимательно посмотреть, чем очередной член отличается от предыдущего...
0
0 / 0 / 0
Регистрация: 22.10.2017
Сообщений: 13
22.10.2017, 16:55  [ТС] 8
Просто когда ты учишься на безопасника 2 месяца , тебе показали как выводить на экран Hello world, дали 7 лаб ,и сказали делай это немного сложно.
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
22.10.2017, 16:57 9
Цитата Сообщение от GrandLaw Посмотреть сообщение
тебе показали как выводить на экран Hello world,
Но тебе же уважаемый zss в посте 4 все показал...
0
0 / 0 / 0
Регистрация: 22.10.2017
Сообщений: 13
22.10.2017, 17:17  [ТС] 10
Я всё понял , всем спасибо
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
22.10.2017, 17:20 11
Цитата Сообщение от ntlinuxnt Посмотреть сообщение
Не хотите поделится как оно должно "пахать"?
Наверное, как то так. (Немного юмора).
Вычисление значения функции разложением в ряд Тейлора
2
22.10.2017, 17:20
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.10.2017, 17:20
Помогаю со студенческими работами здесь

Вычисление значения функции разложением в ряд Тейлора
Помогите написать код для вычисления в цикле for. Мне не понятно как записать факториал.

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

Вычисление значения функции разложением в ряд Тейлора: 1/(1 + x)
Составьте программу вычисления значения суммы Y(x) и функции f(x), для |x|&lt;1. Выведите на экран...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru