Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.90
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
#1

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

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

Люди, если у кого есть время, прошу помочь с решением задачи ! Решение задачи должно быть на C !
http://xmages.net/out.php/i609131_Zadacha.gif
http://xmages.net/out.php/i609134_Uslovie.gif
Заранее благодарю !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2009, 18:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление суммы бесконечного ряда (ряд Тейлора) (C++):

Вычисление суммы бесконечного ряда - C++
Никак не вычисляются значения, что делаю не так? #include <iostream> #include<stdio.h> #include<conio.h> #include<math.h> ...

Вычисление суммы бесконечного ряда - C++
Помогите решить задачу нужна найти сумму бесконечного ряда с точностью E=0.0001 S=-x^1/1-x^2/2-x^3/3-x^4/4-... |x|<1 сравнить...

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

Вычисление суммы бесконечного ряда - C++
Составить программу для вычисления суммы бесконечного ряда с погрешностью \varepsilon ={10}^{-4} \sum_{k-1}^{}{u}_{k} Процесс...

Вычисление значения суммы бесконечного ряда - C++
Здравствуйте. Необходимо вычислить значения суммы бесконечного ряда с заданной точностью. Но формулу в атаче я не понимаю, прошу вашей...

Вычисление суммы бесконечного ряда. Конвертация из паскаля в с++ - C++
Помогите пожалуйста переделать задачу с паскаля на с++, спасибо:) var x,s,u,uk,t,e:real; k:integer; begin x:=0.95; e:=0.001; ...

44
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:27  [ТС] #16
Почему при построении решения, выдаётся ошибка clrscr(); в 9-ой строке ??? И нужно ли в 19-ой строке поменять к на n ?
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
04.11.2009, 19:29 #17
исправил чуток....

Добавлено через 1 минуту
Цитата Сообщение от Opiym Посмотреть сообщение
Почему при построении решения, выдаётся ошибка clrscr(); в 9-ой строке ??? И нужно ли в 19-ой строке поменять к на n ?
с клирскрином не знаю, это должно работать и так, а к на n менять нужно, у тебя ведь не используется переменная к.
0
Opiym
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
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
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
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:36  [ТС] #20
Всё всё всё !!! Разобрался !!! Спасибо БОЛЬШОЕ !!!
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
04.11.2009, 19:37 #21
не, не пойдет

Добавлено через 27 секунд
20 строчку надо поменять, правда я пока не знаю на что
0
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:38  [ТС] #22
x-значение аргумента
S-значение функции
n-количество просуммированных членов ряда
ТАК ???
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
04.11.2009, 19:44 #23
Цитата Сообщение от Opiym Посмотреть сообщение
x-значение аргумента
S-значение функции
n-количество просуммированных членов ряда
ТАК ???
да

Добавлено через 1 минуту
у - это то-же значение функции, но вычесленное непосредственно через нее. Ты логарифр представил через ряд Тейлора

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

Добавлено через 3 минуты
чтож, надеюсь дальше уже без моей помощи справишься)))
(с 20 строкой всеравно надо чтото делать)
1
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:48  [ТС] #24
За что 20-ая строка вообще отвечает ??? И ещё eps=1e-8 это любое маленькое число ???
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
04.11.2009, 19:54 #25
Цитата Сообщение от Opiym Посмотреть сообщение
За что 20-ая строка вообще отвечает ??? И ещё eps=1e-8 это любое маленькое число ???
20 строка - присвоение первоначального значения S и присвоение начального значения того, что будет к S прибавляться, предварительно умноженное на реккурентную формулу.
eps=1e-8 - это 10 в минус восьмой степени

Добавлено через 1 минуту
но в принципе eps тебе можно оставить так, а можно и немного увеличить.....но больше 10^(-5) не делай

Добавлено через 1 минуту
S первоначально должна быть равна 0 - это 100%
sl - ну тут я не уверен, сейчас попробую переделать немного код программы.
0
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 19:56  [ТС] #26
Если есть время !
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
04.11.2009, 19:59 #27
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, 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=0;
                n=0;
                do
                {
                        S=S+((pow(x-1,n+1))/(()n+1)*pow(x,n+1));
                        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();
}
можно и так

Добавлено через 2 минуты
а не, стоп, так нельзя, я забыл...
0
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 20:00  [ТС] #28
Ошибки есть !
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
04.11.2009, 20:12 #29
всетаки тот вариант в конце второй страницы правильнее был, надо только сообразить чему sl изначально приравнять.

Добавлено через 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
28
29
30
31
32
33
#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=0;
        //sl=;
        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();
}
вот, вообщем додумай чему нужно приравнять sl первое, я тоже подумаю, а пока я его закомментарил

Добавлено через 2 минуты
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
#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=0;
        sl=pow(x-1,n)/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();
}
вроде так - попробуй

Добавлено через 2 минуты
или нет..... чтото не подходит...

Добавлено через 2 минуты
так, ладно, задача решена - проблема за малым... я пойду пожалуй, если что - пиши в личку.
1
Opiym
8 / 8 / 0
Регистрация: 02.11.2009
Сообщений: 89
04.11.2009, 20:14  [ТС] #30
Объясни sl=pow(x-1,n)/x; ??? )))
0
04.11.2009, 20:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2009, 20:14
Привет! Вот еще темы с ответами:

Вычисление суммы бесконечного ряда с точностью эпсилон - C++
Работает но выдает ошибку. если возможно подскажите. условие запрограммировать вычисление суммы бесконечного ряда с точностью...

Не могу найти ошибку(Вычисление суммы бесконечного ряда) - C++
помогите найти ошибку! #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { ...

Вычисление приближенного значения tan(x) через ряд Тейлора/ряд Маклорена - C++
Привет, CF. Задача: Вычисление приближенного значения tan(x) через ряд Тейлора/ряд Маклорена Проблема: не совпадают результаты...

Вычисление функции через разложение в ряд (Ряд Тейлора) - C++
Привет всем. Задание такого плана: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора,...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru