МІНІСТЕРСТВО ОСВІТИІ НАУКИ УКРАЇНИ
ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ
Кафедра інформатики
КУРСОВА РОБОТА
Тема:"Рішення системи лінійних рівнянь методом Крамера та за допомогою розширеної матриці"
з дисципліни"Програмування"
ПОЯСНЮВАЛЬНА ЗАПИСКА
Харків
2006
РЕФЕРАТ
Пояснительная записка к курсовой работе: 33 c., 1 таб., 2 рис., 5 разделов, 1 приложение, 7 источников.
Объект исследования – система линейных уравнений.
Цель работы – разработка программы, с помощью которой методом Крамера и с помощью расширенной матрицы решить систему линейных уравнений.
Метод исследования – изучение литературы, написание и отладка программ на компьютере.
Данную программу можно использовать для нахождения неизвестных системы линейных уравнений.
Разработана одна программа, которая демонстрирует нахождение неизвестных системы линейных уравнений.
Программу написано на языке С++ в среде VisualC++. Эта программа предназначена для разработки компьютерного учебного пособия по дисциплине “Программирование”. МАТРИЦА, АЛГОРИТМ, ФУНКЦИИ, ПАРАМЕТРЫ, ТИПЫ, ОПЕРАТОРЫ, ЗАГОЛОВОЧНЫЕ ФАЙЛЫ, КРАМЕР, ПЕРЕМЕННАЯ, ДЕМОНСТРАЦИОННАЯ ПРОГРАММА.
ЗМІСТ
Вступ
1 Постановка задачіта сфера її використання
2 Теоретична частина
2.1 Метод Крамера
3 Особливості роботи в середовищі VisualC++
4 Програмна реалізація
4.1 Опис алгоритму программи
4.2 Опис використаних програмних засобів
4.2.1 Структура програми
4.2.2 Заголовочні файли
4.2.3 Типы даних
4.2.4 Змінні
4.2.5 Ідентифікатори
4.2.6 Оператори
4.2.7 Оператори присвоювання
4.2.8 Арифметичні оператори
4.2.9 Умовні оператори
4.2.10 Оператори циклу
4.2.11 Операторивведення-виведення
4.2.12 Масивы йпокажчики
4.2.13 Функції
4.3 Опис розроблених функцій
5 Інструкція користувача
Висновки
Перелік посилань
Додаток А Текст програми
ВВЕДЕНИЕ
В настоящее время персональный компьютер всё более и более становится неотъемлемым и необходимым предметом каждого человека. Многие из современных персональных компьютеров могут выполнить десятки миллионов операций сложения в секунду. Человеку, работающему с настольным калькулятором, потребовались бы десятилетия для того, чтобы завершить тот же самый объём вычислений, который мощный персональный компьютер выполнит за одну секунду. Сегодняшние самые быстрые суперкомпьютеры могут выполнять сотни миллиардов операций сложения в секунду – это примерно столько же, сколько сотни тысяч людей могут выполнить за год.
Стоимость аппаратных средств в последние годы существенно снизилась и достигла уровня, когда персональные компьютеры превратились в предмет массового потребления. Достижениями в отрасли информационных технологий сегодня вряд ли кого-то удивишь. Однако информационные технологии сегодня играют слишком важную роль в нашей жизни, а программирование – двигатель развития информационных технологий.
Язык С++ развился из С, который в свою очередь был создан на основе двух предшествующих языков – BCPLи B. Язык BCPLбыл создан в 1967 году Мартином Ричардом как язык для написания компиляторов и программного обеспечения операционных систем. Кен Томпсон предусмотрел много возможностей в своем языке В – дубликате BCPLи использовал В для создания ранних версий операционной системы UNIX.
Язык С был развит из В Деннисом Ритчи в BellLaboratories. С использует многие важные концепции BCPLи В, а также добавляет типы данных и другие свойства. Первоначально С приобрел широкую известность как язык разработки операционной системы UNIX. Сегодня фактически все новые операционные системы написаны на С или С++. В течение двух последних десятилетий С стал доступным для большинства компьютеров. С независим от аппаратных средств. При тщательной разработке на С можно написать мобильные программы, переносимые на большинство компьютеров.
С++ - расширение С – был разработан Бьерном Строустропом в начале 80-х годов в BellLaboratories. С++ обеспечивает возможность объектно-ориентированного программирования.
С++ - это гибридный язык, он предоставляет возможность программировать и в стиле С, и в объектно-ориентированном стиле, и в обоих стилях сразу. Его синтаксис, стиль и основные принципы стали стандартом при разработке новых языков. Благодаря своей универсальности он все чаще используется при описании алгоритмов и технологий программирования. Особенность языка С заключается в том, что он позволяет непосредственно манипулировать битами, байтами, машинными словами и указателями. Это делает его очень удобным для системного программирования, в котором эти операции широко распространены.
Язык С был создан для программистов, учитывая их интересы, и многократно проверялся на практике, прежде чем был окончательно реализован. Именно поэтому языки С и С++ стали наиболее популярными среди программистов высокого уровня [4].
В данной курсовой работе я представил программу, написанную на языке С++, с помощью которой мы можем решить систему линейных уравнений.
1 ПОСТАНОВКА ЗАДАЧИ И СФЕРА ЕЁ ИСПОЛЬЗОВАНИЯ
Целью данной задачи является решение системы линейных уравнений, т.е. нахождение её неизвестных х1, х2, х3 методом Крамера и с помощью расширенной матрицы.
Начальными данными являются коэффициенты при неизвестных х1, х2, х3 и свободные члены. Свободные члены и коэффициенты при неизвестных являются главными данными, которые программа записывает в свою память.
Решение систем линейных уравнений является одной из важных вычислительных задач. Большинство задач вычислительной практики сводятся к решению систем линейных уравнений. Это задачи из области электротехники, радиоэлектроники, механики, статистики. Серьезные практические задачи часто приводят к таким системам, которые содержат сотни и даже тысячи линейных уравнений. Без помощи компьютера, эти системы решить невозможно.
Данная задача используется в математической сфере. Целесообразность решения задачи автоматизированным способом позволяет сократить время, затраченное на её решение по сравнению с ручным способом, снижается вероятность допущения ошибок, повышается точность полученных результатов
2 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
2.1 Метод Крамера
Для того, чтобы понять суть метода Крамера, необходимо знать такие понятия, как определитель и матрица.
Так как в нашем случае используется определитель 3-го порядка, то введём определение определителя 3-го порядка.
Определителем 3-го порядка называется число, обозначаемое
a11 a12 a13
a21 a22 a23
a31 a32 a33
иравноеa11a22a33+a13a22a32+a12a23a31-a13a22a31-a12a21a33-a11a23a32.
Определитель обозначается Δ.
Матрицейназываетсятаблица, содержащаяm строк и n столбцов вида
a11 a12 ..... a1n
a21 a22 ..... a11
. . . . . .
am1 am2 ....amn
где aij – элемент матрицы, находящийся в i-той строке и j-ом столбце, где i изменяется от 1 до m, j – от 1 до n,m и n – порядки матрицы. Отсюда вытекает определение системы линейных уравнений.
Система вида a11x1+a12x2+.....+a1nxn=b1
a21x1+a22x2+.....+a2nxn=b2
. . . . . . . . . . .
am1x1+am2x2+.....+amnxn=bm
где aij(i изменяется от 1 до m; j – от 1 до n) – коэффициенты при неизвестных x1, x2,…., xn, bi(i изменяется от 1 до m) – свободные члены, называется системой линейных уравнений.
Теперь непосредственно перейдём к методу Крамера.
Рассмотрим систему вида
a11x1+a12x2+.....+a1nxn=b1
a21x1+a22x2+.....+a2nxn=b2
. . . . . . . . . . .
am1x1+am2x2+.....+amnxn=bm
Назовём данную систему “система 1”.
Умножим 1-е уравнение системы 1 на А11. Умножим 2-е уравнение системы 1 на А21. Умножим n-е уравнение системы 1 на Аn1. Сложим полученные уравнения:
(a11А11+a21А21+….+an1Аn1)x1+(a12А12+a22А21+....+an1Аn1)x1+....+(a1nА11+a2nА21+ +....+annАn1)xn=b1А11+b2А21+....+bnАn1
detAx1=detA1,
где A1 – матрица, полученная из матрицы А заменой 1-го столбца столбцом свободных членов.
detAx2=detA2,
где A2 – матрица, полученная из матрицы А заменой 2-го столбца столбцом свободных членов.
detAxn=detAn,
где An – матрица, полученная из матрицы А заменой n-го столбца столбцом свободных членов.
Если обозначимΔ=detA, то получим
Δ x1=Δ1
Δ x2=Δ2
. . . .
Δ xn=Δn
где Δi – определитель, полученный из определителя Δ заменой i-го столбца столбцом свободных членов системы 1.
Назовём данную систему “система 2”.
Рассмотрим 3 случая:
1) Если в системе 2 Δ≠0, то x1=Δ1/Δ, x2=Δ2/Δ, ….. , xn=Δn/Δ. Полученные формулы называются формулами Крамера.
2) Если в системе 2 Δ=0 и все Δi=0 для любого i, изменяющегося от 1 до n, то система имеет бесчисленное множество решений.
3)Если в системе 2 Δ=0 и существует Δi≠0, то решения системы 2 не существуют [1].
3 ОСОБЕННОСТИ РАБОТЫ В СРЕДЕ VisualC++
Язык программирования Visual C++ в настоящее время является самым популярным языком в мире. Программу сколь угодно большой сложности Вы можете написать на любом языке программирования, но если требуется, чтобы она работала быстро и надёжно, вы вынуждены писать её на Visual C++.