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

Вычисление суммы бесконечного ряда (ряд Тейлора)

04.11.2009, 18:36. Показов 8055. Ответов 44
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Люди, если у кого есть время, прошу помочь с решением задачи ! Решение задачи должно быть на C !


Заранее благодарю !
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2009, 18:36
Ответы с готовыми решениями:

Ряд Тейлора. Вычисление ряда суммы
Помогите с программой вычисляющей ряд суммы: Условие: Вычислить и вывести на экран в виде таблицы...

Вычисление суммы бесконечного ряда
помогите написать программу

Вычисление суммы бесконечного ряда
напишите код, пожалуйста Определить с заданной точностью сумму членов бесконечного ряда: ...

Вычисление суммы бесконечного ряда
S = \frac{x-1}{2} - \frac{{(x-1)}^{2}}{2} + \frac{{(x-1)}^{3}}{3} - ... сравнить полученное...

44
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 18:57 2
опа, что-то подобное я делал.... а там точности никакой нет?? Без нее оно и так будет считатся до бесконечности. И думаю для икса интервал вроде должен быть

Добавлено через 5 минут
C
1
2
3
4
5
x=1/2;
s=sl=0;
for(n=0;;n++)
{sl=sl*pow((x*x-x),(n-1))
s=s+sl}
как то так вроде.... или нет

Добавлено через 1 минуту
давай я лучше покажу свое - там нечто похожее
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 18:59  [ТС] 3
Точность есть ! Сказано с точность E т.е. мы сами должны её задавать ! )) Если можешь, то полностью весь код программы в студию !
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:00 4
для этого такой код:
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
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
void main ()
{
    float y, x=0, eps=1e-8, sl, S;
    int k;
    clrscr();
    printf("   x\tk\tS\t\t  y\n\n");
    do
    {
        S=sl=x;
        k=0;
        do
        {
            sl=sl*((pow(x,2.)*(2.*k+1.))/(4.*(2.*k+3.)));
            S=S+sl;
            k++;
        }
        while (fabs(sl)>eps);
        y=log((1.+x/2.)/(1.-x/2.))/2.;
        printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, k, S, y);
        x+=0.04;
    }
    while (x<=1.002);
}
Миниатюры
Вычисление суммы бесконечного ряда (ряд Тейлора)  
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:02 5
ну фунция тебе не понадобится

Добавлено через 50 секунд
поэтому у можешь не использовать
точность - eps
а вот шаг и аргумент....... ну это ты сам подставишь

Добавлено через 26 секунд
а 17 строку замени на
C
1
sl=sl*pow((x*x-x)
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:04  [ТС] 6
Функция начинается с while и заканчивается тоже while (x<=1.002); ??! Можно удалять так понимаю ?! )
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:08 7
а не, на
C
1
sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2))
Добавлено через 1 минуту
Цитата Сообщение от Opiym Посмотреть сообщение
Функция начинается с while и заканчивается тоже while (x<=1.002); ??! Можно удалять так понимаю ?! )
вот это не уверен - поскольку у меня аргумент менялся от 0 до 1 - то у меня на этом и заканчивалось, а вот у тебя аргумент просто >1/2, с такими случаями не сталкивался

Добавлено через 20 секунд
и начинается она с do

Добавлено через 52 секунды
начало 11 строка - конец 26
начало 15 строка - конец 21
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:09  [ТС] 8
Спасибо ! Буду сейчас пробовать что - нибудь мутить !
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:11 9
ах да, "у" присваиваешь значение log(x)

Добавлено через 1 минуту
точность думаю можешь такой-же оставить
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:12  [ТС] 10
Что такое pow ???
Ошибку в 17-ой строке выдаёт !
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:13 11
надеюсь помог =)

Добавлено через 22 секунды
Цитата Сообщение от Opiym Посмотреть сообщение
Что такое pow ???
Ошибку в 17-ой строке выдаёт !
pow - это возведение в степень.
0
10 / 10 / 2
Регистрация: 01.11.2009
Сообщений: 67
04.11.2009, 19:14 12
возведение в степень это...
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:22 13
C
1
sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2))
- ты это вставлял?? вроде ничего тут такого нет.... все нормально должно работать

Добавлено через 1 минуту
а, еще, где у меня в коде k - там по идее у тебя n

Добавлено через 31 секунду
(нy кроме 17 строки)
в 19 - n++

Добавлено через 1 минуту
и можешь сказать, тебе что, просто любой икс больше 1/2 взять и посчитать или все иксы, которые больше 1/2?

Добавлено через 15 секунд
если первое, то все выйдет куда проще

Добавлено через 1 минуту
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
void main ()
{
        float y, x=0.75, eps=1e-8, sl, S;
        int n;
        clrscr();
        printf("   x\tn\tS\t\t  y\n\n");
                S=sl=x;
                k=0;
                do
                {
                        sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2));
                        S=S+sl;
                        n++;
                }
                while (fabs(sl)>eps);
                y=log(x).;
                printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, n, S, y);
}
вот для первого случая

Добавлено через 1 минуту
сдесь оно считает х=0,75
если другое значение - то просто там менять его надо.
можно сделать, чтобы пользователь вводил значение с клавиатуры
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:23  [ТС] 14
Хотя наверно просто любой x>1/2
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:26 15
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
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
void main ()
{
        float y, x, eps=1e-8, sl, S;
        int n;
        clrscr();
        scanx:
        scanf("%f",&x);
        if(x<0)
        {
        printf("x<=1./2. error!\n");
        goto scanx; 
        }
        printf("   x\tn\tS\t\t  y\n\n");
                S=sl=x;
                k=0;
                do
                {
                        sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2));
                        S=S+sl;
                        n++;
                }
                while (fabs(sl)>eps);
                y=log(x).;
                printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, n, S, y);
}
вот вариант ввода с клавиатуры

Добавлено через 1 минуту
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
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream.h>
 
void main ()
{
        float y, x, eps=1e-8, sl, S;
        int n;
        clrscr();
        scanx:
        scanf("%f",&x);
        if(x<0)
        {
        printf("x<=1./2. error!\n");
        goto scanx; 
        }
        printf("   x\tn\tS\t\t  y\n\n");
                S=sl=x;
                k=0;
                do
                {
                        sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2));
                        S=S+sl;
                        n++;
                }
                while (fabs(sl)>eps);
                y=log(x).;
                printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, n, S, y);
                cin.get();
}
а так еще лучше (пока энтер не нажмешь программка не закроет окошко после выполнения)
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:27  [ТС] 16
Почему при построении решения, выдаётся ошибка clrscr(); в 9-ой строке ??? И нужно ли в 19-ой строке поменять к на n ?
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:29 17
исправил чуток....

Добавлено через 1 минуту
Цитата Сообщение от Opiym Посмотреть сообщение
Почему при построении решения, выдаётся ошибка clrscr(); в 9-ой строке ??? И нужно ли в 19-ой строке поменять к на n ?
с клирскрином не знаю, это должно работать и так, а к на n менять нужно, у тебя ведь не используется переменная к.
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:32  [ТС] 18
Я взял это ! Ошибка в 20 и 21 строке !
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
void main ()
{
        float y, x=0.75, eps=1e-8, sl, S;
        int n;
        clrscr();
        printf("   x\tn\tS\t\t  y\n\n");
                S=sl=x;
                k=0;
                do
                {
                        sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2));
                        S=S+sl;
                        n++;
                }
                while (fabs(sl)>eps);
                y=log(x).;
                printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, n, S, y);
}
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
04.11.2009, 19:35 19
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
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream.h>
 
void main ()
{
        float y, x, eps=1e-8, sl, S;
        int n;
        clrscr();
    scanx:
    printf("input x=");
        scanf("%f",&x);
    if(x<=1./2.)
        {
        printf("x<=1./2. error!\n");
        goto scanx; 
        }
        printf("   x\tn\tS\t\t  y\n\n");
                S=sl=x;
        n=0;
                do
                {
                        sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2));
                        S=S+sl;
                        n++;
                }
                while (fabs(sl)>eps);
        y=log(x);
                printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, n, S, y);
                cin.get();
}
вот, ошибок не выдает, правда саму работу программы надо-бы исправить....

Добавлено через 36 секунд
Цитата Сообщение от Opiym Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
void main ()
{
        float y, x=0.75, eps=1e-8, sl, S;
        int n;
        clrscr();
        printf("   x\tn\tS\t\t  y\n\n");
                S=sl=x;
                k=0;
                do
                {
                        sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2));
                        S=S+sl;
                        n++;
                }
                while (fabs(sl)>eps);
                y=log(x).;
                printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, n, S, y);
}
в 12 строчке к на n замени

Добавлено через 1 минуту
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
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream.h>
 
void main ()
{
        float y, x, eps=1e-8, sl, S;
        int n;
        clrscr();
        scanx:
        printf("input x=");
        scanf("%f",&x);
        if(x<=1./2.)
        {
        printf("x<=1./2. error!\n");
        goto scanx; 
        }
        printf("   x\tn\tS\t\t  y\n\n");
                S=sl=0;
                n=0;
                do
                {
                        sl=sl*((pow(x-1,n+1)*pow(x,n-1)*(n+1))/(n+2));
                        S=S+sl;
                        n++;
                }
                while (fabs(sl)>eps);
                y=log(x);
                printf("%4.2f\t%d\t%10.8f\t%11.8f\n", x, n, S, y);
                cin.get();
}
а если так?
0
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:36  [ТС] 20
Всё всё всё !!! Разобрался !!! Спасибо БОЛЬШОЕ !!!
0
04.11.2009, 19:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2009, 19:36
Помогаю со студенческими работами здесь

Вычисление суммы бесконечного ряда
Никак не вычисляются значения, что делаю не так? #include &lt;iostream&gt; #include&lt;stdio.h&gt;...

Вычисление суммы бесконечного ряда
Составить программу для вычисления суммы бесконечного ряда с погрешностью \varepsilon ={10}^{-4}...

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

Вычисление суммы бесконечного ряда
Помогите решить задачу нужна найти сумму бесконечного ряда с точностью E=0.0001...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru