Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Аркалык
18 / 18 / 12
Регистрация: 24.09.2013
Сообщений: 163
#1

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

03.12.2013, 16:59. Просмотров 279. Ответов 7
Метки нет (Все метки)

Составить программу вычисления таблицы значений суммы 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");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 16:59
Ответы с готовыми решениями:

вычисления таблицы значений суммы S(x)
Еще раз нужно помощь высококвалифицированных специалистов! :) Проверьте мою...

Составить программы вычисления значений суммы и произведений ряда
Помогите кто нибудь. (0.5*n!)/(0/1*n+1) надо Составить программу вычисления...

Создать программы для вычисления значений функции и суммы ряда!
Cоставить программы на С для вычисления значений функции и суммы ряда, который...

Функция вычисления таблицы значений математического выражения
Задание к лабораторной работе 1. Составить алгоритм и реализовать функцию...

Разработать программу табулирования (вычисления таблицы значений) функции
тут сделали кое какие проги по заданиям, помогите ламеру по си доделать...

7
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
03.12.2013, 20:29 #2
Цитата Сообщение от Аркалык Посмотреть сообщение
Нужен совет программист-математиков.
Да нет, тут достаточно знать школьную программу. Знай вы её, вы бы знали, что логарифм - это функция, и вычисляется она от некоторого аргумента. А в степень возводится уже результат её вычисления.
C++
1
y=pow(log(3.0), k) / fact(k) * pow(x, k);
1
Аркалык
18 / 18 / 12
Регистрация: 24.09.2013
Сообщений: 163
03.12.2013, 20:33  [ТС] #3
silent_1991, Спасибо большое!!!
0
silent_1991
03.12.2013, 20:35
  #4
 Комментарий модератора 
Аркалык, на будущее: пункт 5.16 правил: Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
0
Аркалык
18 / 18 / 12
Регистрация: 24.09.2013
Сообщений: 163
03.12.2013, 20:59  [ТС] #5
silent_1991, Все так же, не компилируется код.
0
zss
Модератор
Эксперт С++
7083 / 6618 / 4190
Регистрация: 18.12.2011
Сообщений: 17,446
Завершенные тесты: 1
03.12.2013, 21:09 #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");
}
1
Аркалык
18 / 18 / 12
Регистрация: 24.09.2013
Сообщений: 163
03.12.2013, 21:17  [ТС] #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");
}
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
03.12.2013, 21:35 #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. Стандартный приём, к тому же, позволяющий значительно оптимизировать вычисления.
2
03.12.2013, 21:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 21:35

Необходимо написать программу вычисления таблицы значений функции f(x) на C++
Необходимо написать программу вычисления таблицы значений функции f(x) на C++:...

Сотавьте программу для вычисления таблицы значений функций
Здравствуйте посмотрите пожалуйста верно ли я составил программу для задачи:...

Разработать класс «Интеграл» для вычисления таблицы значений интеграла (ООП)
Классы языка С ++: интеграл. Метод Симпсона Разработайте класс «Интеграл»...


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

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

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