Форум программистов, компьютерный форум CyberForum.ru

Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) - C++

Восстановить пароль Регистрация
 
Аркалык
13 / 13 / 4
Регистрация: 24.09.2013
Сообщений: 138
03.12.2013, 16:59     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) #1
Составить программу вычисления таблицы значений суммы S(x):
http://www.cyberforum.ru/cgi-bin/latex.cgi?S(x)=\sum_{k=0}^{n}\frac{{\ln}^{k}3}{k!}{x}^{k}
Еще одна схожая задача, но тут не читается логарифм (ln). Нужен совет программист-математиков.
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
#include<iostream>
#include<cmath>
#define n 10
using namespace std;
 
int fact(int x)
{
    if(x<=1) return 1;
    return x*fact(x-1);
}
int main()
{
    int x, k=0;
    float s=0,y;
    cout<<"Vvedite x: "<<endl;
    cin>>x;
    do
    {
           y=pow(ln,k)*3/fact(k)*pow(x,k);
           s+=y;
           k++;
           }
    while(y>n);
    cout<<s<<endl;
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 16:59     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм)
Посмотрите здесь:

C++ Разработать программу табулирования (вычисления таблицы значений) функции
C++ Составить программы вычисления значений суммы и произведений ряда
Составить программу вычисления и печати таблицы значений функции, которая является суммой бесконечного ряда C++
Составить программу вычисления и печати таблицы значений функции при заданных значениях параметров C++
вычисления таблицы значений суммы S(x) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
03.12.2013, 20:29     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) #2
Цитата Сообщение от Аркалык Посмотреть сообщение
Нужен совет программист-математиков.
Да нет, тут достаточно знать школьную программу. Знай вы её, вы бы знали, что логарифм - это функция, и вычисляется она от некоторого аргумента. А в степень возводится уже результат её вычисления.
C++
1
y=pow(log(3.0), k) / fact(k) * pow(x, k);
Аркалык
13 / 13 / 4
Регистрация: 24.09.2013
Сообщений: 138
03.12.2013, 20:33  [ТС]     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) #3
silent_1991, Спасибо большое!!!
silent_1991
03.12.2013, 20:35
  #4
 Комментарий модератора 
Аркалык, на будущее: пункт 5.16 правил: Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Аркалык
13 / 13 / 4
Регистрация: 24.09.2013
Сообщений: 138
03.12.2013, 20:59  [ТС]     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) #5
silent_1991, Все так же, не компилируется код.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
03.12.2013, 21:09     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<cmath>
sing namespace std;
 
int main()
{
    int k,n;
    double s,a,x;
    cout<<"Vvedite x: "<<endl;
    cin>>x;
    cout<<"Vvedite n: "<<endl;
    cin>>n;
    a=1;
    s=a;
    double L3=log(3.0);
    for(k=0;k<=n;k++)
    {
           a*=L3*x/(k+1);
           s+=a;
    }
    cout<<s<<endl;
    system("pause");
}
Аркалык
13 / 13 / 4
Регистрация: 24.09.2013
Сообщений: 138
03.12.2013, 21:17  [ТС]     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) #7
zss, Что-то вы перемудрили. Но, конечно Спасибо Большое!!!
А где мой факториал?
Можно решить просто так? У меня так выходит.
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<iostream>
#include<cmath>
#define n 10
using namespace std;
 
int fact(int x)
{
    if(x<=1) return 1;
    return x*fact(x-1);
}
int main()
{
    int k=0;
    float s=0,y;
    double L3=log(3.0),x;
    cout<<"Vvedite x: "<<endl;
    cin>>x;
    do
    {
           y=pow(L3,x)/fact(k)*pow(x,k);
           s+=y;
           k++;
           }
    while(y>n);
    cout<<s<<endl;
    system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 21:35     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм)
Еще ссылки по теме:

C++ Составить программу вычисления и печати таблицы значений функции при заданных значениях параметров
Функция вычисления таблицы значений математического выражения C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
03.12.2013, 21:35     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм) #8
Цитата Сообщение от Аркалык Посмотреть сообщение
Что-то вы перемудрили
Никто ничего не перемудрил. Рассказываю:
1. Нет смысла вычислять логарифм на каждой итерации, поскольку ln(3) - константа.
2. Нет смысла вычислять факториал каждый раз, потому что на очередной итерации вычисляется факториал числа, на единицу большего того, что было на предыдущей итерации. Таким образом, достаточно результат вычисления предыдущего факториала умножить на очередной член. Предыдущий факториал естественным образом вычисляется из предыдущего по отношению к нему по той же логике, и так до элементарного случая 0!.
3. Нет смысла вычислять степени на каждой итерации по тем же причинам, по которым нет смысла в вычислении факториала каждый раз.
А вообще, это рекуррентная последовательность. Чтобы вичислить её множитель, надо (k+1)-й член разделить на k-й:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{k}=\frac{{\ln}^{k}3}{k!}{x}^{k}
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{k+1}=\frac{{\ln}^{k+1}3}{(k+1)!}{x}^{k+1}=\frac{{\ln}^{k}3 \cdot \ln 3}{k!(k+1)}{x}^{k} \cdot x
http://www.cyberforum.ru/cgi-bin/latex.cgi?a=\frac{{\ln}^{k}3 \cdot \ln 3 \cdot {x}^{k} \cdot x}{k!(k+1)}\cdot \frac{k!}{{\ln}^{k}3 \cdot {x}^{k}}=\frac{\ln 3}{k+1}x
Что и получилось у zss. Стандартный приём, к тому же, позволяющий значительно оптимизировать вычисления.
Yandex
Объявления
03.12.2013, 21:35     Вычисления таблицы значений суммы S(x) (не вычисляется логарифм)
Ответ Создать тему
Опции темы

Текущее время: 00:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru