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

Ввод коэффициентов в уравнение - C++

Восстановить пароль Регистрация
 
WHITEMAN23
Сообщений: n/a
15.11.2012, 15:31     Ввод коэффициентов в уравнение #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
33
34
35
#include <iostream>
#include <cmath>
 
using namespace std;
 
double f1(double x)
{
    return sin(x) - x + 0.5;
}
 
double f2(double x)
{
    return cos(x) - 1;
}
 
int main()
{
    
    double x, y, eps;
    int n = 0;
    cout<<"Enter initial root value   : ";cin>>x;
    cout<<"Enter error of calculation : ";cin>>eps;
 
    do{
                 system("cls");
                 cout<<"Iteration : "<<0<<n<<endl;
        n ++;
        y = x;
        x =x - f1(x) / f2(x);
        cout<<"x    = "<<x    <<endl;
    }while ( fabs(y - x) >= eps );
 
 system("pause");
    return 0;
}
Требуется вставить коэффициенты (например a и b) в функцию перед sin(x) и x соответственно. Как я понимаю для этого необходимо ввести матрицу коэффициентов и цикл, но никак не могу понят как. Заранее спасибо за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2012, 15:31     Ввод коэффициентов в уравнение
Посмотрите здесь:

C++ Напечатать треугольник Паскаля — таблицу биномиальных коэффициентов
C++ Степенной полином с динамическим массивом коэффициентов
C++ Составить программу для вычисления биномиальных коэффициентов:
Напечатать треугольник Паскаля — таблицу биномиальных коэффициентов по формуле C++
C++ Дано уравнение ax2+bx+c=0. Решить уравнение, результат вывести на экран.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
milvus
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 35
15.11.2012, 15:49     Ввод коэффициентов в уравнение #2
почему бы прямо в функции помимо x не передать еще 2 коэффициента как параметры, а в main эти коэффициенты можно брать из файла или вводить в ручную или вычислять
WHITEMAN23
Сообщений: n/a
15.11.2012, 16:01     Ввод коэффициентов в уравнение #3
Если Вы имеете в виду так, то не работает и не знаю почему
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
34
35
36
#include <iostream>
#include <cmath>
 
using namespace std;
 
double f1(double x, double a, double b)
{
    return a*sin(x) - b*x + 0.5;
}
 
double f2(double x, double a, double b)
{
    return a*cos(x) - b;
}
 
int main()
{
    double x, y, eps, a, b;
    int n = 0;
    cout<<"Enter initial root value   : ";cin>>x;
    cout<<"Enter error of calculation : ";cin>>eps;
    cout<<"Enter a : ";cin>>a;
    cout<<"Enter v : ";cin>>b;
 
    do{
                 system("cls");
                 cout<<"Iteration : "<<0<<n<<endl;
        n ++;
        y = x;
        x =x - f1(x) / f2(x);
        cout<<"x    = "<<x    <<endl;
    }while ( fabs(y - x) >= eps );
 
 system("pause");
    return 0;
}
milvus
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 35
15.11.2012, 16:32     Ввод коэффициентов в уравнение #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
34
35
36
37
38
39
40
41
#include <iostream>
#include <string>
 
#include <cmath>
 
using namespace std;
 
 
double f1(double x, double a, double b); 
double f2(double x, double a, double b);
 
int main ()
{
    double x, y, eps, a, b;
    int n = 0;
    cout<<"Enter initial root value   : ";cin>>x;
    cout<<"Enter error of calculation : ";cin>>eps;
    cout<<"Enter a : ";cin>>a;
    cout<<"Enter v : ";cin>>b;
 
    do{
                 system("cls");
                 cout<<"Iteration : "<<0<<n<<endl;
        n ++;
        y = x;
        x =x - f1(x,a,b) / f2(x,a,b);
        cout<<"x    = "<<x    <<endl;
    }while ( fabs(y - x) >= eps );
 
 system("pause");
 
    return 0;
}
double f1(double x, double a, double b)
{
    return (a*sin(x) - b*x + 0.5);
} 
double f2(double x, double a, double b)
{
    return (a*cos(x) - b);
}
Лучше функции сначала объявлять а после main определять
и еще теперь при вызове f1 и f2 надо вводить и a и b
Yandex
Объявления
15.11.2012, 16:32     Ввод коэффициентов в уравнение
Ответ Создать тему
Опции темы

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