Исходный код программы сложения и умножения матриц на Delphi.
Элементы TStringGrid.
Простейший код для первокурсников… Открыт для скачивания и доработки…
Рис.1 Результат перемножения матриц
Данная программа является простейшим калькулятором для решения примеров с использованием матричной арифметики.
Сложение матриц
Обязательным условием для сложения (вычитания) матриц является полное совпадение их размеров… И результирующая матрица будет иметь то же самое количество строк и столбцов, какое имели матрицы-слагаемые… Каждый элемент новой матрицы (с индексами ij) будет равен сумме элементов слагаемых матриц (с теми же индексами ij).
Вычитание матриц
Как и всегда, вычитание отличается от сложения только знаком… Чтобы поменять все знаки в матрице, достаточно умножить ее на «минус-единичную-матирцу» (т.е. такую матрицу, в которой главная диагональ полностью состоит из -1, а остальные элементы равны 0). Экспериментируйте…
Умножение матриц
Обязательным условием для умножения матриц является совпадение количества столбцов первой матрицы и количество строк второй матрицы… А результирующая матрица будет иметь то же самое количество строк, что и первая матрица, и то же самое количество столбцов, что и вторая матрица…
Так если имеем матрицу А с размерами i,k и матрицу B с размерами k,j то результатом будет матрица С с размерами i,j.
Каждый элемент новой матрицы (с индексами ij) будет равен сумме произведений элементов
i-строки первой матрицы на элементы j-столбца второй матрицы.
Или можно сказать, что каждый элемент новой матрицы будет равен скалярному произведению i-вектора-строки первой матрицы на j-вектор-столбец второй матрицы…
А количество элементов в этих векторах должно обязательно совпадать…
Деление матриц
Деление заменяется операцией умножения на обратную матрицу… Алгоритм получения обратной матрицы (которая и обозначается как матрица в -1 степени) не сложен, но чтобы его описать пришлось бы описывать алгоритм вычисления определителя матрицы и так до бесконечности… одно понятие строится на базе других понятий… Если Вам это понадобится , то Вы без труда найдете эту информацию на просторах интернета…
Исходный код на Delphi
Поскольку исходный код открыт, то приводить листинг не буду… Краткие пояснения:
- Объекты класса TStringGrid (строковая таблица) не имеют метода очистки всех своих ячеек, поэтому очистка проводится через методы строк или столбцов… См. процедуры-обработчики событий кнопок очистки, которые вызывают одну и ту же процедуру SG_clear, посылая в нее в виде параметра соответствующую StringGrid.
- Процедура заполнения нулями procedure Full_0(sg:TStringGrid); необходима чтобы исключить ошибки конвертации пустых ячеек в числа… Т.е. перед вычислениями производится проверка содержимого всех ячеек и если ячейка, по недосмотру пользователя, осталось пустой, то в нее помещается 0. Логично?
Скачать ехе-файл для тестирования…
Скачать архив проекта для доработки (изменения под свои требования) бесплатно !
А здесь новый вариант платный с большими возможностями !
Другие примеры на тему «Матрицы и операции вычислений с ними»
Другие примеры на языке «Delphi»
Здесь перчислены другие варианты, тех заданий, которые я уже делал.
Скоро и до них дойдет очередь. Появятся среди примеров. Но если кому-то они нужны срочно, (или что-то похожее), то такие задания я делаю быстро и не дорого. Заказывайте...
-
Нахождение произведения скаляра и двух матриц
-
Определение номера столбца матрицы, содержащего min элемент
-
Перестановка строк в матрице
-
Нахождение количества элементов матрицы больших 2.5
-
Перестановка min элемента каждой строки матрицы с элементом главной диагонали
-
Поиск mах элемента главной диагонали матрицы
-
Упорядочение массива в порядке возрастания значений элементов
-
Определение номера столбца матрицы, содержащего mах элемент
-
Перестановка крайних элементов массива
-
Поиск mах элемента в матрице
-
Формирование массива из min элементов строк матрицы
-
Поиск mах и min элемента массива
-
Упорядочение строки матрицы по убыванию значений элементов
-
Определение номера строки матрицы, содержащего mах (min) элемент
-
Вычисление значения следа матрицы
-
Транспонирование матрицы
Удачи!
Поделиться в соц сетях: