Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.10.2020
Сообщений: 17

Как посчитать det(A) = 0, для матрицы, состоящей из матриц?

01.11.2023, 12:56. Показов 693. Ответов 8

Студворк — интернет-сервис помощи студентам
Есть квадратная матрица произвольного размера (задается в зависимости от условия), каждый элемент которой это матрица 4х4. Необходимо решить уравнение вида det(A_matrix) = 0.

Проблема в том, что A_matrix получается типа cell и не получается вычислить определитель.

Изначально создается пустая матрица:

[A_matrix{N:M}] = deal([]);

С помощью цикла рассчитываются значения ячеек матрицы B_matrix и формируется матрица A_matrix, определитель которой и нужно приравнять к нулю.

B_matrix = [B11 B12 B13 B14; B21 B22 B23 B24; B31 B32 B33 B34; B41 B42 B43 B44];

A_matrix{n-1,m} = B_matrix;
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.11.2023, 12:56
Ответы с готовыми решениями:

Создание матрицы, состоящей из нескольких одинаковых матриц
Уважаемые знатоки! Прошу Вашего совета по реализации части кода. Задача следующая: Есть n матриц размером 6*6. Их необходимо...

Det матрицы неверно представляется
MATLAB, отвечает на команду det() так: ans = 6.6613e-16 А должен быть 0, т.к.: 1x5x9+4x8x3+2x6x7-7x5x3-4x2x9-6x8x1=0 Что не так?

Найти определитель , det(A+B). Матрицы заданы условием
Помогите пожалуйста, очень срочно надо

8
524 / 512 / 129
Регистрация: 31.10.2016
Сообщений: 4,156
01.11.2023, 13:28
Вам нужно использовать символьные вычисления, нужно создать символьные переменные:
Matlab M
1
syms B1, B2, ... B44;
потом уже из них составлять матрицу и вычислять определитель. В результате получится многомерный полином.
0
0 / 0 / 0
Регистрация: 07.10.2020
Сообщений: 17
01.11.2023, 14:27  [ТС]
Цитата Сообщение от Alexis333 Посмотреть сообщение
Вам нужно использовать символьные вычисления, нужно создать символьные переменные:
Matlab M
1
syms B1, B2, ... B44;
потом уже из них составлять матрицу и вычислять определитель. В результате получится многомерный полином.
Все эти значения определены, там просто слишком большой код, чтобы его сюда вставлять, да он и не нужен для вопроса - там просто по формулам считаются значения.

Но определитель я посчитать не могу, потому что A_matrix в итоге имеет класс cell.
0
524 / 512 / 129
Регистрация: 31.10.2016
Сообщений: 4,156
01.11.2023, 14:31
Лучший ответ Сообщение было отмечено arinaorena как решение

Решение

можете составить матрицу так
Matlab M
1
2
3
4
5
6
7
8
M=[];
for j=1:n;
  s=[];
  for k=1:n;
    s=[s, B_matrix];
  end
  M=[M; s];
end
1
0 / 0 / 0
Регистрация: 07.10.2020
Сообщений: 17
01.11.2023, 14:47  [ТС]
Цитата Сообщение от Alexis333 Посмотреть сообщение
можете составить матрицу так
Matlab M
1
2
3
4
5
6
7
8
M=[];
for j=1:n;
  s=[];
  for k=1:n;
    s=[s, B_matrix];
  end
  M=[M; s];
end
В этом случае при M=N=4 получилась одна матрица 16х16, а должна быть A_matrix 4х4, где каждый элемент это матрица B_matrix.
0
524 / 512 / 129
Регистрация: 31.10.2016
Сообщений: 4,156
01.11.2023, 15:42
Всё верно, если A имеет 4х4 элемента, каждый из которых - матрица 4х4, значит А - это матрица 16х16, и определитель считайте от неё. Определитель можно вычислить только от квадратной матрицы, для массивов cell он не вычисляется.

Добавлено через 46 минут
Можете ещё предварительно вычислить 4х4 матрицу М:
Matlab M
1
2
M=[A{1,1}*A{3,3}+A{1,2}*A{3,4}-A{3,1}*A{1,3}-A{3,2}*A{2,3}, A{1,1}*A{4,3}+A{1,2}*A{4,4}-A{3,1}*A{1,4}-A{3,2}*A{2,4};
A{2,1}*A{3,3}+A{2,2}*A{3,4}-A{4,1}*A{1,3}-A{4,2}*A{2,3}, A{2,1}*A{4,3}+A{2,2}*A{4,4}-A{4,1}*A{1,4}-A{4,2}*A{2,4}];
Определитель А будет равен определителю М:
Matlab M
1
DA=det(M);
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
01.11.2023, 16:08
arinaorena, B11, B12 и т.д. - это что такое? Значения? Массивы?
Если значения, и получаются матрицы 4х4, то сделайте, как сказал Alexis333, т.е. объявляйте В1, В2 и т.д. символьными переменными. Потом уже в конце подставьте вместо них численные значения.
Но матрица А должна быть квадратной, а у вас она получается вектор-строкой.

Добавлено через 16 минут
Правда, у меня появился вопрос: что за уравнение det(A)=0 вы хотите решить, если все элементы матрицы А известны?
0
524 / 512 / 129
Регистрация: 31.10.2016
Сообщений: 4,156
01.11.2023, 16:58
Цитата Сообщение от Centurio Посмотреть сообщение
что за уравнение det(A)=0 вы хотите решить
B1, B2 ... похоже неизвестные, или функции от одной неизвестной
0
Эксперт по математике/физике
11049 / 7352 / 3986
Регистрация: 14.01.2014
Сообщений: 16,768
01.11.2023, 18:06
Цитата Сообщение от arinaorena Посмотреть сообщение
Необходимо решить уравнение вида det(A_matrix) = 0
А неизвестными тогда что являются? Если Вы ниже пишете, что
Цитата Сообщение от arinaorena Посмотреть сообщение
С помощью цикла рассчитываются значения ячеек матрицы B_matrix и формируется матрица A_matrix
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.11.2023, 18:06
Помогаю со студенческими работами здесь

Посчитать детерминант матриц и найдите обратные матрицы
Создайте две матрицы размером (5,5). Одна матрица содержит 5 в шахматном порядке, другая имеет треугольную форму содержащую 5 на основной...

Найти детерминант квадратной матрицы без numpy.linalg.det
также нельзя использовать никакие функции связаные из numpy. я попытался сделать это таким способом.. но это долго и некрасиво.. идей...

Для матрицы А[4][4], состоящей из не нулевых элементов, сформировать массив В[4] из количеств перемен знака в
Для матрицы А, состоящей из не нулевых элементов, сформировать массив В из количеств перемен знака в каждой строке. Определить максимальный...

Для матрицы, состоящей из не нулевых элементов, сформировать массив из количеств перемен знака
Для матрицы А, состоящей из не нулевых элементов, сформировать массив В из количеств перемен знака в каждой строке. Определить максимальный...

Вычисление детерминанта матрицы,перемножение матриц,разложение матриц,обращение матриц
Добрый день ! Хочу предоставить ссылку на очень полезную информация по работе с матрицами на C#. ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru