Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 46
1

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

20.02.2020, 12:50. Просмотров 1000. Ответов 1
Метки нет (Все метки)

Составить процедуру вычисления обратной матрицы методом клеточных матриц и с её помощью решить системы линейных уравнений.

Вопросы:
1) Надо ли в этом случае писать процедуру перевода обычной матрицы в обратную?
2) Если выполнен первый пункт (1), то уже затем писать процедуру расчёта обратной матрицы методом клеточных матриц?
3) Или же обращение матриц это уже по сути перевод обычной матрицы в обратную, поэтому писать пункт (1) не нужно?
4) Подскажите, сколько лучше писать процедур в общем исходя из специфики задания, а также советы по решению, данного.(вывод будет консольный)

Процедура ввода матрицы следующая, чтобы не было сплошного текста.

Pascal
1
2
3
4
5
6
7
8
9
10
11
Procedure Vvodmatr(n,m:Integer; Var A:matr);
                            Var i,j:Integer;
                                 Begin
                                    For i:=1 to n do
                                        Begin
                                          Writeln('Введите ', m, ' значения ',i, ' й-строки');
                                       For j:= 1 to m do
                                        Read(a[i,j]);
                                       Writeln;
                                    End;
                                   End;

Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2020, 12:50
Ответы с готовыми решениями:

Составить процедуру вычисления обратной матрицы методом клеточных матриц
Процедуры очень прога нужна Составить процедуру вычисления обратной матрицы методом клеточных...

Вычисление обратной матрицы методом Гаусса
Нужно создать программу в Delphi на тему "Вычисление обратной матрицы методом Гаусса". Может есть у...

Вычисление определителя и нахождение обратной матрицы методом исключения
Нужна только блок-схема, а то в схемах я пень пнем. Вот код. Function input_error() As Integer...

Вычисление степени матрицы, вычисления произведения двух матриц, вычисление суммы двух матриц
Здравствуйте, помогите решить, пожалуйста: Заданы две квадратные матрицы А и В. Вычислить матрицу...

1
Модератор
7425 / 3796 / 2704
Регистрация: 17.08.2012
Сообщений: 12,155
20.02.2020, 18:19 2
Лучший ответ Сообщение было отмечено Фуфлыжник как решение

Решение

По Вашим пунктам:
  1. Процедура вычисления обратной матрицы методом клеточных матриц и есть процедура перевода обычной матрицы в обратную. Вернее, это один из способов нахождения обратной матрицы.
  2. Смотри пункт 1.
  3. Смотри пункт 1.
  4. Часть кода выделяется в подпрограмму обычно лишь в трёх случаях:
    • Если код повторяется более одного раза для различных входных данных;
    • Если код несёт отдельную смысловую нагрузку, и может быть использован в других проектах;
    • Если используется рекурсия.
Посмотрим, что Вам нужно сделать...
  1. Ввести расширенную матрицу системы. Скорее всего, использовать (Вашу) процедуру не имеет смысла.
  2. Найти обратную матрицу. Полагаю, получится рекурсивная процедура, из которой будут вызываться ещё две (не рекурсивных) процедуры:
    • Процедура перемножения матриц.
    • Процедура сложения матриц.
  3. Нахождение корней уравнения: вызов процедуры умножения обратной матрицы на матрицу свободных коэффициентов. Отдельная подпрограмма не требуется.
  4. Вывод результата. Отдельная подпрограмма не требуется.
Многократно у Вас будут вызываться два действия: перемножение матриц и суммирование матриц.
Вычисление обратной матрицы методом клеточных матриц, скорее всего, получится в виде рекурсивной процедуры.
Остальные части кода будут повторяться по одному разу, не будут нести отдельной смысловой нагрузки и не потребуют рекурсии. Так что, оформлять ли что-либо из оставшегося в виде подпрограмм - дело Ваше. Собственно, из остального у Вас осталось только ввод расширенной матрицы системы, нахождение корней и вывод результата.

Получается, что у Вас будет минимум три подпрограммы, одна из которых - рекурсивная, остальные (ещё три) - по Вашему вкусу.

Моё мнение:
В виде подпрограмм сделать нахождение обратной матрицы, перемножение матриц и сложение матриц.
Вводить расширенную матрицу системы лучше из файла, хотя бы для начала, чтобы при отладке пальцы по локоть об клавиатуру не стереть. Кстати, тогда будет логичным сделать вывод матрицы на экран.
В окончательном релизе можно будет добавить ввод имени файла (может быть, с выбором каталога) и вывод всего на свете не только на экран, но и в файл. Либо, наоборот, оставить только стандартный ввод-вывод, поскольку программа учебная.

Turbo Pascal плохо подходит для решения этой задачи, поскольку в нём нет динамических массивов, а они здесь сами собой просятся. Полагаю, лучше использовать Free Pascal.

Добавлено через 10 минут
Хотя... Можно обойтись и статическими массивами, передавая подпрограмме смещения и размеры подмассива в основном массиве.

Добавлено через 1 час 3 минуты
Ах, да... Ещё понадобится процедура транспонирования матрицы.

На всякий случай, ссылка по теме: Обращение матриц.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2020, 18:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Решить СЛАУ методом Крамера, методом Гаусса, с помощью обратной матрицы
Решите систему линейных уравнений а) методом Крамера; б) методом Гаусса; в) с помощью обратной...

Вычисление обратной матрицы
Добрый день. Реализую алгоритм вычисления обратной матрицы методом Гаусса-Жордана. Алгоритм брал в...

Вычисление обратной матрицы
Нужно вычислить обратную матрицу. Пользуюсь gfortran на убунту. Матрица имеет размерность от 20 000...

Вычисление обратной матрицы
Написать функцию или процедуру для вычисления обратной матрицы.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.