Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2012, 19:16   #1
inna_matuashova
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 13
Восклицание РЕШЕНИЕ СЛАР МЕТОДОМ ГАУССА!!!!

Помогите мне доделать прогу на с++!!! Надо дописать вконце проверку этого метода!!!! ОЧЕНЬ ВАС ПРОШУ ПОМОЧЬ!!!! ПЛИЗ!!!ВОТ МОЯ РАБОЧАЯ ПРОГА:

Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc, char* argv[])
{
const int n=3;//размерность системы
double 
//последний столбец — вектор свободных членов
matr[n][n+1]={
0.83,2.18,-1.73,0.28,
2.18,-1.41,1.03,-1.18,
-1.73,1.03,2.27,0.72,
},
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];
sum=matr[i][n]-matr[i][i]*y[i];
}
for(i=0;i<n;i++)
{
	
cout<<"x"<<i+1<<"=";
cout<<y[i]<<endl;

}
}
else
cout<<"opredelitel=0"<<endl;
system("pause");
return 0;
}

Последний раз редактировалось ACE Valery; 25.02.2012 в 21:12.
inna_matuashova вне форума Ответить с цитированием
Старый 25.02.2012, 19:43   #2
inna_matuashova
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 13
По умолчанию

И еще: можно метод Гаусса сделать в виде функции!!!Помогите мне плиз!!!!
inna_matuashova вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение СЛАУ методом Гаусса Денис999 Помощь студентам 2 27.11.2011 18:31
Решение СЛАУ методом Гаусса Medvedko0116 Помощь студентам 0 27.06.2011 11:15
решение слау методом гаусса subarimpra Помощь студентам 0 31.10.2010 15:26
решение интеграла методом гаусса Daurik Помощь студентам 1 06.05.2010 09:49
Решение СЛУ методом Гаусса-Джордана Жизнь Помощь студентам 2 05.10.2008 16:23