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

Помогите найти программу решения систем алгебраических уравнений методом Зейделя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При релизе программы не падают фигуры по таймеру http://www.cyberforum.ru/cpp-beginners/thread1244417.html
Извините, если тема повторяется, но при отладке приложения все нормально(в моем приложении падают фигуры сверху вниз при каждом тике таймера ), при релизе программы они не падают. это странно. Либо...
C++ Запись в начало файла Здравствуйте мне нужно записать слово "zashivrovano" в начале каждого файла: я так понял алгоритм следующий: 1) Создаем новый файл 2) Пишем в него слово Zsdhifrovano 3) Дописать данные из... http://www.cyberforum.ru/cpp-beginners/thread1244360.html
Создать двумерный массив, каждый элемент которого задается случайным образом C++
Если вкратце, нужно создать двумерный массив, каждый элемент которого задается случайным образом. Вот моя программа: #include <iostream>; #include <cstdlib>; #include <ctime>; using namespace...
Зачем использовать Указатель на указатель? C++
Подскажите зачем использовать Указатель на указатель? И как работают двумерные массивы за счет указателей?
C++ Считать BMP изображение в динамическую память http://www.cyberforum.ru/cpp-beginners/thread1244274.html
Нужно считать ВМР изображение в массив в динамической памяти используя fstream.
C++ Что такое шаблоны функций? Люди обясните пожалуйста шаблоны функций На заннятиях чучуть провтыкал помогите вы буду благодарен!! подробнее

Показать сообщение отдельно
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
19.08.2014, 16:54
Че-то считает. Проверку точности заменил на упрощенную:
Кликните здесь для просмотра всего текста
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
#include <conio.h>
#include <iostream>
using namespace std;
 
const int eps = 0.1;
const int n = 3;
 
   // Условие окончания
bool converge(double *xk, double *xkp)
{
    for (int i = 0; i < n; i++) 
    {
        if (abs(xk[i] - xkp[i]) > eps) return false;
    }
    return true;
}
 
int main()
{
 
    double a[n][n] = {
                        {4.2 , 2.3 , 1.3}, 
                        {-1.3 , 7.2, 5.4},
                        {2.3 , 5.1, 11.2}
                    };
    double b[n] = {6.1 , 8.6 , 8.2 }; 
    double x[n] = {0}, p[n];
 
    do
    {
        for (int i = 0; i < n; i++)
            p[i] = x[i];
 
        for (int i = 0; i < n; i++)
        {
            double var = b[i];
            
            for (int j = 0; j < i; j++)
                var -= (a[i][j] * x[j]);
            for (int j = i + 1; j < n; j++)
                var -= (a[i][j] * p[j]);
            x[i] = var / a[i][i];
        }
    } while (!converge(x, p));
 
    for(int i=0;i<n;i++) cout<<x[i]<<" ";
 
    cout << endl << endl;
    for (int i = 0; i < n; ++i) {
        double v = 0;
        for (int j = 0; j < n; ++j) {
            v += a[i][j] * x[j];
            cout << a[i][j] << '*' << x[j] << " + ";
        }
        cout << "\b\b= " << v << endl;
    }    
 
    _getch();
    return 0;
}

Почему-то результат: (0.723674 1.34773 -0.0301694)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru