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

Вычисление значения функции рекуррентным способом - C++

Восстановить пароль Регистрация
 
AndreyDanger
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 14
18.10.2016, 18:44     Вычисление значения функции рекуррентным способом #1
Добрый вечер. Сижу, пытаюсь разобраться с программой, изначально было 8 ошибок, исправил 7. Осталась одна, я понимаю, где ошибка, но не могу сам исправить, не хватает знаний (т.к только недавно начал изучение С++). Поэтому прошу помощи, спасибо заранее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <math.h>
main ()
{
    float x,y,x1,y1,p,e;
    e=pow(10,-5);
    cout<<"Input p:";
    cin>>p;
    for(x=0.1;x<=10;x++)
    x1=x*sqrt(x);
    do {
        y=y1;
        y1=((1/p)*(p-y)*yn+(x1/pow(y,p)));
    }
    while (fabs(y1-y)<=e); 
    cout<<y;
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2016, 18:44     Вычисление значения функции рекуррентным способом
Посмотрите здесь:

C++ Вычисление суммы арифметической прогрессии рекуррентным способом
C++ Вычисление значения функции
Вычисление значения функции C++
C++ На С++ вычисление значения функции
C++ вычисление значения функции
Вычисление суммы ряда с рекуррентным соотношением C++
Вычисление значения функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
18.10.2016, 18:56     Вычисление значения функции рекуррентным способом #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
    const double e=1e-5;
    cout<<"Input p:";
    double p;cin>>p;
    double x1=0.1;
    for(double x=0.1;x<=10.0;x++)
        x1=x*sqrt(x);   
// зачем x1 вычисляется многократно, а используется только последнее значение?
    double y1=x1,y;
    do 
    {
        y=y1;
        y1=(p-y)/p*y+x1/pow(y,p); // что за выражение - не понятно
    }
    while (fabs(y1-y)>=e); 
    cout<<y;
    return 0;
}
Исправил ошибки компиляции.
Но что такое у Вас написано в 13 строке - не понимаю
AndreyDanger
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 14
18.10.2016, 19:04  [ТС]     Вычисление значения функции рекуррентным способом #3
Цитата Сообщение от zss Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
    const double e=1e-5;
    cout<<"Input p:";
    double p;cin>>p;
    double x1=0.1;
    for(double x=0.1;x<=10.0;x++)
        x1=x*sqrt(x);   
// зачем x1 вычисляется многократно, а используется только последнее значение?
    double y1=x1,y;
    do 
    {
        y=y1;
        y1=(p-y)/p*y+x1/pow(y,p); // что за выражение - не понятно
    }
    while (fabs(y1-y)>=e); 
    cout<<y;
    return 0;
}
Исправил ошибки компиляции.
Но что такое у Вас написано в 13 строке - не понимаю
Мне нужно решить уравнение x*sqrt(x) (x=0.1, шаг 10, e=1e-5), используя формулу, что на рисунку.
Миниатюры
Вычисление значения функции рекуррентным способом  
AndreyDanger
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 14
18.10.2016, 19:05  [ТС]     Вычисление значения функции рекуррентным способом #4
То, что в 13 строке, я честно сам не понимаю, но мой преподаватель сказал, что так нужно.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
18.10.2016, 22:22     Вычисление значения функции рекуррентным способом #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Держите
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>
using namespace std;
int main()
{
    const double eps=1e-5;
    double p=2.0;
    cout<<"x\ty\ty_libr\n";
    for(double x=0.1;x<=10.0;x+=0.1)
    {
        double y1=x,y;
        do 
        {
            y=y1;
            y1=(y*(p-1.0)+x/y)/p; // от функции pow надо обязательно избавиться. для p=2 pow(y,p-1)=y
        }
        while (fabs(y1-y)>=eps); 
        double y_lib=x*sqrt(x);   
        cout<<x<<'\t'<<y*x<<'\t'<<y_lib<<endl;
    }
    system("pause");
    return 0;
}
Только это называется не решение уравнения, а вычисление значения функции рекуррентным способом.

з.ы. На будущее - в теме сразу пишите постановку задачи и как Вы ее пытались решить, а не то, что Вам выдает компилятор.
AndreyDanger
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 14
19.10.2016, 17:59  [ТС]     Вычисление значения функции рекуррентным способом #6
Спасибо. Только начал недавно осваивать, стараюсь делать сам, но вот бывают такие задания, что без посторонней помощи не решу.
Yandex
Объявления
19.10.2016, 17:59     Вычисление значения функции рекуррентным способом
Ответ Создать тему
Опции темы

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