С Новым годом! Форум программистов, компьютерный форум, киберфорум
Wolfram Mathematica
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 2
Регистрация: 04.12.2016
Сообщений: 165
1

Выделение линейно независимых строк матрицы

25.09.2018, 16:09. Показов 1803. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно выделить из матрицы линейно независимые строки, для дальнейшего нахождения ее псевдообратной матрицы. Как это сделать?
Думал, использовать функцию RowReduce, даже уже программу написал (правда она не работает), но она меняет порядок строк.

Кто-нибудь знает - как это сделать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
A = {{2, 1, 1, 3}, {1, 0, 1, -1}, {1, 2, 0, 4}}
Ared = RowReduce[A] 
 
row = Length[A]
col = Length[A[[1]]]
 
fl = 0;
Irows = {};
For[i = 1, i <= row, i++, fl = 0;
  For[j = 1, j <= col, j++, 
  If[Abs[Ared[[i]][[j]]] > 10^-12, fl = 1];
  If[((fl == 1) & (j == col)), Append[Irows, i]]]]
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2018, 16:09
Ответы с готовыми решениями:

Найти число линейно независимых строк в матрице
А как сделать это? матрица n на n (квадратная) 1) найти число линейно независимых строк в этой...

Доказать что если ранг матрицы равен r, то минор, стоящий на пересечении любых r линейно независимых столбцов
Доказать что если ранг матрицы равен r, то минор, стоящий на пересечении любых r линейно...

Свойства линейно независимых решений
Добрый день. Готовлюсь к курсовой на тему свойства линейно независимых решений дифференциального...

Выбор максимального набора линейно независимых многочленов
Выберите из следующего набора многочленов набор из максимального количества линейно независимых...

1
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,163
Записей в блоге: 24
25.09.2018, 23:50 2
Лучший ответ Сообщение было отмечено crazymadman18 как решение

Решение

Сначала заметки насчёт кода. Они могут быть полезными в будущем.
C++
1
2
3
4
5
6
7
8
9
10
11
12
(* Было *)
row = Length[A];
col = Length[A[[1]]];
 
(* Лучше *)
{row, col} = Dimensions[A, 2];
 
(* Было *)
((fl == 1) & (j == col))
 
(* Должно быть *)
(fl == 1) && (j == col)
Оригинальное решение я не понял.
Вот моё предложение:
C++
1
2
3
4
5
6
7
8
Module[{rIndices = {}, rowCount = Length[A]},
 Do[
  With[{rIndices1 = Append[rIndices, r], n = Length[rIndices]},
   With[{submatrix = Take[A, r][[rIndices1]]},
    If[MatrixRank[submatrix] == n + 1, rIndices = rIndices1];
    ]], {r, rowCount}];
 rIndices
 ]
Для справки: With и Module делают лексическое замыкание (связывают переменные, чтобы не загаживать глобальную область видимости),
With делает синоним, а Module изменяемую переменную.
rIndices содержит список индексов строк базиса.

Добавлено через 3 минуты
По-хорошему, можно было ещё в заголовок (первый аргумент) Module внести переменную r.
Впрочем, Do использует механизм динамического связывания Block. Аналогичный механизм используется в Table, например. В принципе, можно оставить как есть, врядли это создаст конфликт имён.
1
25.09.2018, 23:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2018, 23:50
Помогаю со студенческими работами здесь

Посчитать количество линейно независимых систем из 4 векторов
Посчитать количество линейно независимых систем из 4 векторов. Векторы размера 4 на 1, каждый...

Найти число линейно независимых векторов в системе
Найти число линейно независимых векторов в системе (2,5,-3,4) (-3,-1,6,7) (-5,7,12,29)(0,13,3,26)

При каком условии система линейно-независимых уравнений является базисом?
Нужна помощь с линейной алгеброй, буду благодарен. 2) При каком условии система...

Найти все линейно зависимые пары строк матрицы
Дана матрица A . Найти все линейно зависимые пары строк


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru