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

Численное решение системы линейных уравнений

12.12.2014, 03:40. Просмотров 705. Ответов 7
Метки нет (Все метки)

Решить систему линейных уравнений:
-сформировать матрицу А коэффициентов и матрицу В правых частей (матрицы должны быть размещены в файле in_file.txt);
-вычислить обратную матрицу http://www.cyberforum.ru/cgi-bin/latex.cgi?{A}^{-1};
-вычислить матрицу X - решение системы уравнений;
-напечатать решение в файл o_file.txt


x1-x2+x4=0
x2-x3+x5=0
-x1+x3+x6+0
-5*x1-25*x2-9*x3=-2
25*x2+7*x4-43*x5=17
9*x3+43*x5-31*x6=-20

P.S. впереди фигурная скобка.


Вот такая вот задачка, как найти правильно обратную матрицу не пойму, выходит ерунда!
Выручайте, помогите разобраться во всем этом задании
Если не сложно, то желательно программу написать с комментариями, что бя я вас не переспрашивал по сто раз, что и где происходит и т.п., новичок же еще

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2014, 03:40
Ответы с готовыми решениями:

Решение системы линейных уравнений.
\begin{cases} & \text{ } cos(ax+2)...... x>2 \\ & \text{ } tg |x-2a| ...

Решение системы линейных уравнений
Помогите решить на Си

Решение системы линейных уравнений
Компилятор wxDev-c++. Ошибка:C:\Program Files\Dev-Cpp\çàäà÷è\ãëàâà1\Ïåðâàÿ...

Решение системы линейных уравнений
Не могу сделать прогу на С++. Кто сделает - огромное спасибо. Решить систему...

Найти решение системы линейных уравнений
Даны действительные числа a1, b1, c1, a2, b2, c2. Выяснить, верно ли, что...

7
zss
Модератор
Эксперт С++
6985 / 6547 / 4151
Регистрация: 18.12.2011
Сообщений: 17,275
Завершенные тесты: 1
12.12.2014, 05:27 #2
Большая коллекция решенных задач
См. спойлер Решение систем линейных уравнений.
0
qwen1234
0 / 0 / 1
Регистрация: 29.09.2014
Сообщений: 97
13.12.2014, 22:43  [ТС] #3
Это конечно хорошо, но там не совсем то, что мне нужно...
0
qwen1234
0 / 0 / 1
Регистрация: 29.09.2014
Сообщений: 97
15.12.2014, 03:42  [ТС] #4
Помогите пожалуйста сделать по данному заданию решение этих уравнений, с меня спасибо конечно же....
0
qwen1234
0 / 0 / 1
Регистрация: 29.09.2014
Сообщений: 97
21.12.2014, 00:54  [ТС] #5
Подскажите, пожалуйста, как можно решить данную систему уравнение (т.е. матрица 6 на 6) методом Крамера?

Добавлено через 8 часов 44 минуты
Неужели так никто и не поможет? Я просто в этом деле еще новичок. Просматривал я кодировки, где решается методом Гауса, но это не то, мне нужно именно Крамера, так что что бы еще была видна обратная матрица.
Все это сделать очень сложно, для меня, уж точно.
0
qwen1234
0 / 0 / 1
Регистрация: 29.09.2014
Сообщений: 97
23.12.2014, 21:21  [ТС] #6
zss, можете ли вы помочь с данной задачей?
Цитата Сообщение от qwen1234 Посмотреть сообщение
Решить систему линейных уравнений:
-сформировать матрицу А коэффициентов и матрицу В правых частей (матрицы должны быть размещены в файле in_file.txt);
-вычислить обратную матрицу ;
-вычислить матрицу X - решение системы уравнений;
-напечатать решение в файл o_file.txt
x1-x2+x4=0
x2-x3+x5=0
-x1+x3+x6+0
-5*x1-25*x2-9*x3=-2
25*x2+7*x4-43*x5=17
9*x3+43*x5-31*x6=-20
0
zss
Модератор
Эксперт С++
6985 / 6547 / 4151
Регистрация: 18.12.2011
Сообщений: 17,275
Завершенные тесты: 1
23.12.2014, 21:36 #7
Так этот пример практически то, что у Вас:
Крамер для коллекции
0
qwen1234
0 / 0 / 1
Регистрация: 29.09.2014
Сообщений: 97
05.01.2015, 22:19  [ТС] #8
Подскажите, пожалуйста, где у меня тут есть ошибка? Это все по той же теме, вроде все хорошо, но программа выдает не то, что нужно, если говорить о том, что она выдает, то вот:
Кликните здесь для просмотра всего текста
3.53562e+041 1.08434e-311 2.69493e-312 3.14281e-317 6.94713e-308
6.94796e-308 1.21696e-008 6.94772e-308 2.1319e-312 1.08434e-311
2.12213e-313 1.4822e-323 1.08434e-311 5.57703e-307 -1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

1.#QNAN 1.#QNAN 1.#QNAN 0 6.94713e-308
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

1.#QNAN 1.#QNAN 1.#QNAN 0 6.94713e-308
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

1.#QNAN 1.#QNAN 1.#QNAN 0 6.94713e-308
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

1.#QNAN 1.#QNAN 1.#QNAN 0 6.94713e-308
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

1.#QNAN 1.#QNAN 1.#QNAN 0 6.94713e-308
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

-1 0 1 0 0
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 0 1 0 0
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 1 0 0
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 1
1.#QNAN 1.#QNAN 1.#QNAN 0 1.08434e-311
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

-1 0 1 0 0
1 -1 0 1 0
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 0 1 0 0
-1 -1 0 1 0
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 1 0 0
-1 0 0 1 0
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
-1 0 1 1 0
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
-1 0 1 0 0
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 1
-1 0 1 0 0
1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN 1.#QNAN
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

-1 0 1 0 0
1 -1 0 1 0
0 1 0 0 1
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 0 1 0 0
-1 -1 0 1 0
-5 1 0 0 1
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 1 0 0
-1 0 0 1 0
-5 -25 0 0 1
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
-1 0 1 1 0
-5 -25 -9 0 1
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
-1 0 1 0 0
-5 -25 -9 0 1
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 1
-1 0 1 0 0
-5 -25 -9 0 0
6.36887e-314 5.03947e-322 2.92907e+267 6.94803e-308 7.35627e-314
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

-1 0 1 0 0
1 -1 0 1 0
0 1 0 0 1
-25 -9 0 0 0
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 0 1 0 0
-1 -1 0 1 0
-5 1 0 0 1
0 -9 0 0 0
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 1 0 0
-1 0 0 1 0
-5 -25 0 0 1
0 25 0 0 0
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
-1 0 1 1 0
-5 -25 -9 0 1
0 25 0 0 0
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 0
-1 0 1 0 0
-5 -25 -9 0 1
0 25 0 7 0
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

0 1 -1 0 1
-1 0 1 0 0
-5 -25 -9 0 0
0 25 0 7 -43
1.31778e+048 1.08434e-311 4.41376e-312 1.79087e-307 3.05514e+267

-1 0 1 0 0
1 -1 0 1 0
0 1 0 0 1
-25 -9 0 0 0
25 0 7 -43 0

0 0 1 0 0
-1 -1 0 1 0
-5 1 0 0 1
0 -9 0 0 0
0 0 7 -43 0

0 1 1 0 0
-1 0 0 1 0
-5 -25 0 0 1
0 25 0 0 0
0 0 7 -43 0

0 1 -1 0 0
-1 0 1 1 0
-5 -25 -9 0 1
0 25 0 0 0
0 0 9 -43 0

0 1 -1 0 0
-1 0 1 0 0
-5 -25 -9 0 1
0 25 0 7 0
0 0 9 0 0

0 1 -1 0 1
-1 0 1 0 0
-5 -25 -9 0 0
0 25 0 7 -43
0 0 9 0 43

1.#QNAN 1.#QNAN 1.#QNAN 1.#INF 1.#INF 1.#INF
1.#QNAN 1.#QNAN 1.#QNAN -1.#IND -1.#INF 1.#INF
1.#QNAN 1.#QNAN 1.#QNAN -1.#INF -1.#INF 1.#INF
1.#QNAN 1.#QNAN 1.#QNAN -1.#IND 1.#INF 1.#INF
1.#QNAN 1.#QNAN 1.#QNAN 1.#INF -1.#INF -1.#INF
1.#QNAN 1.#QNAN 1.#QNAN -1.#INF 1.#INF -1.#INF
X1=1.#QNAN
X2=1.#QNAN
X3=1.#QNAN
X4=1.#QNAN
X5=1.#QNAN
X6=1.#QNAN

(В самом конце, корни, которые, похоже на то, что делятся на 0)

Исходная матрица(находится в файле in_file) такова:
Кликните здесь для просмотра всего текста
6
1 -1 0 1 0 0 0
0 1 -1 0 1 0 0
-1 0 1 0 0 1 0
-5 -25 -9 0 0 0 -2
0 25 0 7 -43 0 17
0 0 9 0 43 -31 -20


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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream>
#include <fstream>
#include <math.h>
#include <stdio.h>
 
using namespace std;
double opr(double* , int,int);
int main()
{ 
    int N,M,i,j,i0,j0;
    double res,c,res1;
    ifstream f("in_file.txt");
    ofstream r("out_f.txt");
    f>>N;
    double mas[N][N], vd[N-1][N-1],d[N][N],x[N];
    double B[N];
    for (i=0;i<N;i++)
    {
        for (j=0;j<N;j++)
        {
            f>>mas[i][j];
        }
        f>>B[i];
        
    }
    for (i0=0;i0<N;i0++)
    {
        for (j0=0;j0<N;j0++)
        {
            
            for (i=0;i<N-1;i++)
            {
                for (j=0;j<N-1;j++)
                {
                    if (i<i0&&j<j0)
                        vd[i][j]=mas[i][j];
                    if (i<i0&&j>=j0)
                        vd[i][j]=mas[i][j+1];
                    if(i<i0&&j<j0)
                        vd[i][j]=mas[i+1][j];
                                
                }
            }
            
            for (i=0;i<N-1;i++)
            {
                for (j=0;j<N-1;j++)
                r<<vd[i][j]<<'\t';
                r<<endl;
            }
            r<<endl;
            
            res1=opr(&vd[0][0], N-1, N-1);
            cout<<"resyltat glavnii= "<<res1*pow((-1),(i0+j0))<<endl;
            d[j0][i0]=(pow((-1),(i0+j0)))*res1;
        }
    }
    
    res=opr(&mas[0][0], N, M);
    cout<<"res = "<<res<<endl;
    
    for (i=0;i<N;i++)
    {
        for (j=0;j<N;j++)
        {
            cout<<mas[i][j]<<'\t';
        }
        cout<<endl;
    }
    for (i=0;i<N;i++)
    {
        x[i]=0;
        for (j=0;j<N;j++)
        {
            r<<d[i][j]/res<<'\t';
            x[i]=x[i]+d[i][j]*B[j]/res;
        }
        r<<endl;
    }
    for (i=0;i<N;i++)
    r<<"X"<<i+1<<"="<<x[i]<<endl;
}
 
        double opr(double* ap,int N,int M)
{ int i,j,d,x=1,p,k;
double opred, koeff,pff;
if(N>1)//öèêë Г±Г·ГЁГІГ*ГҐГІ îïðåäåëèòåëü
{
opred=1;
p=0;
    if( *(ap+(N-1)*M+N-1)==0)
    {
        k=0;
        for(d=N-2; d>=0 && k<1;d--) 
        {
            if( *(ap+d*M+(N-1))!=0)
            {
                p=p+d-(N-1);
                x=1;
                k++;
                for (j=0;j<M;j++)
                {
                    pff= *(ap+(N-1)*M+j);
                    *(ap+(N-1)*M+j)=(*(ap+d*M+j));
                    *(ap+d*M+j)=pff;
                }
            }
            else
            {
                x=0;
            }
            cout<<k<<"\t"<<d<<endl;
        
        }
    }
    
    if(x==0)
    {
        opred=0;
    }
    else
    {
        for(i=0;i<N-1;i++)
        {
            koeff= -( *(ap+i*M+N-1))/(*(ap+(N-1)*M+N-1));
 
            for(j=0;j<N;j++)
            {   
                *(ap+i*M+j)=(* (ap+i*M+j))+koeff*( *(ap+(N-1)*M+j));
                cout<< *(ap+i*M+j)<<endl;
            }
 
        }
            opred=( *(ap+(N-1)*M+(N-1))) * (pow(-1,p)) * opr(&ap[0], (N-1), M);
    }
}
    
    else 
    {
        opred = ( *(ap+(N-1)*M+(N-1)));
    }
    
    return opred;
}
Добавлено через 3 часа 18 минут
zss, можете, пожалуйста, найти ошибку?
0
05.01.2015, 22:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2015, 22:19

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

Решение системы двух линейных уравнений
Привет всем. Я только недавно начал учить с++. Я вспомнил, что когда-то давно...

Найти решение системы линейных уравнений
привет всем, пожалуста помогите составить программу или испроваить ошибки в...


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

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

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