6 / 6 / 1
Регистрация: 23.12.2012
Сообщений: 131
1

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

27.03.2014, 16:05. Показов 1137. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2014, 16:05
Ответы с готовыми решениями:

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

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

Задача: привести матрицу к треугольному виду
Блин, я никак не разберусь, может тут кто знает? Задание: Дана квадратная матрица размера m*n....

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

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

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

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

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

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

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru