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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2013, 05:36   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию треугольный вид матрицы

Код:
for (int k=0;k<n;k++)
       {
          for (int i=k+1;i<n;i++)
          {
              if (a[k][k] != 0)
             mu=a[i][k]/a[k][k];
             for (int j=0;j<n;j++)
                a[i][j]-=a[k][j]*mu;
           
          }
       }
помогите исправить етот код.
Пробовал найти чтото в инете но там как то всё очень сложно. Мне не нужно решить систему уравнений. Нужно только свести матрицу к треугольному виду.
Pein95 вне форума Ответить с цитированием
Старый 03.01.2013, 16:34   #2
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

есть тут кто?)
Pein95 вне форума Ответить с цитированием
Старый 03.01.2013, 22:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я есть. Но я не понял задачи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.01.2013, 08:27   #4
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

квадрат не может быть треугольником. поймите вашу задачу более правильно.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 04.01.2013, 09:50   #5
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
"Треугольник будет выпит. Будь он параллелепипед, будь он круг, едрена вошь!"
Цитата:
На первом этапе осуществляется так называемый прямой ход, когда путём элементарных преобразований над строками систему приводят к ступенчатой или треугольной форме, либо устанавливают, что система несовместна. А именно, среди элементов первого столбца матрицы выбирают ненулевой, перемещают его на крайнее верхнее положение перестановкой строк и вычитают получившуюся после перестановки первую строку из остальных строк, домножив её на величину, равную отношению первого элемента каждой из этих строк к первому элементу первой строки, обнуляя тем самым столбец под ним. После того, как указанные преобразования были совершены, первую строку и первый столбец мысленно вычёркивают и продолжают пока не останется матрица нулевого размера. Если на какой-то из итераций среди элементов первого столбца не нашёлся ненулевой, то переходят к следующему столбцу и проделывают аналогичную операцию.
http://ru.wikipedia.org/wiki/%D0%9C%...81%D1%81%D0%B0
EUGY вне форума Ответить с цитированием
Старый 04.01.2013, 09:55   #6
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
ты перепил...... ты понимаешь, даже лучше трезвых.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 04.01.2013, 17:51   #7
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

спс) всем кто откликнулся) проблему уже решил)
Pein95 вне форума Ответить с цитированием
Старый 04.01.2013, 21:53   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Интересно как...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.01.2013, 23:29   #9
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

Код:
void triangle_view(double a[][N],int n)
{
    double v;
    int row = 0;
    int k=0;
    while (k<n-1)
   {
       int i,j;
	   int gr = row;
        for (i=row+1; i<n;i++)
        {
            if (fabs(a[row][k]) < fabs(a[i][k]))
                gr = i;
        }

        if ( (row == gr) && (a[row][k] == 0)) {
			k++;
			continue;
		}


        if (row != gr)
        {
            for (j=0; j<n; j++)
            {
				
                v = a[row][j]; 
                a[row][j] = a[gr][j];
                a[gr][j] = v;
            }

        }

	
        for (i=row+1; i<n; i++)
        {
			
            v = 1.0*a[i][k]/a[row][k];
            a[i][k] = 0;
            if (v!=0) 
                for(j=k+1; j<n; j++)
                    a[i][j] = a[i][j] - v*a[k][j];
			
        }
    row++;
    k++;
    }
	
}
так)
Pein95 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить вид квадратной матрицы в C# Anasta88 C# (си шарп) 1 14.12.2011 06:02
Вид кнопки Pein95 Общие вопросы Delphi 2 02.03.2011 20:56
треугольный вид матрицы nexzis Помощь студентам 23 10.12.2010 17:35
ВИд benjaminfran Софт 2 22.02.2008 08:55