Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Расчет матрицы по формуле крамера !ВНИМАНИЕ!


Автор: anton23 1.6.2006, 13:30
Привет всем, у меня возникла такая проблема: немогу сделать, чтоб прога считала матрицы(начина с матриц 4х4 и выше) по формуле Крамера. У меня только получилось сделать только расчет определителя, вот исходник который считает только определитель:
Код

#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>

int A[4][4]={{2,5,3,8},
             {7,3,9,2},
             {1,6,0,2},
             {5,2,8,7}};

int Calculate(int N, int M[4][4])
{
        if (N == 1)
                return M[0][0];
        else
        {
                int M1[4][4];
                int i, x, X, Y, Res = 0;
                for (i = 0; i < N; i++)
                {
                        for (Y = 1; Y < N; Y++)
                        {
                                x = 0;
                                for (X = 0; X < N; X++)
                                        if (X != i)
                                                M1[Y-1][x++] = M[Y][X];
                        }
                        if (i % 2 == 0)
                                Res += M[0][i] * Calculate(N - 1, M1);
                        else
                                Res -= M[0][i] * Calculate(N - 1, M1);
                }
                return Res;
        }
}

int main(int argc, char* argv[])
{
        int Op = Calculate(4, A);
        cout << Op << endl;
        getch();
        return 0;
}
 

Автор: skyboy 1.6.2006, 13:39
anton23, он считает определитель или нет?  

Автор: anton23 1.6.2006, 17:13
Да эта прога считает только опредилитель, а надо посчитать сами значения 
X1=?
X2=?
X3=?
X4=? 

Автор: skyboy 1.6.2006, 17:54
anton23, хе-хе. А что это за метод Крамера, который ситает таблицы?  smile Метод Крамера применяется для решения системы линейных уравнений smile 
Например, так:
х1+3·х2+5·х3-7·х4=8
-х2+5·х4=12
-х1-х3-8·х4=-20
х1+2·х2-8·х4=6
Формируешь матрицу из коэффициентов при Х:
 1  3  5  -7
 0 -1  0   5
-1  0 -1 -8
 1  2   0 -8
Находишь её определитель. Чтоб найти Х1, тебе надо в той матрице первый столбик  заменить цифрами, стоящими в уравнениях после знака "=":
 8    3  5  -7
 12 -1  0   5
-20  0 -1 -8
 6    2   0 -8
Находишь её определитель. И делишь второй определитель на первый. Эдак ты получаешь Х1. Чтоб получить Х2, надо найти разделить определитель матрицы(которую получишь, если в матрцие из коэффициентов при Х заменишь уже второй столбец) на самый первый определитель и т.д.
з.ы. Систему уравнений придумал на ходу; вполне возможно, что она не имеет решения.

 

Автор: ksili 9.6.2006, 04:36
skyboy, прав. Метод Крамера применяется для решения СЛАУ. Если можешь посчитать определитель, то и решение системы сможешь найти. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)