Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Andriy17
0 / 0 / 1
Регистрация: 13.12.2014
Сообщений: 8
#1

Система линейных алгебраических уравнений - C++

22.05.2016, 15:49. Просмотров 175. Ответов 1
Метки нет (Все метки)

Решить систему линейных алгебраических уравнений. Метод решения выбрать самостоятельно. Коэффициенты и свободные члены линейного уравнения считываются с предварительно подготовленного файла

Название: 1.PNG
Просмотров: 25

Размер: 4.1 Кб
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2016, 15:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Система линейных алгебраических уравнений (C++):

Система линейных алгебраических уравнений
Помогите пожалуйта с програмой вопрос жизни и смерти!!! Мне нужно написать...

Система линейных алгебраических уравнений
помогите исправить ошибки! #include "stdafx.h" #include <iostream> #include...

Решить систему линейных алгебраических уравнений
Решить CЛАУ 2A^tX=Y^2,где |2 1 5 6| |3| A= |5 2 2 6|...

Решение системы линейных алгебраических уравнений
Добрый вечер!!! Помогите, пожалуйста, написать программу для решения системы...

Плохо обусловленные системы линейных алгебраических уравнений
Добрый вечер! Ребят, может сталкивался кто с такими методами решения плохо...

Численные методы решения линейных алгебраических уравнений
Тема -ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ Как...

1
Andriy17
0 / 0 / 1
Регистрация: 13.12.2014
Сообщений: 8
25.05.2016, 11:24  [ТС] #2
Лучший ответ Сообщение было отмечено Andriy17 как решение

Решение

Вот нашол код
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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <vector>
#include <iomanip>
#include <iostream>
#include <cmath>
#include <locale.h> 
#include <stdio.h>
#include <fstream>
#include <Windows.h>
 
using namespace std;
 
int main()
{
    int k=1;
    char *str = new char [256];
    int n=0;
    ifstream base("file.txt");
    while (!base.eof())
    {
        base.getline(str, 256, '\n');
        n++;
    }
    base.close();
    delete str;
    int m=n+1;
    fstream fi;
    fi.open("file.txt", ios::in);
    float ** matr=new float *[n];
    for (int i=0; i<n; i++) 
    {
        matr[i]=new float [m];
    }
    int i, j;
    if (!fi)
    { 
        cerr << "error file doesn't exist\n"; 
        exit(1);
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            fi>>matr[i][j];
        }
    }
    for (i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cout<<setw(10)<<matr[i][j]<<"    ";
        }
        cout<<"\n";
    }
    fi.close();
    long double eps=0.001;
    // Введем вектор значений неизвестных на предыдущей итерации,
    // размер которого равен числу строк в матрице, т.е. size,
    // причем согласно методу изначально заполняем его нулями
    vector <long double> previousVariableValues (n, 0);
    // Будем выполнять итерационный процесс до тех пор, 
    // пока не будет достигнута необходимая точность    
    while (true)
    {
        
        // Введем вектор значений неизвестных на текущем шаге       
        vector <long double> currentVariableValues (n);
        // Посчитаем значения неизвестных на текущей итерации
        // в соответствии с теоретическими формулами
        cout<<"Reshenie na"<<' '<<k<<' '<< "iteracii:"<<endl;
        for (int i = 0; i < n; i++)
        {
            // Инициализируем i-ую неизвестную значением 
            // свободного члена i-ой строки матрицы
            currentVariableValues[i] = matr[i][n];
            // Вычитаем сумму по всем отличным от i-ой неизвестным
            for (int j = 0; j < n; j++)
            {       
                    currentVariableValues[i] = currentVariableValues[i] + matr[i][j] * previousVariableValues[j];
            }
        
        cout<<"x"<< i+1<< "="<< currentVariableValues[i]<<endl;
        }
        
        // Посчитаем текущую погрешность относительно предыдущей итерации
        long double max = 0;
        for (int i = 0; i < n; i++)
        {
            max=fabs (currentVariableValues[0] - previousVariableValues[0]);
            if(max<fabs (currentVariableValues[i] - previousVariableValues[i]))
            {   
                max=fabs (currentVariableValues[i] - previousVariableValues[i]);
            }
        }
        // Если необходимая точность достигнута, то завершаем процесс
        if (max < eps)
        {
            break;
        }
        // Переходим к следующей итерации, так 
        // что текущие значения неизвестных 
        // становятся значениями на предыдущей итерации
        previousVariableValues = currentVariableValues;
        k++;
    }
    // Выводим найденные значения неизвестных с 8 знаками точности
    cout<<endl;
    cout<< "Reshenie s neobxodimoi tochnost'u"<<endl;
    for ( i = 0; i < n; i++)
    {
        cout<<"x"<< i+1<< "=" << previousVariableValues[i]<<endl;
    }
    system("pause");
    return 0;
}
но при матрице
1.0 8.0 -7.0 3.0 1.0
2.0 3.0 1.0 2.0 8.0
-1.0 4.0 2.0 -6.0 9.0
11.0 -5.0 -3.0 -7.0 32.0

цикл не заканчивается
что делать?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2016, 11:24
Привет! Вот еще темы с решениями:

Решение СЛАУ - Системы линейных алгебраических уравнений
Задачу почти закончил писать, матрицу приводит к ступенчатому виду, только не...

Решение системы линейных алгебраических уравнений методом Гаусса
Решить систему n линейных алгебраических уравнений методом Гаусса. Использовать...

Методом Гаусса решить систему n линейных алгебраических уравнений
Помогите пожалуйста написать на с++ методом Гаусса решить систему n линейных...

Решение системы линейных алгебраических уравнений, метод простой итерации
Решить систему линейных алгебраических уравнений. Коэффициенты и свободные...


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

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

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