Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.11.2009, 20:48   #1 (permalink)
neko89
Новичок
 
Регистрация: 24.11.2009
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите разобраться в програме на с++

Помогите с програмой.Если матрица размером 3 то все норм пашет, а если 4 то прога выкидывает ошибку(компилируетса нормально).Програма решает линейное уравнение методом Гаусса - Жордана.

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>

main()
{
clrscr();


float a[11][11], b[11], x[11], t;
int i, j, k, m, n;

n=4;
a[1][1]= 2; a[1][2]= 0; a[1][3]= 7; a[1][4]= 1; b[1]= 12;
a[2][1]= 1; a[2][2]=2; a[2][3]=-1; a[2][4]= -1; b[2]=2;
a[3][1]= -1; a[3][2]= -2; a[3][3]= 1; a[3][4]= 2; b[3]= 0;
a[4][1]= 0; a[4][2]= 2; a[4][3]= 0; a[4][4]= 0; b[4]= 6;

cout << "\n\n";
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
cout << a[i][j] << " ";
cout << b[i] << "\n";
}



double eps=.000001;
double max;
int max_i;
double lead, a_div_lead;

for(k=1; k<=n; k++)
{

max=0;
max_i=-1;

for(int i=k; i<=n; i++)
{
if(fabs(a[i][k])>max)
{
max=fabs(a[i][k]);
max_i=i;
}
}


if(max_i==-1 || fabs(a[max_i][k])<eps)
{
cout << "\n\n" << "Error: det=0" << "\n\n";
break;
}



lead=a[k][k];

for(j=k; j<=n; j++)
a[k][j]/=lead;
b[k]/=lead;

for(i=1; i<=n; i++)
{
a_div_lead=a[i][k]/a[k][k];

if(i!=k)
{
for(j=k; j<=n; j++)
a[i][j]-=a[k][j]*a_div_lead;
b[i]-=b[k]*a_div_lead;
}
}
}

cout << "\n\n";
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
cout << a[i][j] << " ";
cout << b[i] << "\n";
}


getch();
}

Последний раз редактировалось neko89; 25.11.2009 в 22:14
neko89 вне форума   Ответить с цитированием

Старый 25.11.2009, 20:48
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данные обсуждения имеют сходства с вашей темой

Помогите разобраться
Помогите разобраться

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 15:23.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.