- •Объектно-ориентированной технологии программирования
- •5. Список используемой литературы…………………..……..…………....…..….. 36
- •6. Приложение. А………………….………..……….……………………..….....… 37 Введение
- •1.Теоретические основы ооп
- •2.Техническое задание.
- •2.1.Анализ предметной области.
- •2.1.1 Матрицы
- •2.1.2 Определители.
- •2.2.Проектирование программного продукта
- •2.2.1. Функциональные требования
- •2.2.2. Требования к интерфейсу
- •3.Рабочий проект
- •3.2. Укрупненный алгоритм
- •3.2.1.Классы
- •3.2.2.Модули
- •3.2.3.Схема алгоритма
- •3.2.4.Обработка исключений
- •3.2.Руководство пользователя
- •4. Заключение
- •5.Список использованной литературы.
- •6.Приложение а. Исходный текст программы.
2.Техническое задание.
2.1.Анализ предметной области.
Предлагается разработать калькулятор для матричных вычислений, следовательно предметной областью будет являться теория матриц. Теория матриц нашла огромное применение в решении систем линейных уравнений и не только, поэтому целесообразно было бы создать такой калькулятор.
2.1.1 Матрицы
Матрицей называется прямоугольная таблица, заполненная некоторыми математическими объектами, например, числами, векторами, функциями, производными, интегралами, операторами и т.д. Будем рассматривать матрицы с элементами из поля действительных чисел, хотя все рассуждения сохраняются и для матриц с другими элементами.
Чаще всего элементы матрицы обозначаются одной буквой с двумя индексами, указывающими "адрес" элемента - первый индекс дает номер строки, содержащий элемент, второй - номер столбца. Если матрица имеет m строк и n столбцов, то говорят, что матрица имеет размеры . Принято обозначать матрицы заглавными латинскими буквами, часто - полужирными, а ее элементы - такими же буквами, но строчными. Таким образом, матрица (размеров ) записывается в виде
.
Для краткости допускается обозначение матрицы размеров в виде, где индекс i пробегает все значения от 1 до m, а j - от 1 до n. При обозначении матриц используются скобки - круглые и квадратные.Матрицы, имеющие одно и то же число n строк и столбцов, называютквадратными; это число n называют порядком квадратной матрицы. Важную роль играют так называемые диагональные матрицы. Под этим подразумеваются квадратные матрицы, имеющие все элементы равные нулю, кроме элементов главной диагонали, т.е. элементов в позициях (1,1), (2,2), ..., (n,n). Диагональная матрица D с диагональными элементами d1, d2, ..., dn обозначается diag(d1, d2, ..., dn). Диагональная матрица diag(1, 1, ..., 1) называется единичной и обозначается E (или En) или же I (или In). Матрица, состоящая из одних нулей, называется нулевой.Матрица, состоящая из одной строки, часто называется вектором (строкой, вектор-строкой, строчной матрицей), а из одного столбца - вектор-столбцом (столбцом, столбцовой матрицей).Две матрицы считаются равными, если они одного размера и у них совпадают элементы, стоящие на одинаковых местах.Матрицу A={ai j} можно транспонировать, т.е. заменить строки столбцами, в результате чего получится транспонированная матрица AT={aj i}.Две матрицы A={ai j} и B={bi j} одного и того же размера можноскладывать, их суммой будет матрица того же размера C={ci j}, , т.е. чтобы получить сумму двух матрицы достаточно сложить соответствующие элементы этих матриц, находящихся на одних и тех же позициях. Поскольку мы рассматриваем здесь матрицы с элементами из поля P действительных чисел, то очевиднаассоциативность операции сложения матриц, вытекающая из ассоциативности сложения элементов поля P. Аналогично имеет место коммутативность сложения. Таким образом, справедливы действия:
(A+B)+C=A+(B+C); [Ассоциативность]
A+B=B+A; [Коммутативность]
Матрица 0, состоящая из нулей, играет роль нуля: A+0=A при любой A.Определим произведение элемента c из поля P на матрицу A={ai j}: cA={cai j}, т.е. чтобы умножить матрицу на число необходимо каждый элемент матрицы умножить на это число.Для любой матрицы A существует противоположная матрица -A такая, что A+(-A)=0.
В качестве матрицы -A, очевидно, следует взять матрицу (-1)A, элементы которой отличаются от элементов A знаком.
.
.
.
.
Все перечисленные свойства матриц непосредственно следуют из определений и свойств действий в поле чисел.Рассмотрим матрицу A={ai j} размером и матрицу B={bi j} размером . Число столбцов первой матрицы (стоящей слева в произведении) равно числу строк второй матрицы (стоящей справа в произведении). Для матриц, обладающих таким свойством, можно ввести действиеумножения матрицы на матрицу. В результате получается матрица C={ci j} размером , где. Правило умножения легко запомнить в словесной форме: "чтобы получить элемент произведения ci j двух матриц нужно элементы i-ой строки первой матрицы умножить на соответствующие элементы j-го столбца второй матрицы и все произведения сложить". Это правило называют "правилом строка на столбец".
Пример:
Пусть A={ai j} размером и B={bi j} размером , а также введем векторы,и. Рассмотрим линейные подстановки с этими матрицами:
и
.
Эти подстановки, используя определение умножения матриц, можно записать в матричном виде: Y=AX, X=BT.Покажем, что если эти две подстановки сделать одну за другой, т.е. выразить переменные y1, ..., ym через t1, ..., tk, то матрица коэффициентов окажется равной AB.
Действительно, пусть
.
Тогда коэффициент ci j есть коэффициент при tj в yi. Выпишем все необходимое для вычисления этого коэффициента:
.
При подстановке x1, x2, ..., xk в yi, получим
.
Таким образом, , так что матрица коэффициентов в выражениях y1, ..., ym через t1, ..., tk действительно равна AB. Итак, последовательному произведению ("суперпозиции") двух линейных подстановок соответствует произведение их матриц. В матричной форме суперпозицию этих подстановок можно записать в виде Y=A(BT). Вместе с тем матрица суперпозиции равна AB, и этот факт записывается так: Y=(AB)T. Таким образом, верно следующее соотношение ассоциативности:
A(BT)=(AB)T, где T - столбец.
Рассмотрим теперь свойства действия умножения матриц:
(cA)B=A(cB)=cAB;
(A1+A2)B=A1B+A2B;
A(B1+B2)=AB1+AB2.
Эти свойства непосредственно вытекают из того, что элементы произведения выражаются как через элементы A, так и через элементы B в виде линейных однородных многочленов. Это можно проверить, используя правило умножения и сложения матриц, группируя необходимые слагаемые).
(AB)C=A(BC) [ассоциативность умножения].
Это свойство трактуется таким образом, что если одна из частей равенства имеет смысл, то имеет смысл и другая, и они равны. Это равенство можно доказать, воспользовавшись следующим простым замечанием. Пусть P и Q - две матрицы такие, что PQ имеет смысл. Пусть Q1, Q2, ..., Qk - столбцы матрицы Q. Тогда столбцами матрицы PQ являются PQ1, PQ2, ..., PQk, что непосредственно следует из определения. Это обстоятельство можно записать в виде P(Q1, Q2, ..., Qk) = (PQ1, PQ2, ..., PQk).
Обозначим через C1, C2, ..., Cl столбцы матрицы C. Тогда (AB)C = ((AB)C1, (AB)C2, ..., (AB)Cl). Далее, BC = (BC1, BC2, ..., BCl) и A(BC) = (A(BC1), A(BC2), ..., A(BCl)). Но как было установлено выше, (AB)C1 = A(BC1), (AB)C2 = A(BC2), ..., ибо C1, C2, ... - столбцы. Таким образом, (AB)C = A(BC).
Особую роль при умножении матриц играют единичные матрицы En (если нужно буквой n указать порядок) или просто E. Из правила умножения матриц непосредственно следует, что AE=A и EA=A, если эти произведения определены.
(AB)T=BTAT. Об этом свойстве произведения матриц говорят так: "при транспонировании произведения матриц порядок сомножителей меняется".
Докажем это.
Пусть ,.
Положим ,, так что,.
Пусть, далее, ,.
Тогда ,.
Итак, при всех i = 1, 2, ..., m и j = 1, 2, ..., n, а это и означает, что G=FT, т.е. , что и требовалось доказать.Таким образом, матрицы можно складывать, умножать их на число, а также умножать матрицы друг на друга. Эти действия обладают свойствами:
(A+B)+C=A+(B+C);
A+B=B+A;
Существует 0: A + 0 = 0 + A = A;
Для A существует -A: A + (-A)=0;
.
.
.
.
Если для некоторых объектов (в нашем случае, это матрицы) выполняются эти восемь свойств, то говорят, что эти объекты образуют векторное пространство, так что матрицы фиксированных размеров образуют векторное пространство.
(AB)C=A(BC).
(cA)B=A(cB)=cAB.
(A1+A2)B=A1B+A2B.
A(B1+B2)=AB1+AB2.
Существуют единичные матрицы (единицы), а именно, если A размером , то EmA = AEn = A.
(AT)T = A.
(A + B)T = AT + BT.
(cA)T = cAT.
(AB)T = BTAT.
Для квадратных матриц фиксированного порядка n действия сложения и умножения определены всегда, и их результатами являются квадратные матрицы того же порядка. Об этом обстоятельстве говорят таким образом: квадратные матрицы фиксированного порядка образуют кольцо. Кольцо, наделенное структурой векторного пространства, т.е. система объектов, обладающих свойствами 1-12, называется алгеброй над основным полем. Таким образом, квадратные матрицы с элементами из поля K составляют алгебру над этим полем.