47516 (608285), страница 2
Текст из файла (страница 2)
)
)
;ПРОИЗВЕДЕНИЕ МАТРИЦЫ НА ЧИСЛО L
(DEFUN MULT_NUMBER (MATR ROW COL L)
(DECLARE (SPECIAL RES_MATRIX))
;ОБНУЛЯЕМ МАТРИЦУ РЕЗУЛЬТАТ
(SETQ RES_MATRIX (MAKE-ARRAY (LIST ROW COL) :ELEMENT-TYPE 'INTEGER :INITIAL-ELEMENT 0))
(DO
((I 0))
((>= I ROW))
(DO
((J 0))
((>= J COL))
(SETF (AREF RES_MATRIX I J) (* L (AREF MATR I J)))
(SETQ J (+ J 1))
)
(SETQ I (+ I 1))
)
RES_MATRIX
)
;ПРОИЗВЕДЕНИЕ МАТРИЦ
(DEFUN MULT_MATRIX (MATR1 MATR2 R1 R2 C1 C2)
(DECLARE (SPECIAL TEMP))
(DECLARE (SPECIAL RES_MATRIX))
(SETQ TEMP 0)
(IF (/= C1 R2) '"It is not possible to calculate products of matrices"
(PROGN
;ОБНУЛЯЕМ МАТРИЦУ РЕЗУЛЬТАТ
(SETQ RES_MATRIX (MAKE-ARRAY (LIST R1 C2) :ELEMENT-TYPE 'INTEGER :INITIAL-ELEMENT 0))
(DO
((I 0))
((>= I R1))
(DO
((J 0))
((>= J C2))
(SETQ TEMP 0)
(DO
((P 0))
((>= P C1))
(SETQ TEMP (+ TEMP (* (AREF MATR1 I P) (AREF MATR2 P J))))
(SETQ P (+ P 1))
)
(SETF (AREF RES_MATRIX I J) TEMP)
(SETQ J (+ J 1))
)
(SETQ I (+ I 1))
)
RES_MATRIX
)
)
)
;ТРАНСПОНИРОВАНИЕ МАТРИЦЫ
(DEFUN FLIP (MATR ROW COL)
(DECLARE (SPECIAL RES_MATRIX))
;ЕСЛИ КОЛИЧЕСТВО СТРОК И СТОЛБЦОВ НЕ РАВНО МАТРИЦУ НЕЛЬЗЯ ТРАНСПОНИРОВАТЬ
(IF (/= ROW COL) '"It is not possible to flip matrice"
(PROGN
;ОБНУЛЯЕМ МАТРИЦУ РЕЗУЛЬТАТ
(SETQ RES_MATRIX (MAKE-ARRAY (LIST COL ROW) :ELEMENT-TYPE 'INTEGER :INITIAL-ELEMENT 0))
(DO
((I 0))
((>= I ROW))
(DO
((J 0))
((>= J COL))
(SETF (AREF RES_MATRIX I J) (AREF MATR J I))
(SETQ J (+ J 1))
)
(SETQ I (+ I 1))
)
RES_MATRIX
)
)
)
;ПРИМЕНЕНИЕ "УМНОЖЕНИЯ МАТРИЦЫ НА ЧИСЛО" ДЛЯ СПИСКА
(DEFUN MULT1 (NUM)
(PRINT (MULT_NUMBER MATRIX1 ROW1 COL1 NUM) OUTPUT_STREAM)
)
;ПРИМЕНЕНИЕ "УМНОЖЕНИЯ МАТРИЦЫ НА ЧИСЛО" ДЛЯ СПИСКА
(DEFUN MULT2 (NUM)
(PRINT (MULT_NUMBER MATRIX2 ROW2 COL2 NUM) OUTPUT_STREAM)
)
;ЗАПИСЫВАЕМ РЕЗУЛЬТАТ
(SETQ OUTPUT_STREAM (OPEN " D:\RESULT.TXT" :DIRECTION :OUTPUT))
;МАТРИЦА 1
(PRINT (LIST 'MATRIX_1 MATRIX1) OUTPUT_STREAM)
;МАТРИЦА 2
(PRINT (LIST 'MATRIX_2 MATRIX2) OUTPUT_STREAM)
(PRINT '---------------------------- OUTPUT_STREAM)
;СЛОЖЕНИЕ МАТРИЦ
(PRINT (LIST 'SUM_MATRIX (SUM_MATRIX MATRIX1 MATRIX2 ROW1 ROW2 COL1 COL2)) OUTPUT_STREAM)
;РАЗНОСТЬ МАТРИЦ
(PRINT (LIST 'DIFFERENCE_MATRIX (SUBTR_MATRIX MATRIX1 MATRIX2 ROW1 ROW2 COL1 COL2)) OUTPUT_STREAM)
;УМНОЖЕНИЕ МАТРИЦ
(PRINT (LIST 'MULTIPLICATION_MATRIX (MULT_MATRIX MATRIX1 MATRIX2 ROW1 ROW2 COL1 COL2)) OUTPUT_STREAM)
(PRINT '---------------------------- OUTPUT_STREAM)
;ТРАНСПОНИРОВАНИЕ МАТРИЦЫ1
(PRINT (LIST 'FLIP_MATRIX1 (FLIP MATRIX1 ROW1 COL1)) OUTPUT_STREAM)
;ТРАНСПОНИРОВАНИЕ МАТРИЦЫ2
(PRINT (LIST 'FLIP_MATRIX2 (FLIP MATRIX2 ROW2 COL2)) OUTPUT_STREAM)
(PRINT '---------------------------- OUTPUT_STREAM)
;УМНОЖЕНИЕ МАТРИЦЫ1 НА ЧИСЛО
(PRINT 'MULTIPLICATION_MATRIX_ON_NUMBER OUTPUT_STREAM)
(PRINT (LIST 'NUMBERS LIST_NUM1) OUTPUT_STREAM)
(PRINT 'MATRIX1 OUTPUT_STREAM)
(MAPCAR 'MULT1 LIST_NUM1)
(PRINT '---------------------------- OUTPUT_STREAM)
;УМНОЖЕНИЕ МАТРИЦЫ2 НА ЧИСЛО
(PRINT (LIST 'NUMBERS LIST_NUM2) OUTPUT_STREAM)
(PRINT 'MATRIX2 OUTPUT_STREAM)
(MAPCAR 'MULT2 LIST_NUM2)
(TERPRI OUTPUT_STREAM)
(CLOSE OUTPUT_STREAM)
5 Пример выполнения программы
Пример 1.
Рисунок 8 – Входные данные
Рисунок 9 – Выходные данные
Пример 2.
Рисунок 10 – Входные данные
Рисунок 11 – Выходные данные
Заключение
Понятие матрицы возникло в связи с исследованием систем линейных уравнений. Однако в последующем это понятие оказалось настолько плодотворным, что стало основой нового раздела математики – матричной алгебры. Матричная алгебра получила широкое распространение при исследовании многих процессов, в том числе и экономических. Основные операции, которые производятся над матрицами: сложение, вычитание, умножение, транспонирование, а также умножение матрицы на число – являются основными операциями алгебры матриц – теории, играющей весьма важную роль в различных разделах математики и естествознания.
Итогом работы можно считать созданную функциональную модель для реализации операций над матрицами. Данная модель применима к матрицам любой размерности. Созданная функциональная модель и ее программная реализация могут служить органической частью решения более сложных задач.
Список использованных источников и литературы
-
Гантмахер, Ф.Р. Теория матриц (издание третье). [Электронный ресурс] / Ф.Р.Гантмахер. – М.: Наука, 2002, С. 218.
-
Дадаян, А.А. Алгебра и геометрия. [Текст] / А.А Дадаян, В.А.Дударенко. – М.: Минск, 1999. С. 342.
-
Калиткин, Н.Н. Численные методы. [Электронный ресурс] / Н.Н.Калиткин. – М.: Питер, 2001. С. 504.
-
Камалян, Р.З. Высшая математика. [Текст] / Р.З.Камалян. – М.: ИМСИТ, 2004. С.310.
-
Степанов, П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А.Степанов, А.В.Бржезовский. – М.: ГУАП, 2003. С. 79.
8













