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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2009, 13:12   #1
Glarus
 
Аватар для Glarus
 
Регистрация: 26.10.2009
Сообщений: 5
По умолчанию Си. Проблема с методом Гаусса

Проблема состоит в приведении матрицы к треугольному виду.
Точнее на примере:
Дана матрица:

Коеффициентов:
3 1 0
5 -3 -9
1 6 -4
Результирующая:
5
7
-8

После исполнения этого куска программы:

Код:
for(int k=0;k<n-1;k++)
	{
		if(A.p[k][k]==0) {A.replacea(k,f);B.replaceb();}
		for(int i=k+1;i<n;i++)                         
		{   A.output();cout<<"\n";
			B.p[i][0]-=B.p[k][0]*A.p[i][k]/A.p[k][k];
			for(int j=k;j<n;j++)
			{A.p[i][j]-=A.p[k][j]*A.p[i][k]/A.p[k][k];}
		}
		if(A.p[k][k]==0){A.replacea(k,f);B.replaceb();}
	}
	cout<<"Output matrix A:\n";
	A.output();//Вывод матрицы A,приведённой к треугольному виду.
             cout<<"Output matrix B:\n";
	B.output();//Вывод матрицы B,приведённой к треугольному виду.
Матрица A должна выглядить так
3 1 0
0 -4.6 -9
0 0 -15
а матрица B
5
-1.33
-11.29

Но получается следующее:
3 1 0
0 -3 -9
0 0 -4
и
5
-1.33
-12.3
Ошибка заключается в том, что при вычитании из элементов строк выражение a[k][j]*a[i][k]/a[k][k] он использует элементы исходной матрицы только для a[1][0],который после вычесления равен нулю и используется в дальнейших вычеслениях.Так как a[1][0] в примере равный 5 после после вычисления равен 0, то a[k][j]*a[i][k]/a[k][k]=0
следовательно -3 -9 и -4 не изменяются.

Вопрос: Как заставить программу в течение цикла по i использовать элементы исходной матрицы?

Последний раз редактировалось Stilet; 26.10.2009 в 13:23.
Glarus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение системы линейных уравнений методом Гаусса. maliyusha Помощь студентам 16 18.02.2013 15:44
Решение систем уравнений методом Гаусса. Delphi. FixiK Помощь студентам 2 26.04.2009 12:06
Вычисление обратной матрицы методом Гаусса Штудент Общие вопросы C/C++ 0 07.12.2008 14:17
Решение СЛУ методом Гаусса-Джордана Жизнь Помощь студентам 2 05.10.2008 16:23