Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
#1

Привести вектор к треугольному виду - C++

27.03.2014, 16:05. Просмотров 595. Ответов 15
Метки нет (Все метки)

Я решаю систему лин. уравнений одной малоизвестной модификацией метода Гаусса.

В чем суть:
=> есть вектор с таким содержимым:
1 2 3 4 6
5 6 7 8 3
5 1 7 5 4
7 9 0 4 3
(строк и столбцов может быть неограниченное кол-во, но столбцов всегда на 1 больше)

Преобразование:
1) В исходной матрице первая строка остается без изменений
2) 1-ый элемент 2-ой строки (назовем его С1) заменяется на отрицание своего деления на 1-ый элемент 1-ой строки
3) 2-ой элемент 2-ой строки равен сумме самого себя и 2-ого элемента 1-ой строки, умноженного на С1
4) 3-ий элемент 2-ой строки равен сумме самого себя и 3-его элемента 1-ой строки, умноженного на С1
5) 4-ый элемент 2-ой строки равен сумме самого себя и 4-ого элемента 1-ой строки, умноженного на С1
6) ... и т.д. нужно сделать со всеми элементами до конца строки

Для третьей строки:
7) 1-ый элемент 3-ей строки (назовем его С2) заменяется на отрицание своего деления на 1-ый элемент 1-ой строки
8) 2-ой элемент 3-ей строки равен сумме самого себя и 2-ого элемента 1-ой строки, умноженного на С2
9) 3-ий элемент 3-ей строки равен сумме самого себя и 3-его элемента 1-ой строки, умноженного на С2
10) 4-ый элемент 3-ей строки равен сумме самого себя и 4-ого элемента 1-ой строки, умноженного на С2
11) ... и т.д. нужно сделать со всеми элементами до конца строки

Далее не переходим сразу к 4-ой, а делается так:
12) 2-ой элемент 3-ей строки (назовем его С3) заменяется на отрицание своего деления на 2-ой элемент 2-ой строки
13) 3-ий элемент 3-ей строки равен сумме самого себя и 3-его элемента 2-ой строки, умноженного на С3
14) 4-ый элемент 3-ей строки равен сумме самого себя и 4-ого элемента 2-ой строки, умноженного на С3
15) ... и т.д. нужно сделать со всеми элементами до конца строки

В случае с 4-ой и последующими строками отличия лишь в том, что с каждой новой строкой элементов С нужно будет вычислять все больше (их кол-во в строках будет увеличиваться).

Большая проблема с циклами, заключается в том, что никак не придумаю алгоритм для определения новой строки и момента с которого нужно вычислять значения С (которые в свою очередь с каждой новой строкой все увеличиваются).

Помощь не помешает!

Добавлено через 1 час 29 минут
Хелп!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 16:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Привести вектор к треугольному виду (C++):

Привести матрицу к треугольному виду - C++
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к...

Как привести матрицу к треугольному виду - C++
Нужно привести матрицу к треугольному виду, можно написать прогу , а то какие нашел не работают ни черта

Задача: привести матрицу к треугольному виду - C++
Блин, я никак не разберусь, может тут кто знает? Задание: Дана квадратная матрица размера m*n. С помощью допустимых преобразований...

Двумерные массивы (СЛАУ). Привести систему к треугольному виду - C++
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы.С помощью допустимых преобразований привести систему к...

Как привести матрицу к треугольному виду по методу гауса? - C++
Может у кого есть прога? Нужна срочно!

С помощью допустимых изменений привести систему к треугольному виду... - C++
Надо выполнить вот это задание ": Коефіцієнти системи лінійних рівнянь задані у вигляді прямокутної матриці. З допомогою допустимих...

15
IrineK
Заблокирован
27.03.2014, 16:19 #2
Вектор - это одномерный массив.

У вас 2D объект. Называется - массив или матрица.
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
27.03.2014, 21:28  [ТС] #3
IrineK,
э...как бы имеется ввиду, что в задаче используется вектор типа контейнер. То, что числа в нем представлены в виде матрицы и так ясно, и отношения к сути дела не имеет.
Хотелось бы некой конкретики по поставленной задаче.

Добавлено через 1 час 22 минуты
Вопрос актуален.
0
IrineK
Заблокирован
27.03.2014, 22:31 #4
Цитата Сообщение от Super GT Посмотреть сообщение
вектор типа контейнер
Еще интересней.
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
28.03.2014, 15:57  [ТС] #5
Пфф...а по-вашему вектор это не контейнер?
Знаете, если помочь не можете, не отвлекайте от темы хоть, спасибо.
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
28.03.2014, 17:07 #6
ты бы лучше ссылку дал на модификацию эту, а то по описанию неочень ясен алгоритм.

Добавлено через 56 минут
http://ru.wikipedia.org/wiki/%CC%E5%F2%EE%E4_%C3%E0%F3%F1%F1%E0
если это то о чем ты пишешь - то там же и алгоритм есть.
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
28.03.2014, 17:35  [ТС] #7
fmtuner,
Смотри, модификация заключается в чем:
- к треугольному виду матрицу приводим не посредством перестановки строк, как сделал юзер -=ЮРА=- вот тут Двумерные массивы (СЛАУ). Привести систему к треугольному виду , а посредством сложения двух строк матрицы, одну из которых домножаем на некоторое число
- по ходу приведения матрицы к треугольному виду, коэффициенты (числа, на которые умножаем строки) записываем в нижнюю часть этой же матрицы
- дальнейшие вычисления неизвестных производить не нужно, с этим и сам разберусь

Описания алгоритма в нете нет, но есть книга, откуда этот алгоритм взят. Если нужно - могу скинуть ссылку (2Мб, djvu)
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
28.03.2014, 17:39 #8
кидай
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
28.03.2014, 17:42  [ТС] #9
Вот книга rghost. ru/53516469 (без пробела перед ru)
Называется цепной алгоритм, с.73
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
28.03.2014, 18:44 #10
ну и? проблемы твоей толком тогда не понимаю
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
28.03.2014, 19:25  [ТС] #11
Математический алгоритм ясен, практических знаний по реализации на С++ не хватает.
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
28.03.2014, 19:29 #12
Т.е. тебе надо алгоритм написать на с++ или просто алгоритм сам закодируешь?
или тебе надо с самого начала всё целиком закодировать?
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
28.03.2014, 19:37  [ТС] #13
Э...я ж говорю - у меня есть вектор с записанными в него числами.(это уже готовая часть кода, ничего сначала писать не надо).
Мне нужно составить код, который бы приводил матрицу к треугольному виду, причем если обычно в таких случаях нижняя часть матрицы заполняется нулями - сейчас ее нужно заполнить коэффициентами. ВСЕ.
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
28.03.2014, 19:39 #14
матрица - то что в топике?
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
28.03.2014, 19:51  [ТС] #15
Нет. Матрица может быть абсолютного любого размера (единственное, столбцов всегда на 1 больше строк), и вещественные числа в ней могут быть абсолютно любые.
Матрица записана в контейнер (вектор).
0
28.03.2014, 19:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2014, 19:51
Привет! Вот еще темы с ответами:

Привести матрицу к треугольному виду Гауссом (не могу найти работающий код) - C++
Нужен код для приведения матрицы к треугольному виду (матрица статическая, целочисленная). Пробовал гуглить, в том числе и тут....

Как привести матрицу к верхнему треугольному виду? С++ (Имеется код нахождения нижней треуг. матрицы) - C++
Нахождение нижней треуг. матрицы: for (i=0, k=nn-1; i<nn&&k>=0; i++, k--) for (j=0; j<i;...

приведение матрицы к треугольному виду - C++
вводится размерность матрицы,нужно привести ее к треугольному виду. Помогите,пожалуйста. прочитала все темы из киберфорума,но только там...

Свести матрицу к треугольному виду - C++
for (int i = 1; i < N; ++i) for (int k = i; k < N; ++k) for (int j = N-1; j >= 0; --j) if (mas !=0 && mas !=0 && mas != 0)...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.