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

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

Войти
Регистрация
Восстановить пароль
 
omenufa
1 / 1 / 0
Регистрация: 23.09.2010
Сообщений: 20
#1

Дополнить код, метод Ньютона. - C++

26.05.2011, 20:16. Просмотров 512. Ответов 0
Метки нет (Все метки)

Здравствуйте, понимаю, что подобных тем на форуме уже выше крыши, но все таки создам)

Задача решить нелинейное уравнение методом Ньютона, программа решает всё нормально, только хочу сделать такую фишку, чтобы в консоли выводились сообщения о том, что на заданном отрезке либо отсутствует корень, либо их несколько, буду рад любой помощи, спасибо.



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
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <iostream>
 
using namespace std;
 
#define pi 3.141592653587973
 
double f(double x) {
 
        return   cos(x);
}
 
double diff(double x) {
 
        return   -sin(x);
}
 
double diff2(double x) {
 
        return   -cos(x);
}
 
int main() {
    setlocale(LC_ALL,"rus_rus.1251");
        int n=0;
        double a,b,x,xt,eps=1e-6;
A:      cout<<"Введите левую границу отрезка \'a\'="; cin>>a;
        if(!cin.good()){
            cout<<"Ошибка! Введите левую границу заново!"<<endl;
            _flushall();
            cin.clear();
            _getch();
            goto A;}
B:      cout<<"Введите правую границу отрезка \'b\'="; cin>>b;
        if(!cin.good() || b<=a){
            cout<<"Ошибка! Введите правую границу заново!"<<endl;
            _flushall();
            cin.clear();
            _getch();
            goto B;}
        x=a;
        do{
            n++;
            xt=x;
            x=-f(x)/diff(x)+x;
            cout<<"["<<n<<"]="<<x<<endl;
                if(f(x)*diff2(a)>0) a=x;
                else b=x;
        }
    
        while (fabs(x-xt)>=eps);
                cout<<"x="<<x<<endl;
                getch();
        return 0;
}
Добавлено через 37 минут
пробую проверить знаки первой и второй производных на заданном отрезке:
diff - первая производная, diff2 - вторая производная, [a;b] - отрезок.

с условиями пока не разобрался

Добавлено через 23 часа 29 минут
ап темку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2011, 20:16     Дополнить код, метод Ньютона.
Посмотрите здесь:

C++ метод ньютона !
Метод Ньютона C++
C++ Метод Ньютона
C++ Метод Ньютона
Метод Ньютона C++
C++ метод Ньютона
Связные списки, дополнить код C++
нужно дополнить - исправить код C++
Дополнить код C++
C++ Метод Ньютона
C++ Метод Ньютона
Исправить код метод Ньютона для решения систем нелинейных уравнений под нужное условие C++

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

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

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