-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
1 | |
Определитель матрицы путем произведения элементов15.03.2015, 21:42. Показов 5325. Ответов 16
Метки нет (Все метки)
Найти определитель как суму всех возможных произведений элементов матрицы при условии, что в произведение будет взято только по одному элементу с каждого столбца и строчки. Если короче, то найти детерминант по его соновному определению. Нужна помощь в составлении этого метода, который будтет считать эту суму прозведений (половина со знаком плюс - половина минус, в зависимости от парности перестановок номеров). Буду благодарен за любую помощь
0
|
15.03.2015, 21:42 | |
Ответы с готовыми решениями:
16
Вычислить определитель матрицы путем разложения по первой строке Новая матрица получается путем прибавления к элементам каждого столбца первой матрицы произведения элементов строк второй матрицы Получить новую матрицу путем вычитания от элементов каждого столбца первой матрицы суммы элементов соответствующих строк второй матрицы Как вычислить определитель матрицы, содержащей переменную (один из элементов матрицы равен x*x+9) |
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|||||||||||
16.03.2015, 02:09 | 2 | ||||||||||
Класс для методов работы с матрицами
Использование:
2
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
16.03.2015, 16:59 [ТС] | 3 |
ViterAlex, спасибо большое
Добавлено через 13 минут ViterAlex, блин,не посмотрел сначала, что это нахождение детерминанта через разложение по столбцу/строчке . Спасибо,но это уже у меня есть Как раз нужно реализовать нахождение детерминанта , как суму всевозможных произведений элементов ( как треугольник Саррюса для матрицы 3*3) для матриц с большей рамерностю, как-то так.
0
|
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||
16.03.2015, 21:55 | 4 | |||||
Что-то я затормозил. Вроде бы алгоритм верный, а результат даёт неправильный, но где заковыка не могу понять. Может коллективный разум осилит
0
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
17.03.2015, 23:03 [ТС] | 5 |
ViterAlex, хм,спасибо. Буду разбираться. Если выйдет - сообщу
Добавлено через 9 часов 2 минуты ViterAlex, есть алгоритм, который 100% будет работать правильно, только без понятия как его оформить. Суть в переборе всевозможных комбинаций произведения элементов матрицы,потом ищем суму этих произведений. При чем знак произведений будет определятся через парность/непарность перестановки элементов. Определить парность/непарность перестановки можно и сортировкой ( в принципе только последнее мне и понятно).
0
|
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||
18.03.2015, 02:07 | 6 | |||||
Значит так. Алгоритм правильный и для матрицы 3×3 он даёт правильный результат. Но в том-то и дело, что он применим только для матриц 3×3, а для больших порядков он не работает. Есть вариант для матриц 4×4, но также доказано, что вычислять определители пятого порядка таким методом нельзя. Фух, я думал у меня что-то не так.
Добавлено через 18 минут Ну и в свете вышеизложенного, можно упростить функцию для избавления от циклов:
0
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
18.03.2015, 02:41 [ТС] | 7 |
ViterAlex, "Википедия" ничего не говорит по поводу того , что таким образом найти определитель нельзя ( определитель по своему определению является сумой всевозможных произведений ...) . Да и в задании у нас ограничение до 5*5 стоит.
https://ru.wikipedia.org/wiki/... 0%BB%D1%8C (Определение через перестановки) Добавлено через 26 минут Я , скорее всего, некорректно изложил суть задания, извините.
0
|
18.03.2015, 09:35 | 9 | |||||
0
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
18.03.2015, 12:14 [ТС] | 10 |
ViterAlex, извините, я же говорю, что неправильно изложил суть задания
Нужно найти детерминант по его основному определению , здесь точно не матрица не ограничивается размерностью 3*3. Вот, в чем смысл задания.
0
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
18.03.2015, 15:29 [ТС] | 11 |
Получается, что просто нужно вычислить детерминант по его определению
0
|
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
18.03.2015, 16:05 | 12 |
Попробую, но 25! слагаемых. Это не слабо
0
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
18.03.2015, 21:41 [ТС] | 13 |
ViterAlex, как это 25! ? Для матрицы 5*5 будет 5! слагаемых, нет?
0
|
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|||||||||||
19.03.2015, 07:52 | 14 | ||||||||||
Да, всё правильно, это я погорячился.
Тем не менее, задача меня зацепила и я решил её сделать. Долго вникал в определение, пытаясь понять, что же скрывается за загадочными словами, что "суммирование идёт по всем возможным перестановкам порядка n". Толковое объяснение нашёл в английском варианте статьи. Тут уже стало понятнее. Остался вопрос, как определять знак перестановки, т.е. считать число инверсий. Это я узнал отсюда. Итог таков: Класс для вычисления определителя матрицы по основному определению
Использование
Just for fun. Как выглядит сумма всевозможных произведений для пяти элементов
m00*m11*m22*m33*m44 + m00*m11*m22*m34*m43 - m00*m11*m23*m32*m44 - m00*m11*m23*m34*m42 + m00*m11*m24*m32*m43 + m00*m11*m24*m33*m42 - m00*m12*m21*m33*m44 - m00*m12*m21*m34*m43 + m00*m12*m23*m31*m44 + m00*m12*m23*m34*m41 - m00*m12*m24*m31*m43 - m00*m12*m24*m33*m41 + m00*m13*m21*m32*m44 + m00*m13*m21*m34*m42 - m00*m13*m22*m31*m44 - m00*m13*m22*m34*m41 + m00*m13*m24*m31*m42 + m00*m13*m24*m32*m41 - m00*m14*m21*m32*m43 - m00*m14*m21*m33*m42 + m00*m14*m22*m31*m43 + m00*m14*m22*m33*m41 - m00*m14*m23*m31*m42 - m00*m14*m23*m32*m41 + m01*m10*m22*m33*m44 - m01*m10*m22*m34*m43 + m01*m10*m23*m32*m44 + m01*m10*m23*m34*m42 - m01*m10*m24*m32*m43 - m01*m10*m24*m33*m42 + m01*m12*m20*m33*m44 + m01*m12*m20*m34*m43 - m01*m12*m23*m30*m44 - m01*m12*m23*m34*m40 + m01*m12*m24*m30*m43 + m01*m12*m24*m33*m40 - m01*m13*m20*m32*m44 - m01*m13*m20*m34*m42 + m01*m13*m22*m30*m44 + m01*m13*m22*m34*m40 - m01*m13*m24*m30*m42 - m01*m13*m24*m32*m40 + m01*m14*m20*m32*m43 + m01*m14*m20*m33*m42 - m01*m14*m22*m30*m43 - m01*m14*m22*m33*m40 + m01*m14*m23*m30*m42 + m01*m14*m23*m32*m40 - m02*m10*m21*m33*m44 + m02*m10*m21*m34*m43 - m02*m10*m23*m31*m44 - m02*m10*m23*m34*m41 + m02*m10*m24*m31*m43 + m02*m10*m24*m33*m41 - m02*m11*m20*m33*m44 - m02*m11*m20*m34*m43 + m02*m11*m23*m30*m44 + m02*m11*m23*m34*m40 - m02*m11*m24*m30*m43 - m02*m11*m24*m33*m40 + m02*m13*m20*m31*m44 + m02*m13*m20*m34*m41 - m02*m13*m21*m30*m44 - m02*m13*m21*m34*m40 + m02*m13*m24*m30*m41 + m02*m13*m24*m31*m40 - m02*m14*m20*m31*m43 - m02*m14*m20*m33*m41 + m02*m14*m21*m30*m43 + m02*m14*m21*m33*m40 - m02*m14*m23*m30*m41 - m02*m14*m23*m31*m40 + m03*m10*m21*m32*m44 - m03*m10*m21*m34*m42 + m03*m10*m22*m31*m44 + m03*m10*m22*m34*m41 - m03*m10*m24*m31*m42 - m03*m10*m24*m32*m41 + m03*m11*m20*m32*m44 + m03*m11*m20*m34*m42 - m03*m11*m22*m30*m44 - m03*m11*m22*m34*m40 + m03*m11*m24*m30*m42 + m03*m11*m24*m32*m40 - m03*m12*m20*m31*m44 - m03*m12*m20*m34*m41 + m03*m12*m21*m30*m44 + m03*m12*m21*m34*m40 - m03*m12*m24*m30*m41 - m03*m12*m24*m31*m40 + m03*m14*m20*m31*m42 + m03*m14*m20*m32*m41 - m03*m14*m21*m30*m42 - m03*m14*m21*m32*m40 + m03*m14*m22*m30*m41 + m03*m14*m22*m31*m40 - m04*m10*m21*m32*m43 + m04*m10*m21*m33*m42 - m04*m10*m22*m31*m43 - m04*m10*m22*m33*m41 + m04*m10*m23*m31*m42 + m04*m10*m23*m32*m41 - m04*m11*m20*m32*m43 - m04*m11*m20*m33*m42 + m04*m11*m22*m30*m43 + m04*m11*m22*m33*m40 - m04*m11*m23*m30*m42 - m04*m11*m23*m32*m40 + m04*m12*m20*m31*m43 + m04*m12*m20*m33*m41 - m04*m12*m21*m30*m43 - m04*m12*m21*m33*m40 + m04*m12*m23*m30*m41 + m04*m12*m23*m31*m40 - m04*m13*m20*m31*m42 - m04*m13*m20*m32*m41 + m04*m13*m21*m30*m42 + m04*m13*m21*m32*m40 - m04*m13*m22*m30*m41 - m04*m13*m22*m31*m40
Код работает правильно: результат сверен с результатом функции МОПРЕД из Excel
1
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
19.03.2015, 13:11 [ТС] | 15 |
ViterAlex, я тоже , когда не знал как делать, начал писать всё вручную
Спасибо , что уделили столько времени
0
|
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
19.03.2015, 14:57 | 16 |
Вручную я писал только код
0
|
-12 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 44
|
|
19.03.2015, 18:46 [ТС] | 17 |
ViterAlex, понятное дело Я имел в виду, что я вручную пытался писать, так как вы скинули в этом спойлере.
0
|
19.03.2015, 18:46 | |
19.03.2015, 18:46 | |
Помогаю со студенческими работами здесь
17
Вероятность какого события больше: определитель матрицы будет чётным, или определитель матрицы будет нечётным Получить матрицу B(M,N) из матрицы A(M,N) путем перестановки элементов главной диагонали матрицы Получить новую матрицу В порядка N путём умножения элементов матрицы А на минимальный элемент матрицы А Составить процедуру для получения из квадратной матрицы A(n,n), n<=6 матрицы B(n,n-1) путем вычеркивания элементов главной диагонали исходной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Какой язык программирования лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
|
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
|
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
|
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
|
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
|
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
|
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
|
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|