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

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

Войти
Регистрация
Восстановить пароль
 
РоманДмитриевич
0 / 0 / 0
Регистрация: 11.04.2012
Сообщений: 5
#1

Методом касательных вычислить с погрешностью e(1>e>0) корень уравнения - C++

11.04.2012, 01:04. Просмотров 907. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток!
Помогите найти ошибки и вдохнуть в программу жизнь

Методом касательных вычислить с погрешностью e(1>e>0) корень уравнения x^3-2x^2+x-3=0
при начальном приближении 2.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#include <conio.h>      //библиотека подключения функции getch()
#include <iostream.h> //библиотека для cin и cout
#include <malloc.h>    //библиотека для динамического выделения памяти
#include <fstream.h>   //библиотека для ввода/вывода в файл
#include <windows.h> //библиотека используется в функции RUS
#include <math.h>       //библиотека математических функций
#include <ctype.h>      // библиотека проверки принадлежности символов
#include <stdlib.h>      // библиотека некоторых стандартных функций
#include <string.h>      // библиотека функций работы со строками
//
char bufRus[256];
//---------------------------------------------------------------------------
char* RUS(const char*text) //функция поддержки русского языка
{
CharToOem(text,bufRus);
return bufRus;
}
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
cout<<RUS("***Расчетно графическая работа, задание 14*** \n");
 
 
 
double f(double x) {
 
    return    x^3-2x^2+x-3;
}
 
double f1(double x) {
 
    return   3*x^2-4*x+1;
}
 
double f2(double x) {
 
    return   6*x-4;
}
 
int main() {
    int n=0;
    double a,b,c,eps;
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"eps="; cin>>eps;
    if(f(a)*f2(a)>0) c=a;
    else c=b;
    do {
        c=c-f(c)/f1(c);
        n+=1;
    }
    while (fabs(f(c))>=eps);
        cout<<"c="<<c<<"\n";
        cout<<"n="<<n<<"\n";
        getch();
    return 0;
}
 
 
 
 
cout<<RUS("\nНажмите любую клавишу для завершения программы ...\n");
getch();
return 0;
}
//---------------------------------------------------------------------------
при запуске выдает ошибку
[C++ Error] Unit1.cpp(29): E2141 Declaration syntax error

на строчку
double f(double x)

помогите, пожалуйста, разрешить данную проблему, и в общем полностью довести программу до ума и вдохнуть в нее жизнь

Заранее огромнейшее человеческое СПАСИБО!
да хранит Вас Господь Бог!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2012, 01:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Методом касательных вычислить с погрешностью e(1>e>0) корень уравнения (C++):

Найти корень уравнения методом хорд и методом касательных - C++
На языке программирования DEV C++ 5.8.2 Метод Хорда и Касательный X^3+3x^2-24x-3=0 На отрезке (-1 и 0) вот в методе Касательного...

Найти корень уравнения y=f(x)=0 методом касательных - C++
Добрый день. Помогите пожалуйста, нужно распечатать значение функции в точке х1. В моем варианте при распечатке это значение равно 0... ...

Найти корень уравнения методом касательных - C++
Найти корень уравнения методом касательных x^2-1/2=0

Найти корень уравнения методом касательных - C++
Помогите пожалуйста! Нужно найти корень уравнения cos(x/2)*sin(x) + 1 = 0 методом касательных. Вот моя попытка найти корень, но почему...

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

Вычислить методом итераций корень уравнения - C++
Вот сижу, ломаю голову, понимаю что самой это сделать не получится, а скоро сдавать, поэтому прошу вас о помощи! Очень надо! Язык С ...

4
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
11.04.2012, 03:22 #2
У Вас 2 функции main. Так делать нельзя.
0
РоманДмитриевич
0 / 0 / 0
Регистрация: 11.04.2012
Сообщений: 5
11.04.2012, 22:48  [ТС] #3
Toshkarik, а какую функцию убирать?? Первая она шаблонная, а вторая вообщем то пустая...я в замешательстве((

помогите довести программу до ума((
0
Oak
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 10
11.04.2012, 22:57 #4
Кинуть все в первый main, не?
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
11.04.2012, 23:20 #5
Что значит шаблонная? Oo main не может быть шаблонной. Просто подправил все под одну main, не проверял.
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#include <conio.h>      //библиотека подключения функции getch()
#include <iostream.h> //библиотека для cin и cout
#include <malloc.h>    //библиотека для динамического выделения памяти
#include <fstream.h>   //библиотека для ввода/вывода в файл
#include <windows.h> //библиотека используется в функции RUS
#include <math.h>       //библиотека математических функций
#include <ctype.h>      // библиотека проверки принадлежности символов
#include <stdlib.h>      // библиотека некоторых стандартных функций
#include <string.h>      // библиотека функций работы со строками
//
char bufRus[256];
//---------------------------------------------------------------------------
char* RUS(const char*text) //функция поддержки русского языка
{
CharToOem(text,bufRus);
return bufRus;
}
//---------------------------------------------------------------------------
#pragma argsused
 
 
double f(double x) {
 
    return    x^3-2x^2+x-3;
}
 
double f1(double x) {
 
    return   3*x^2-4*x+1;
}
 
double f2(double x) {
 
    return   6*x-4;
}
 
int main() {
    cout<<RUS("***Расчетно графическая работа, задание 14*** \n");
    int n=0;
    double a,b,c,eps;
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"eps="; cin>>eps;
    if(f(a)*f2(a)>0) c=a;
    else c=b;
    do {
        c=c-f(c)/f1(c);
        n+=1;
    }
    while (fabs(f(c))>=eps);
        cout<<"c="<<c<<"\n";
        cout<<"n="<<n<<"\n";
 
    cout<<RUS("\nНажмите любую клавишу для завершения программы ...\n");
    getch();
    return 0;
}
Добавлено через 2 минуты
Да и у вас куча ошибок.

Цитата Сообщение от Toshkarik Посмотреть сообщение
while (fabs(f(c))>=eps);
Бесконечный цикл во первых, во вторых даже если бы с ним все было бы хорошо то выводился бы только
Цитата Сообщение от Toshkarik Посмотреть сообщение
cout<<"c="<<c<<"\n";
в цикле, второй оператор
Цитата Сообщение от Toshkarik Посмотреть сообщение
cout<<"n="<<n<<"\n";
вывелся бы один раз после цикла, то есть там пропущены фигурные скобки. Дальше даже не смотрел.
1
11.04.2012, 23:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2012, 23:20
Привет! Вот еще темы с ответами:

Вычислить методом Ньютона корень уравнения - C++
Помогите, пожалуйста, написать программу, вычисляющую методом Ньютона: sinx - x + 0,5 = 0, интервал изоляции корня .

Вычислить методом Ньютона корень уравнения - C++
Помогите, пожалуйста, написать программу, вычисляющую методом Ньютона`(x_(k+1)=x_k-A^(-1) (x_k )f(x_k )) где уравнений с положительными...

Вычислить корень уравнения на отрезке [a; b] с точностью eps=0.000001, методом половинного деления - C++
есть код #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;iostream.h&gt; double f(double x) { return x*x*x-3; } int...

Уточнить корни уравнения в заданном диапазоне с погрешностью методом Ньютона - C++
Уточнить корни уравнения в заданном диапазоне с погрешностью E &lt; 10 -3 методом Ньютона: arccos(x)-sqrt(1-0.3*X^3)=0 0&lt;x&lt;1...


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

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

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