Разработка специализированного программного модуля

Автор работы: Пользователь скрыл имя, 07 Апреля 2011 в 17:05, курсовая работа

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

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

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

Введение………………………………………………………………………4
Постановка задачи………………………………………………………….5
Математическое описание задачи…………………………………………6
Математическое описание метода Гаусса………………………………6
Математическое описание метода итераций……………………………9
Разработка схемы алгоритма……………………………………………...10
Описание входной и выходной информации……………………………15
Разработка и описание программы……………………………………….16
6 Расчет решения задания и анализ полученных результатов …………..17
Заключение…………………………………………………………………..19
Список использованных источников……………………………………….20

Файлы: 1 файл

Курсовой.doc

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

2.2 Математическое описание решения СЛАУ методом итераций

     Пусть  дана  система  n  линейных  алгебраических  уравнений  с  n неизвестными:

     a11x1+a12x2+…+a1n xn=b1,

     a21x1+a22x2+…+a2n xn=b2,                   (10)

                      …

     an1x1+an2x2+…+ann xn=bn,

     Для решения СЛАУ итерационными методами преобразуем систему от формы (8) к виду: 

     x1 = (a1,n+1-a11x1-a12x2-…-a1nxn)/a11+x1,

     x2 = (a2,n+1-a21x1-a22x2-…-a2nxn)/a22+x2,

                         …                                                     (11)

     xn = (an,n+1-an1x1-an2x2-…-annxn)/ann+xn;

     Задав столбец начальных приближений х10, х20,..., хn°, подставим их в правые части системы (11) и вычислим новые приближения х11, х21..., хn1 которые опять подставим в систему (11) и т.д. Таким образом, организуется итерационный процесс, являющийся обобщением метода простых итераций на системы уравнений: 

     x1(m+1) = φ1(x1(m),x2(m),…,xn(m)),

     x2(m+1) = φ2(x1(m),x2(m),…,xn(m)),

                        …

     xn(m+1) = φn(x1(m),x2(m),…,xn(m)); 

     Для сходимости итерационных методов необходимо, значение диагональных элементов матрицы СЛАУ  превосходили остальные, что снижает применимость метода простых итераций (хотя системы СЛАУ можно привести к нужному  для сходимости виду с помощью эквивалентных преобразований)

     Итерационный процесс заканчивается, когда выполнятся условие:

 
     | xk (m+1)-xk(m) |<ε.                                             (12) 

     где ε - заданная погрешность; k=l,2,..,n. 
 
 
 
 

     3 Разработка алгоритма 

     Опишем  блок-схемы алгоритмов каждой функции. На рисунке 1 представлена блок-схема функции main() – главной функции программы. 
 

     Рисунок 1 – блок – схема алгоритма функции main() 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     На  рисунке 2 представлена блок-схема функции vvod() ввода исходных данных при решении системы.

     

Рисунок 2 – блок – схема алгоритма функции vvod()

     По  данной блок – схеме сначала надо ввести количество переменных t, а затем элементы матрицы a[t][t+1], составленной из коэффициентов при неизвестных и свободных членов уравнений. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     На  рисунке 3 представлена блок-схема функции iteracia(), организующая решение системы методом итерации.

     

Рисунок 3 – блок – схема алгоритма функции iteracia() 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     На  рисунке 4 представлена блок-схема функции gauss(), организующая решение системы методом Гаусса. 

Рисунок 4 – блок – схема алгоритма  функции gauss()

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

(n-1)-ого уравнения и заканчивая первым. 

     На  рисунке 5 представлена блок-схема функции vivod(), организующая вывод решения на экран.

Рисунок 5 – блок – схема алгоритма функции vivod()

Данная  функция организует вывод результатов на экран.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

