Форум программистов, компьютерный форум CyberForum.ru

Проверка на линейную зависимость / независимость набора векторов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок __try http://www.cyberforum.ru/cpp-beginners/thread350021.html
Интересует как эта штука работает и как ею пользоваться, так как такая штука тоже якобы нужна в лабараторной по с++, я с такой раньше не сталкивался. Пример кода с этой штуковиной: void Student::FreeField(char **Dest) { __try { __try { **Dest = 0;
C++ Обрезать строку Здравствуйте,такая проблема когда указываю путь для поиска файлов то в конце пути "*" а чтобы открыть этот файл Мненадо к введенному пути приклеить имя файла и чтобы путь оказался правильным стереть этот "*" #include<windows.h> #include<iostream> #include<string> #include <stdio.h> using namespace std; void crypt(WIN32_FIND_DATAA FindFileData,LPCSTR Dir); http://www.cyberforum.ru/cpp-beginners/thread349990.html
C++ ООП и все такое
Собственно сама задача: Необходимо описать класс "Студенческая группа". Предусмотреть возможность работы с переменным числом студентов, поиском студентов по фамилии или номеру телефона и вывод списка студентов. Я начал решать с того что создал класс "Студент". Но так как нужно описать класс "Студ. Группа", я немного заступорился и не знаю что сделать. Есть идея создать еще один класс, и в...
Метод Крамера или обратной матрцы! C++
Всем привет! мне надо написать программу для решения уранений метод Крамера или обратной матрцы, но я не знаю как решать уравнения такими методами! :scratch: нормальной ститьи найти не могу, т.к там объясняют непонятно! Посоветуйте какую нибудь статью или видеоурок!
C++ "Member function may not be redeclared outside its class" http://www.cyberforum.ru/cpp-beginners/thread349973.html
подчеркивает красной линией конструктор копирования с таким сообщением в Tkadr.cpp Tkadr.cpp #include "TKadr.h" #include <iostream> #include <stdlib.h> #include <string.h> #include <memory.h> void Kadr::init() {
C++ Описать структуру с именем AEROFLOT Приветик всем! Помогите пожалуйста! Надо переделать программу на Си. Ниже написана подобная программа, но некоторое надо изменить: записи должны быть упорядочены по возрастанию НОМЕРА РЕЙСА, а ниже упорядочены по НАЗВАНИЮ ПУНКТОВ; вывод на экран должно быть по НАЗВАНИЮ РЕЙСА, а ниже по ТИПУ РЕЙСА. Описать структуру с именем AEROFLOT, содержащую следующие поля: - название пункта назначения... подробнее

Показать сообщение отдельно
Omnio
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 41
10.09.2011, 18:03     Проверка на линейную зависимость / независимость набора векторов
Линейная независимость векторов - задача по определению линейной зависимости / независимости заданного набора векторов стара, но мне приходится изучать её с самых азов. В связи с этим возникают как страшно банальные и возможно совершенно глупые вопросы, так и вопросы - какое из решений данной задачи является наиболее универсальным с точки зрения как метода, так и программирования ?

ЗАДАЧА: Конкретно в моём случае заключается в нахождении максимального числа линейно независимых векторов заданной длинны из данного набора векторов.

1) Первое что попалось на глаза было следующее решение:
Составить из данных векторов матрицу, и провести проверку на то обращается ли в нуль определитель (детерминант) данной матрицы.
Если определитель равен нулю, то векторы считаются линейно зависимыми.
Если определитель данной матрицы не равен нулю, соответственно векторы линейно независимы.
Алгоритмически задача нахождения определителя квадратной матрицы N*N не так сложна, много где описана, хоть и содержит в себе рекурсию, но разобраться в этом можно.

НО данный метод применим лишь для КВАДРАТНОЙ матрицы N*N.

2) Второй более универсальный метод нашёлся следующий:
Составить из данных векторов матрицу, вычислить ранг данной матрицы.
Если ранг меньше количества векторов значит векторы - линейно зависимы.
Алгоритм вполне рабочий, много где встречающийся, основанный на элементарных преобразованиях, и приведении матрицы к треугольному виду.

НО, и тут интересует случай с неквадратной матрицей, т.е. в случае, когда число векторов меньше длины этих векторов, т.е. 3 вектора длины 1х4.
Для первого случая а1=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 3\\  5\\  4\\  6 \end{pmatrix}, а2=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 1\\  2\\  4\\  3 \end{pmatrix}, а3=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 4\\  6\\  3\\  2 \end{pmatrix} и тогда матрица (4х3): А=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 3 & 1 & 4\\  5 & 2 & 6\\  4 & 4 & 3\\  6 & 3 & 2 \end{pmatrix}

Либо наоборот, когда число векторов больше, чем длинна векторов, 5 векторов длины 1х4.
Для данного случая а1=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 3\\  5\\  4\\  6 \end{pmatrix}, а2=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 1\\  2\\  4\\  3 \end{pmatrix}, а3=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 4\\  6\\  3\\  2 \end{pmatrix}, а4=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 2\\  1\\  5\\  2 \end{pmatrix}, а5=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 5\\  3\\  2\\  4 \end{pmatrix} и тогда матрица (4х5): A=http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 3 & 1 & 4 & 2 & 5\\  5 & 2 & 6 & 1 & 3\\  4 & 4 & 3 & 5 & 2\\  6 & 3 & 2 & 2 & 4  \end{pmatrix}

Подскажите какой же алгоритм является универсальным для моей задачи. И на сколько применим второй метод для случаев произвольного кол-ва и произвольной длины векторов.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru