Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 13.12.2014
Сообщений: 8
1

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

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

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

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

Размер: 4.1 Кб
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2016, 15:49
Ответы с готовыми решениями:

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

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

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

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

1
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
25.05.2016, 11:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2016, 11:24
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru