Решение систем линейных уравнений методом Крамера

Автор работы: Пользователь скрыл имя, 25 Декабря 2014 в 14:19, курсовая работа

Описание работы

Стремительно развитие компьютера привело к появлению средств автоматизации программирования: языков программирования и систем программирования. Количество принципиально различных языков программирования колоссально. В данной курсовой работе остановимся на рассмотрении языка высокого уровня С++.

Содержание работы

Введение
2
1 Теоретическая часть
4
1.1 Технология разработки программных средств
4
1.2 Алгоритмизация и программирование
7
1.2.1 История развития алгоритмических языков
7
1.2.2 Основные функции технологии программирования
7
1.2.3 История создания С++
12
1.3 Основы теории и синтаксиса языка программирования С++
15
1.3.1 Синтаксис языка С++
15
1.3.2 Правила записи программы на языке С++
15
1.3.3 Правила формального описания синтаксиса языка программирования
17
2 Практическая часть
18
2.1 Решение систем линейных уравнений методом Крамера
18
2.2 Пример решения системы линейных уравнений методом Крамера
20
2.2.1 Техническое задание на учебный программный продукт
20
2.2.2 Алгоритм решения задачи
21
2.2.3 Список используемых идентификаторов
21
2.2.4 Инструкция по использованию программы
21
2.2.5 Минимальная конфигурация
21
2.2.6 Назначение ПО
22
2.2.7 Документация на учебный программный продукт
22
Заключение
24
Литература

Файлы: 1 файл

Курсовая работа (Захватаев Сергей АиУ-12)(1) (Восстановлен).docx

— 527.94 Кб (Скачать файл)

- матрица – столбец неизвестных  переменных. После нахождения неизвестных  переменных x1, x2, …, xn, матрица

становится решением системы уравнений и равенство A ⋅ X = B обращается в тождество .

Будем считать, что матрица А – невырожденная, то есть, ее определитель отличен от нуля. В этом случае система линейных алгебраических уравнений имеет единственное решение, которое может быть найдено методом Крамера.

Метод Крамера основывается на двух свойствах определителя матрицы:

  1. Определитель квадратной матрицы  A = ||aij||,  i = 1,2, …,n,  j = 1,2, …, n   равен сумме произведений элементов какой-либо строки (столбца) на их алгебраические дополнения:

p = 1,2, …,n,  q = 1,2, …, n

  1. Сумма произведений элементов какой-либо строки (столбца) квадратной матрицы на алгебраические дополнения соответствующих элементов другой строки (столбца) равна нулю:

Итак, приступим к нахождению неизвестной переменной x1. Для этого умножим обе части первого уравнения системы на А1 1 , обе части второго уравнения – на А2 1 , и так далее, обе части n-ого уравнения – на Аn 1 (то есть, уравнения системы умножаем на соответствующие алгебраические дополнения первого столбца матрицы А):

Сложим все левые части уравнения системы, сгруппировав слагаемые при неизвестных переменных x1, x2, …, xn, и приравняем эту сумму к сумме всех правых частей уравнений:

 

 

 

Если обратиться к озвученным ранее свойствам определителя, то имеем

и предыдущее равенство примет вид

Откуда

Аналогично находим x2. Для этого умножаем обе части уравнений системы на алгебраические дополнения второго столбца матрицы А:

 

Складываем все уравнения системы, группируем слагаемые при неизвестных переменных x1, x2, …, xn и применяем свойства определителя:

Откуда

Аналогично находятся оставшиеся неизвестные переменные.

Если обозначить

 

то получаем формулы для нахождения неизвестных переменных по методу Крамера    

 

 

2.2 Пример решения систем линейных уравнений методом Крамера

 

Составить программу для нахождения неизвестных системы ЛУ:

 

 

2.2.1 техническое  задание на учебный программный  продукт

 

1. Введение

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

2. Основание для разработки

Программа разрабатывается на основании распоряжения зав. Кафедрой «ЭиАТС» для ее использования в учебном процессе, а именно, для облегчения процесса расчета контурных токов в цепях с постоянным напряжением.

