Форум программистов, компьютерный форум CyberForum.ru

Метод Гаусса - C++

Восстановить пароль Регистрация
 
Напалм
Сообщений: n/a
03.03.2011, 13:03     Метод Гаусса #1
какой-то цикл конит. посмотрите пожалуйста что не так.




#include <conio.h>
#include <iostream.h>
#include <math.h>
//---------------------------------------------------------------------------


int main(int argc, char* argv[])
{
int n,i,j,k,p,m;
double a[20][20],b[20],x[20],pr[20],w[20][20],r,c,s;
cout<<"Vvedite razmer:"<<endl;
cin>>n;
cout<<"Vvedite matricu SLAU"<<endl;

for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
cin>>a[i][j];
w[i][j]=a[i][j];
}
cout<<endl;
}
cout<<"Vvedite stolbec svobodn elementov"<<endl;
for (i=1;i<=n;i++)
{
cin>>b[i];
cout<<endl;
pr[i]=b[i];
}


//Конец 1 цикла
//Начало 2-ого цикла
for(k=1;k<=n-1;k++){
p=k;//строчка имеет № k
for(m=k+1;m<=n;m++)
if(fabs(a[p][k])<fabs(a[m][k])) p=m;//№ строки в которой к максимальный элемент
for (j=k;j<=n;j++)
{

//Блок № 7( через указатели)-вместо цикла 3
r=a[k][j]; // p-ую строку меняем с к-ой;;
a[k][j]=a[p][j]; // ^^^
a[p][j]=r; // ^^^
r=b[k]; b[k]=b[p]; b[p]=r;//конец элемента модификации
if (a[k][k]==0)
{
cout<<"Sistema ne imeet reshenii ili imeet beskonechno mnogo reshenii"<<endl;

}

// начало прямого хода Гаусса(привед. к треуг. виду))

for(m=k+1;m<=n;m++){//формирование коэфф. С
c=a[m][k]/a[k][k];//проверка на нули
b[m]=b[m]-c*b[k];
for(i=k;i<=n;i++)//вложенный цикл
a[m][i]-=c*a[k][i];// // закрытие 4 и 1 циклов
}
}
if (a[n][n]==0)
{
cout<<"Sistema ne imeet reshenii ili imeet beskonechno mnogo reshenii"<<endl;

}
// конец прямого хода Гаусса
// блок 19(обр. ход.)
x[n]=b[n]/a[n][n];//находим последний
// 6 цикл
for(k=n-1;k>=1;k--)//ф-лы 2.3 методы
s=0;
for(i=k+1;i<=n;i++)
{
s+=a[k][i]*x[i];
x[k]=(b[k]-s)/(a[k][k]);
}
for(i=1;i<=n;i++)
cout<<x[i]<<endl;
for(i=0;i<=n;i++)
{
for (j=1;j<=n;j++)
{

pr[i]=pr[i]-w[i][j]*x[j];
}
}
cout<<"Neviazka="<<endl;
for (i=1;i<=n;i++)
{
cout<<pr[i];
cout<<endl;
}
}

getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2011, 13:03     Метод Гаусса
Посмотрите здесь:

Метод Гаусса C++
C++ Метод Гаусса
Метод Гаусса C++
C++ метод гаусса
метод Гаусса C++
метод гаусса C++
Метод Гаусса C++
Метод Гаусса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru