Смекни!
smekni.com

Разработка пакета прикладных программ для вычисления определителя матрицы (стр. 2 из 3)

Свойства определителей:

1. При перестановке двух столбцов определитель меняет знак на противоположный (свойство антисимметрии).

2. Определитель равен нулю, если все элементы какого-нибудь столбца равны нулю или если один из столбцов является линейной комбинацией любых его других столбцов (в частности, определитель, у которого хотя бы два столбца одинаковы, равен нулю).

3. Умножение всех элементов какого-нибудь столбца на скаляр k равнозначно умножению определителя на k (общий множитель элементов строки или столбца можно вынести за знак определителя).

4. Умножение матрицы n-го порядка на скаляр k соответствует умножению ее определителя на kn, т.е.

det(k[A]) = kndet[A].

5. Значение определителя не изменится, если к какому-нибудь столбцу прибавить другой столбец, умноженный на скаляр k.

6. Если два определителя одинаковых порядков различаются между собой только элементами j-го столбца, то их сумма равна определителю, элементы j-го столбца которого равны суммам соответствующих элементов j-х столбцов исходных определителей, а остальные элементы те же, что у исходных (свойство линейности).

Описание метода Крамера

Для системы n линейных уравнений с n неизвестными (над произвольным полем)

с определителем матрицы системы Δ, отличным от нуля, решение записывается в виде

(i-ый столбец матрицы системы заменяется столбцом свободных членов).

В другой форме правило Крамера формулируется так: для любых коэффициентов c1, c2, …, cn справедливо равенство:


В этой форме формула Крамера справедлива без предположения, что Δ отлично от нуля, не нужно даже, чтобы коэффициенты системы были бы элементами целостного кольца (определитель системы может быть даже делителем нуля в кольце коэффициентов). Можно также считать, что либо наборы b1,b2,...,bn и x1,x2,...,xn, либо набор c1,c2,...,cn состоят не из элементов кольца коэффициентов системы, а какого-нибудь модуля над этим кольцом. В этом виде формула Крамера используется, например, при доказательстве формулы для определителя Грама и Леммы Накаямы.

1.2 Выбор инструментальных средств

Языки программирования – это формальные языки, специально созданные для общения человека с компьютером. Каждый язык программирования ровно как и «естественный» язык, имеет алфавит, словарный запас, свои грамматику и синтаксис, а так же семантику.

Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка. В отличии от естественных языков правила грамматики и семантики для языков программирования, как и для всех формальных языков, должны быть ясно, однозначно и чётко сформулированы.

Целью данной курсовой работы является вычисление определителя матрицы произвольного порядка. Для этого рассмотрим некоторые языки программирования и выберем более удобный для нас.

Двоичный язык - в настоящее время программистами не применяется. Применение этого языка требует огромных затрат времени, является невероятно трудоемким процессом.

Шестнадцатеричный язык - упрощение за счет представления четырех двоичных цифр одной шестнадцатеричной. Используется в качестве дополнения к языкам высокого уровня для программирования критичных к времени выполнения фрагментов алгоритмов.

Язык Ассемблера - предназначен для представления в удобочитаемой символической форме программ, написанных на машинном языке. Используется для написания драйверов устройств, критических с точки зрения быстродействия, участков программ, а так же для написания стыковочных узлов (мостов) между модулями программы, написанной на двух разных языках.

Язык Макроассемблера - расширение языка Ассемблера. Позволяет определять и использовать новые, более мощные команды.

Язык Fortran на данный момент также используют в учебных целях. Встретить этот язык в применении почти не реально, так как он не очень удобен и, как следствие, не распространен.

Язык Basic разработан в 1964 г. для использования новичками. Basic широко используется в учебных заведениях для тренировки базовых навыков программирования у обучающихся. Он очень популярен и существует множество его диалектов, несовместимых между собой.

Язык VBA (Visual Basic for Application) используют для написания приложений, использующих графическую среду, в частности для приложений Microsoft Office, так как он является встроенным языком этих приложений.

И наконец Язык Cи, обладающий всеми необходимыми возможностями для решения поставленной задачи. Кроме того он был заложен в программу моего курса обучения и потому хорошо мне известен. Язык Си - это универсальный язык программирования, для которого характерны экономичность выражения, современный набор операторов и типов данных. Язык Си не является ни языком "очень высокого уровня", ни "большим" языком, и не предназначается для некоторой специальной области применения, но отсутствие ограничений и общность языка делают его для многих задач более удобным и эффективным, чем языки, предположительно более мощные.

Язык Си является универсальным языком программирования. Сам язык, однако, не связан с какой-либо одной операционной системой или машиной; и хотя его называют языком системного программирования, так как он удобен для написания операционных систем, он может использоваться для написания любых больших вычислительных программ, программ для обработки текстов и баз данных.

1.3 Выбор аппаратных средств

Минимальные системные требования для более - менее нормальной работы:

Процессор Intel Pentium II/400 MHz

Microsoft Windows 98/2000 (SP2)/XP

128 MB RAM (рекомендуется 256 MB)

3 GB (рекомендуется 5 GB) свободного места на жестком диске (для полной установки операционной системы и среды для разработки программы)

CD-ROM

Монитор SVGA (разрешение экрана 800x600, 256 цветов)

Мышь

1.4 Выводы по первой главе

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

Писать программу я буду на языке Cи, который обладает всеми необходимыми возможностями для решения поставленной задачи. Кроме того он был заложен в программу моего курса обучения и потому хорошо мне известен.

Для более нормальной работы нам понадобятся:

Процессор Intel Pentium II/400 MHz

Microsoft Windows 98/2000 (SP2)/XP

128 MB RAM (рекомендуется 256 MB)

3 GB (рекомендуется 5 GB) свободного места на жестком диске (для полной установки операционной системы и среды для разработки программы)

CD-ROM

Монитор SVGA (разрешение экрана 800x600, 256 цветов)

Мышь

2. Практическая реализация

2.1 Общая структура программного модуля

Выполняемые действия Название функции
Принимает размер матрицы и значения ее элементов, которые вводит пользователь с клавиатуры Блок ввода
Вычисляет решения матрицы A размерности Razm при свободных членах B. В случае несовместности системы завершает работу программы. Kramer(A,B,Razm)
Вычисляет детерминант матрицы A размерности Razm Det(A,Razm)
Выводит на экран результаты решения Блок вывода

2.2 Блок - схемы алгоритмов и их описание

Разработанная в ходе выполнения курсовой работы программа, состоит из тела программы и двух функций. Алгоритм выполнения программы изображён на рисунке 1.


Рисунок 1 – Алгоритм выполнения программы


Рисунок 2 – Алгоритм функции Kramer


Рисунок 3 – Алгоритм нахождения Det

2.3 Контрольный текстовый пример

Далее приведен контрольный текстовый пример результатов работы программы.

2.4 Выводы по второй главе

Во второй главе нам представлена общая структура программного модуля, Также составлены структурные схемы подпрограмм. Помимо этого составлен подробный алгоритм работы программы и подпрограмм. В заключение приведён контрольный текстовый пример программы.

Заключение

В ходе выполнения данного курсового проекта были разработана программа на языке высокого уровня C. А также изучены возможности данного языка.

Систематизированы и закреплены практические навыки использования ЭВМ, программного обеспечения, существующих средств обслуживания системных программистов, а также теоретические знания по основным разделам курса "Объектно-ориентированного программирования".

При выполнении курсового проекта произведено знакомство с реферативными журналами и другими информационными источниками по объектно-ориентированному и системному программированию с целью анализа состояния решаемой задачи.

Получены практические навыки работы в среде программировании С.

Библиографический список

1. Алексеев Е.В. и др. Вычислительная техника и программирование. Практикум по программированию: Практ. пособие / В.Е. Алексеев, А.С. Ваулин, Г.Б. Петрова; Под ред. А.В. Петрова. – М.: Высш. шк., 1991. – 400 с.: ил