Численные методы
Численные методы
СЛАУ
Метод Гаусса
Метод Гаусса для обращения матриц
Метод Гаусса для вычисления определителя
Интегрирование
Метод прямоугольников
Метод трапеций
Метод Симпсона
Методы оптимизации
Поиск отрезка локализации
Алгоритм Свена
Одномерный поиск минимума
Метод дихотомии
Метод золотого сечения
Метод Фибоначчи
Двухмерный поиск минимума
Метод градиентов
Метод наискорейшего спуска
Метод Флетчера-Ривса
 
 
Главная
Определения
Ссылки
Поиск


Метод Гаусса, программа

#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

const int n=4;//размерность системы

double

//последний столбец — вектор свободных членов

matr[n][n+1]={

3,-2,-5,1,3,

2,-3,1,5,-3,

1,2,0,-4,-3,

1,-1,-4,9,22

},

y[n];

double par,sum,r[n];

int i,j,ii,k,jj,t=1;


for (j=0;j<n-1;j++)

{

if (matr[j][j]==0) //исключаем деление на 0

{

ii=j+1;

do

{

if((matr[ii][j]!=0)||(ii==n-1)) //ищем строку, в которой j-й элемент не 0

{

break;

}

ii++;

}while(true);

if((matr[ii][j]==0)&&(ii==n-1))// если нет такой строки, значит система не разрешима

{

t=0;

};

for(k=0;k<n;k++)// меняем j-ю строку и найденую

{

r[k]=matr[j][k];

matr[j][k]=matr[ii][k];

matr[ii][k]=r[k];

}

}

//прямой ход

for (i=j+1;i<n;i++)

{

if(matr[i][j]!=0)// если matr[i][j]=0, делать ничего не надо

{

par=matr[i][j]/matr[j][j];

for (jj=j;jj<n+1;jj++)

{

matr[j][jj]=matr[j][jj]*par;

matr[i][jj]=matr[i][jj]- matr[j][jj];

matr[j][jj]=matr[j][jj]/par;

}

}

}

}

for (i=0;i<n;i++)

{

if (matr[i][i]==0)// если хоть один диагональный элемент равен 0, значит система не разрешима

{

t=0;

};

}

//обратный ход

if (t!=0)

{

y[n-1]=matr[n-1][n]/matr[n-1][n-1];

for (i=n-2;i>=0;i--)

{

j=n-1;

sum=matr[i][j]*y[j];

for (j=n-2;j>0;j--)

{

if (j!=i)

{

sum=sum+matr[i][j]*y[j];

}

}

y[i]=(matr[i][n]-sum)/matr[i][i];

}

for(i=0;i<n;i++)

{

cout<<y[i]<<endl;

}

}

else

cout<<"opredelitel=0"<<endl;

system("pause");

return 0;

}




Комментарии к тексту:

Имя:

Текст комментария:




дима, 21-12-2008, 13:29:11
мало //коментариев((((

, 10-06-2009, 00:27:57
не думала, что можно так просто и найти эту прогу))))))) СПС огоромнойе)))

, 10-11-2009, 19:32:47
почему только на этом языке((((