4 Описание входной  и выходной информации 

     Входной информацией для решения СЛАУ является количество переменных.

     Количество  переменных вводится с клавиатуры и может принимать целые значения, кроме 0 и 1. Количество переменных  описывается с помощью переменной t, которая имеет тип integer – целые значения.

     Коэффициенты  а[t][t+1] вводятся с клавиатуры в следующем порядке: вводятся коэффициенты при неизвестных в первом уравнении системы, вводится свободный член первого уравнения, далее ввод повторяется для элементов второго уравнения и т.д.

     Элементы  матрицы А являются коэффициентами при неизвестных в уравнениях системы. Переменные a[t][t+1] имеют тип float – значения с плавающей точкой, и могут принимать любые значения. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     5 Разработка и описание программы  

     Программа реализует поиск решений системы уравнений, реализована на языке Си.

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

     Описание  разработанных функций:

     void vvod() – функция, предназначена для ввода значений с клавиатуры, функция не возвращает никаких значений.

     void iteracia () – функция, предназначена для решения системы методом итерации.

     void gauss () – функция, предназначена для решения системы методом Гаусса

     void vivod () - функция, предназначена для вывода результатов на экран.

     void main (void) – главная функция, в которой происходит обращение к функциям void vvod(),void iteracia (),void gauss (),void vivod (). Таким образом, основные функции программы, оформлены виде логически законченных структурных единиц, которые можно вызывать в любом месте программы.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     6 Расчет решения задания и анализ полученных результатов 

     Решим систему уравнений методом Гаусса: 

           7.9x1+5.6x2+5.7x3-7.2x4=6.68,

           5.8x1-4.8x2+0.8x3+3.5x4=9.95,            

           5.3x1+4.2x2-3.2x3+9.3x4=8.60,

           3.2x1-1.4x2-8.9x3+3.3x4=1.00;

     Для этого запускаем программу и нажимаем 1. Потом вводим необходимое число переменных в системе (в нашем случае 4). Вводим элементы матрицы коэффициентов, сначала элементы первой строки, затем второй и т.д.

     7.9 5.6 5.7 -7.2  6.68

     8.5 -4.8 0.8 3.5  9.95

     4.3 4.2 -3.2 9.3  8.60

     3.2  -1.4  -8.9  3.3  1.00

     В результате выполнения программы на экран выводится результат:

     x1=0.967100,

     x2=0.124800,

     x3=0.426300,

     x4=0.567900.

     Подставим полученные результаты расчета системы методом Гаусса в исходные уравнения системы:

     7.9·0.967100+5.6·0.124800+5.7·0.426300-7.2·0.567900=6.68,

     8.5·0.967100-4.8·0.124800+0.8·0.426300+3.5·0.567900=9.95,

     4.3·0.967100+4.2·0.124800-3.2·0.426300+9.3·0.567900=8.6,

     3.2·0.967100-1.4·0.124800-8.9·0.426300+3.3·0.567900=1.00;

     Отсюда  видно, что система решена верно, т.к. подстановка результатов в исходные уравнения превратила их тождества.

     Решим следующую систему уравнений методом итерации: 

              6x1-x2-x3=11.33,

               -x1-x2-6x3=32,                                  

              -x1-x2-6x3=42;

     Для этого запускаем программу и  нажимаем 2. Потом вводим необходимое число переменных в системе (в нашем случае 3).

     6  -1  -1  11,33

     -1  6  -1 32

     -1  -1  6  42

     В результате выполнения программы на экран выводится результат:

     x1=4.665224,

     x2=7.618504,

     x3=9.047288;

     Подставим полученные результаты расчета системы  методом Гаусса в исходные уравнения системы:

     6·4.665224-7.618504-9.04228=11.33,

     -4.665224+6·7.618504-9.047288=32,

     -4.665224-7.6185504+6·9.04228=42.

     Отсюда  видно, что система решена верно, т.к. подстановка результатов в  исходные уравнения превратила их тождества. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Заключение 

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

     Список  использованных источников

     Список  использованных источников

     1. Гурский В.Е. Руководство к решению задач по высшей математике. – Мн.: Высш. шк, 1998г.

     2. Романовская Л.М. Программирование в среде Си для ПЭВМ ЕС/ Л.М.Романовская, Т.В.Русс, С.Г.Свитковский. - М.: Финансы и статистика,1991.-352 с.

     3. Скляров В.А. Программное и лингвистическое обеспечение персональных ЭВМ. Системы общего назначения: Справ. пособие. – Мн.: Выш. шк., 1992. – 426 с.: ил.

     4. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. – Томск: МП “РАСКО”, 1991. – 227 с. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Приложение  А

     (обязательное)

Информация о работе Разработка специализированного программного модуля