3. Назначение

Предназначена для решения систем линейных уравнений по методу Крамера в различных технических дисциплинах, в частности, для преподаваемого курса «Высшая математика» по теме «Решение систем линейных уравнений».

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

4. Требование к программе  или программному изделию

4.1. Требование к функциональным  характеристикам

4.1.1. Программа должна  представлять совокупность методических  и программных средств решения  следующей задачи:

  • Расчет определителей матрицы;
  • Нахождение неизвестных переменных в системах линейных уравнений по методу Крамера.

4.1.2. Для этих задач  должны быть реализованы:

– Алгоритмы, обеспечивающие получение точного решения;

– Программный продукт представлен на языке СИ++.

4.2. Требование к надежности

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

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

4.2.3. Обеспечить целостность  информации, хранящейся в базе  данных.

4.3. Требование к составу  и параметрам технических средств.

4.3.1. Система должна работать  на IBM совместимых персональных компьютерах.

4.4. Требование к информационной  и программной совместимости

Система должна работать под управлением семейства Windows XP и выше.

5. Требование к программной  документации

5.1. Разрабатываемые система  должна включать справочную информацию  о работе системы и подсказки пользователю.

5.2. В состав сопровождающей  документации должны входить:

Пояснительная записка.

Руководство пользователя.

 

2.2.2 алгоритм решения задачи

 

1) Ввод известных переменных линейных уравнений A1, A2, A3, B1, B2, B3, C1, C2, C3, S1, S2, S3;

2) Расчет главного определителя  матрицы и 3 определителей матриц  с замененными столбцами, расчет неизвестных коэффициентов x, y, z;

3) Вывод полученных данных;

4) Запрос на повтор  операции;

5) Конец.

 

2.2.3 Список используемых идентификаторов

 

1. A1, A2, A3, B1, B2, B3, C1, C2, C3 – известные коэффициенты линейных уравнений;

2. S1, S2, S3 – значения уравнений;

3. GOpred, Opred1, Opred2, Opred3 – определители искомых матриц;

4. x, y, z – искомые величины, результат расчета.

 

2.2.4 инструкция по использованию программы

 

    1. Набор программы;
    2. Компиляция программы;
      1. Введем известные коэффициенты;
      2. Печать значений GOpred, Opred1, Opred2, Opred3, а также x, y, z – результат расчета.

 

2.2.5 Минимальная конфигурация

 

1.Тип процессора Intel Pentium I (либо аналогичный по производительности).

2.Объем оперативного запоминающего  устройства не менее 128 кВ.

Требование к информационной и программной совместимости: Система должна работать под управлением семейства Windows 98 и выше.

 

2.2.6 назначение ПО

 

Разрабатываемое ПО предназначено для решения задач по нахождению контурных токов в цепи, для нахождения определителей матрицы 3х3, для нахождения значений неизвестных переменных в системе линейных уравнений по методу Крамера.

 

2.2.7 Документация на учебный программный продукт

 

Архитектурная документация:

В данном случае программный продукт будет реализован в качестве консольного приложения (командный интерфейс), в таком случае созданный программный продукт сможет удовлетворять минимальным требованиям конфигурации, прописанным в теоретическом задании и работать на платформе MS DOS и Wndows, начиная с версии 3.11.

В ТЗ была представлена рекомендация к языку программирования для написания кода – С++. Указаний по поводу выбора системы программирования в ТЗ не представлено, поэтому средство для написания, трансляции и отладки программы также может быть выбрано программистом. В данном случае выбран программный продукт VisualC++ производства фирмы Microsoft.

Результат тестирования программы:

Тестирование программы осуществлялось на компьютере с установленной операционной системой Microsoft 7 service pack 1.

Технические характеристики компьютера:

Процессор: Pentium(R) Dual-Core CPU T4300 @ 2.10 GHz;

Объем оперативного запоминающего устройства: 3 GB;

Далее представлен пример решенного задания на рис.2.2.1:

Рисунок 2.2.1 Расчет контурных токов

 

Проверка ответа, вычисленного программой:

1. Составим матрицу известных  числовых коэффициентов, а также  матрицу – столбец свободных  членов:

*=(8, 3, −1; 3, 12, 5; −1, 5, 9), B=(23, 0, −25).

2. Рассчитаем определитель  заданной матрицы, используя формулу:

|A| = ( (8*12*9) + (3*5*(-1)) + (3*5*(-1)) ) – ( ((-1)*(-1)*12) + (5*5*8) + (3*3*9)) = = 541;

3. Заменим коэффициенты  первого столбца в матрице  А на значения из матрицы B:

*1=(23, 3, −1; 0, 12, 5;−25, 5, 9).

4. Вычислим определитель  полученной матрицы:

A1 = ( (23*12*9) + (0*5*(-1)) + (3*5*(-25)) ) – ( ((-1)*(-25)*12) + (5*5*23) + +(0*3*9)) = 1234;

5. Аналогично, заменяя 2 и 3 столбец  в матрице А, вычислим определители A2=339 и A3=-1554.

6. Используя рассчитанные  определители, найдем значения неизвестных  переменных x, y, z, используя конечные формулы для нахождения неизвестных по методу Крамера:

x=*1/*=1234/541=2.28

y=*2/*=339541=0.626

z=*3/*=−1554/541=−2.872

7. Конец.

 

 

 

 

 

 

 

 

 

 

Заключение

 

В предоставленной курсовой работе было решено поставленное техническое задание: решение системы линейных уравнений методом Крамера.

Также, в процессе выполнения этих заданий были выполнены следующие задачи:

Первой из них являлось ознакомление с предметом «Технология программирования», то есть изучение его во время лекционных, лабораторных и практических занятий. Из курса этих занятий мною были выведены следующие выводы: технология программирование является одним из основополагающих предметов, которые необходимо изучить во время получения степени Бакалавра Автоматизации и Управления, так как во время дальнейшей рабочей деятельности, каждый бакалавр столкнется с автоматизированными системами производства, принцип работы которых подчиняется нормам и стандартам технологии программирования, кроме того большинство из них написаны на языке программирования С++, изучение которого являлось второй задачей, поставленной мной для выполнения данной курсовой работы.

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

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

Далее следовало непосредственно выполнение задания курсовой работы, которое заключалось в первую очередь - в выборе программною обеспечения для написания программы, выполняющей решение задачи. В качестве программного обеспечения был выбран Visual C++ производства компании Microsoft, так как я посчитал его наиболее практичным. После этого был разработан алгоритм для  задачи, что являлось немаловажным условием, так как любая программа действует по определенному алгоритму, который обеспечивает ее надежность и правильное функционирование. Следующим шагом было непосредственно написание программы в Visual C++ производства фирмы Microsoft, то есть приспособление существующего алгоритма к языку программирования С++, что являлось решающей стадией и в свою очередь проверкой правильности выполненных действий. Последней стадией было тестирование программы, которое осуществлялось путей ввода данных в программу и проверка проверенных значений путем сверки их со значениями, полученными вручную.

Пятой задачей являлось оформление курсовой работы в соответствии с стандартами Карагандинского Государственного Индустриального Университета.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

литература

 

  1. Т.А. Павловская С++ Программирование на языке высокого уровня, Санкт-Петербург, ИД «Питер», 2009
  2. Дэвис Стефан Р. С++ / 4-е издание: Пер. с англ.:- М.: Издательский дом «Вильямс»,2003
  3. В. Камаев «Технология программирования»
  4. А. П. Рябушко «Сборник индивидуальных заданий по высшей математике: Учебное пособие», Высшая школа, 1  часть, 2006
  5. Н. Культин «С++ в задачах и примерах» издательство БХВ – Петербург, 2008
  6. Используемые интернет-источники: http://www.cleverstudents.ru/system_of_ equations/Cramers_method.html, http://matematikam.ru/solve-equations/sistema-kramer.php

Информация о работе Решение систем линейных уравнений методом Крамера