Математический форум Math Help Planet
Обсуждение и решение задач по математике, физике, химии, экономике Теоретический раздел |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
новый онлайн-сервис число, сумма и дата прописью |
|
Часовой пояс: UTC + 3 часа [ Летнее время ] |
![]() ![]() |
Страница 1 из 3 |
[ Сообщений: 26 ] | На страницу 1, 2, 3 След. |
|
Автор | Сообщение | |
---|---|---|
Exzellenz |
|
|
В Excel нет встроенной функции для вычисления ранга матрицы. Может быть у кого-нибудь есть соответствующая готовая программа-функция пользователя? Я пытался самостоятельно написать такую программу на Excel VBA, но она иногда выдает неверные значения; где-то ошибка, не могу ее найти. |
||
Вернуться к началу | ||
![]() |
Pirinchily |
|
|
1) Начиная с EXCEL 2003 есть встроенная ф-я для нахождения определитель(детерминант) квадратную матрицу,
в англоязечных версиях это ф-я [math]MDETERM(array)[/math] , в русскоязычнах МОПРЕД(матрица) - так что можно воспользоваться их в Вашей VBA for EXCEL программу для нахождения ранга матриц; 2) Есть такая книга "Инженерные расчеты в EXCEL", Рональд У. Ларсен, Издательский дом "Вильямс", 2004г. Возможно есть и более позднее издания этой книжку, но я с этим располагаю. Здесь есть изложения методы вычисления определителя при помощи EXCEL-я, решения систем линейных у-ния, обращение матрицы как и умножения и сложения матриц - может как то она Вам поможет. |
||
Вернуться к началу | ||
![]() |
MihailM |
|
|
Exzellenz, ранг если в матрице до сотни строк/столбцов хорошо считается методом Гаусса. Так что ищите что-то типа "метод Гаусса в VBA". Вам нужно оттуда только 1 часть программы - прямой ход метода Гаусса
|
||
Вернуться к началу | ||
![]() |
MihailM |
|
|
Решил подойти еще более современно, попросил чатгпт
И вот результат Function MatrixRank(matrix As Range) As Integer Вроде работает |
||
Вернуться к началу | ||
![]() |
||
За это сообщение пользователю MihailM "Спасибо" сказали: Exzellenz |
||
![]() |
Exzellenz |
|
|
Pirinchily и MihailM, спасибо за быстрый ответ.
Встроенную функцию МDETERM я знаю, но это не ранг. Если квадтатная матрица [math]n \times n[/math]вырожденная, детерминант равен нулю, это значит, что ранг меньше n, но какой именно - остается неизвестным. Метод Гаусса мне тоже хорошо известен, именно его я и использовал при написании программы-функции MRang(X) as integer. Но, как я уже говорил, где-то в программе ошибка, т.к. иногда она дает правилняй ответ правильный, а иногда - неправильный. Ошибку искал-искал, но так и не нашел. Короче, нужна помощь. За ссылку на книгу спасибо, попробую поискать ее в интернете. |
||
Вернуться к началу | ||
![]() |
Exzellenz |
|
|
MihailM писал(а): Решил подойти еще более современно, попросил чатгпт Спасибо, но не работает.И вот результат... Вроде работает Я скопировал эту программу в Excel-модуль и в качестве теста выдумал такую таблицу (матрицу): [math]\begin{pmatrix} 0 & 1 & 2 & 3 \\ 0 & 0 & 1 & 2 \\ 0 & 3 & 0 & 1 \\ 1 & 4 & 3 & 0 \end{pmatrix}[/math] Определитель матрицы равен [math]-4 \ne 0,[/math] это значит, что матрица невырожденная, и ее ранг должен быть равен 4. Моя программа выдает ответ ранг = 3, а приведенная вами программа выдает ноль, чего вообще не бывает. Вот текст моей программы: Function MRang(Matrix) As Integer |
||
Вернуться к началу | ||
![]() |
MihailM |
|
|
Exzellenz писал(а): Моя программа выдает ответ ранг = 3, а приведенная вами программа выдает ноль, чего вообще не бывает. Действительно, врет чатгпт) Но если поставить последнюю строку на первое место, то вычислит ранг правильно! В общем доверия ИИ пока нет, но то что он такую прогу сам написал говорит о многом, думаю такие стандартные задачи он скоро начнет решать без ошибок |
||
Вернуться к началу | ||
![]() |
Exzellenz |
|
|
Такое впечатление, что приведенная вами программа тупо подсчитывает число не равных нулю членов, стоящих на главной диагонали в исходной матрице.
А "ставить последнюю строку на первое место" она должна сама (в случае необходимости). |
||
Вернуться к началу | ||
![]() |
Pirinchily |
|
|
Exzellenz писал(а): Встроенную функцию МDETERM я знаю, но это не ранг. Если квадтатная матрица n×n вырожденная, детерминант равен нулю, это значит, что ранг меньше n, но какой именно - остается неизвестным. Конечно это не ранг ![]() при помощи ф-ю МDETERM пока не найдите того, кто [math]\ne 0[/math] , так можно определить rang матрицы. |
||
Вернуться к началу | ||
![]() |
Exzellenz |
|
|
По-моему метод Гаусса проще.
|
||
Вернуться к началу | ||
![]() |
![]() ![]() |
На страницу 1, 2, 3 След. | [ Сообщений: 26 ] |
Похожие темы | Автор | Ответы | Просмотры | Последнее сообщение |
---|---|---|---|---|
Ранг матрицы
в форуме Линейная и Абстрактная алгебра |
2 |
257 |
29 июн 2021, 18:49 |
|
Ранг матрицы
в форуме Линейная и Абстрактная алгебра |
2 |
282 |
17 мар 2017, 16:52 |
|
Ранг матрицы
в форуме Линейная и Абстрактная алгебра |
2 |
424 |
22 окт 2014, 21:47 |
|
Ранг матрицы
в форуме Линейная и Абстрактная алгебра |
1 |
278 |
27 сен 2017, 01:06 |
|
Ранг матрицы
в форуме Линейная и Абстрактная алгебра |
13 |
444 |
19 июн 2019, 13:22 |
|
Ранг матрицы
в форуме Линейная и Абстрактная алгебра |
8 |
514 |
04 мар 2014, 18:25 |
|
Ранг блочной матрицы
в форуме Линейная и Абстрактная алгебра |
1 |
237 |
28 июл 2019, 15:41 |
|
Найти ранг матрицы
в форуме Линейная и Абстрактная алгебра |
4 |
328 |
11 дек 2017, 18:45 |
|
Как найти ранг матрицы размерности 2x3?
в форуме Линейная и Абстрактная алгебра |
5 |
345 |
30 июл 2020, 17:43 |
|
Определить словарный ранг матрицы | 3 |
816 |
29 май 2014, 20:00 |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |