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

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

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

Итерационный метод не работает - C++

09.10.2013, 00:45. Просмотров 280. Ответов 0
Метки нет (Все метки)

Собственно дано 2 уравнения 1) x-cos(x)=0 2)x-10* cos(x)=0
нужно найти х 3 - мя способами 1) половинное деление 2) метод ньютона 3 ) итерационный метод

C++ (Qt)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
int main ()
{
setlocale(0,"rus");
int sh=0;
long double a, b, c, y1, y2,x;
long double const eps=0.000001;
cout << "Введите левую границу"<< endl;
cin>> a;
cout << "Введите правую границу"<< endl;
cin >> b;
c=(a+b)/2; 
cout<<"метод половинного деления:"<< endl;
while(abs(b-a)>eps)
{if ((c-cos(c))==0)
        cout << c;
    y1=a-cos(a);
    y2=c-cos(c);
    if (y1*y2<0)
        b=c;
    else
        a=c;
     c=(a+b)/2;
    sh++;
    }
cout << "x="<<setprecision(14) << c << "  "<< "Шагов:" << sh << endl;
 
cout << "метод Ньютона:"<< endl;
sh=0; x=0;
while (abs(x-cos(x))>eps)
{
x=x-((x-cos(x))/(sin(x)+1));
 
sh++;
 
}
cout << "x="<< x << "  "<< "Шагов:" << sh << endl;
 
cout << "итерационный метод:"<< endl;
sh=0; x=a;
while (abs(x-cos(x))>eps)
{
x=x-(x-cos(x));
 
sh++;
 
}
cout << "x="<< x << "  "<< "Шагов:" << sh << endl;
 
 
cout << "Введите левую границу"<< endl;
cin>> a;
cout << "Введите правую границу"<< endl;
cin >> b;
c=(a+b)/2; 
cout<<"метод половинного деления:"<< endl;
while(abs(b-a)>eps)
{if ((c-10*cos(c))==0)
        cout << c;
    y1=a-10*cos(a);
    y2=c-10*cos(c);
    if (y1*y2<0)
        b=c;
    else
        a=c;
     c=(a+b)/2;
    sh++;
    }
cout << "x="<<setprecision(14) << c << "  "<< "Шагов:" << sh << endl;
 
cout << "метод Ньютона:"<< endl;
sh=0; x=a;
while ((abs(x-10*cos(x))>eps))
{
x=x-((x-10*cos(x))/(10*sin(x)+1));
 
sh++;
 
}
cout << "x="<< x << "  "<< "Шагов:" << sh << endl;
 
cout << "Итерационный метод" << endl;
    x=a;
    sh=0;
    while ((abs(x-10*cos(x))>eps))
    {
        x=(x-(x-10*cos(x)));
        sh++;
    }
cout << "x="<< x << "  "<< "Шагов:" << sh << endl;
system ("pause");
return 0;
}

не работает последний цикл, помогите решить проблему буду признателен )))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2013, 00:45     Итерационный метод не работает
Посмотрите здесь:

Итерационный метод - C++
Помогите найти ошибку в алгоритме. Ошибка в итоге выливается том что при подсчёте невязки, она не уменьшается, а увеличивается. Матрицу 4x4...

Итерационный метод удаления бинарного дерева - C++
Есть бинарное дерево поиска нужно создать итерационный метод удаления дерева. Вот есть функция удаления дерева но при удалении происходит...

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

Рекуррентная формула и итерационный цикл - C++
Написать программу, которая вычисляет частичную сумму ряда \sum_{k=1}^{besk}\ln \left(\left( k\times k\pm 3\right)\div k\times k \right)...

Не работает метод класса - C++
Добрый вечер. При решении задачи столкнулся с проблемой. Есть вектор контейнер, заполнен class-объектами. Нада вызвать метод con_salary(),...

Не работает метод класса - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; using namespace std; class Lines { private: char *line;

не работает критический метод - C++
#include &lt;iostream&gt; using namespace std; int sort(int k, int p, int b, int n) { int min = 0; // для вставки задач int sum...

Не работает метод putdata() - C++
всем привет, пытаюсь создать класс машин с вводом и выводом марки и цены этой машины. ввести марку и цену получается, а вот вывести...не...

Не работает метод класса - C++
class Lines { private: char *line; public: void setLine(char *l) { int len = strlen(l);

Не работает метод Симпсона - C++
Не понимаю один момент. Если указываю в последней строчке так, то все работает, но препод говорит это неправильно, если указываю как...


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

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

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