Смекни!
smekni.com

Разработка программы для решения систем линейных уравнений (стр. 1 из 4)

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФАВТ

РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ

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

Курсовая работа по дисциплине

"Информатика"

ТПЖА.12203-01 81 01 ПЗ

Разработал студент гр. СК-00 ____________ /А. И. Иванов/

Руководитель преподаватель

ФАВТ ____________ / К. И. Петров/

Курсовая работа защищена с оценкой“___________” “__”_____2002 г.

Киров 2002


Реферат

А. И. Иванов. Разработка программы для решения систем линейных уравнений: ТПЖА 12203-01 81 01 ПЗ. Курсовая работа/ВятГУ, ФАВТ, рук. К. И. Петров – Киров, 2002. ПЗ 7 с., 3 табл., 8 рис., 4 источника, 4 прил.; програм. докум. 18 л.

СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ, МЕТОД ЗЕЙДЕЛЯ, МЕТОД ПРОСТЫХ ИТЕРАЦИЙ, МАТРИЦА КОЭФФИЦИЕНТОВ, ВЕКТОР СВОБОДНЫХ ЧЛЕНОВ, УСЛОВИЕ СХОДИМОСТИ

Объектом исследования являются итерационные методы решения систем линейных алгебраических уравнений (далее СЛАУ): метод простых итераций и метод Зейделя.

Цель работы – разработка программы для решения СЛАУ с произвольным количеством уравнений.

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

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

Результаты проведённой работы могут быть использованы при решении СЛАУ с произвольным количеством уравнений.

Среда программирования – Borland C.


Содержание

Введение 2

1 Анализ задания и выбор метода решения 3

1.1 Анализ задания 3

1.2 Выбор метода решения 3

1.2.1 Метод простых итераций 4

1.2.2 Метод Зейделя 4

2 Реализация метода решения задачи 5

2.1 Контроль входной информации 5

2.2 Формат вывода выходной информации 5

2.3 Выбор типов входных, рабочих и выходных переменных,

используемых в программе 6

2.4 Проектирование программы 6

2.5 Анализ результата 6

Заключение 7

Приложение А (обязательное) Разработка программы для решения систем линейных уравнений. Описание программы. ТПЖА.12203-01 13 01 8

Приложение Б (обязательное). Разработка программы для решения систем линейных уравнений. Руководство пользователя. ТПЖА.12203-01 34 01..

Приложение В (обязательное). Разработка программы для решения систем линейных уравнений. Текст программы. ТПЖА.12203-01 12 01 23

Приложение Г (справочное) 45


Введение

Решение СЛАУ является одной из важных вычислительных задач, часто встречающихся в прикладной математике. К решению систем линейных уравнений сводится ряд задач анализа, связанных с приближением функций, решение систем дифференциальных уравнений и интегральных уравнений и т.д.

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

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

1 Анализ задания и выбор метода решения

1.1 Анализ задания

В соответствии с заданием на курсовую работу необходимо разработать программу для решения СЛАУ методом простых итераций и методом Зейделя. Предусмотреть ввод числа уравнений, матрицы коэффициентов и вектора свободных членов, а также вывод вектора решений на экран.

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

1.2 Выбор метода решения

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

Пусть ищется решение невырожденной системы уравнений[1]

.

(1)

Первым шагом в итерационном методе является преобразование исходной системы к виду[1]

,

(2)

где матрицы С, В и вектор d определяются по матрицы А и вектору b. Причём системы (1) и (2) являются эквивалентными, т.е. их решения совпадают, а построение обратной матрицы С-1 проще, чем А-1. [1]

Вторым шагом является расстановка индексов или номеров приближений в (2) и задание нулевого приближения. Например,

(3)

где - заданный вектор [1]

Третьим шагом итерационного метода является обоснование сходимости последовательных приближений , полученных из (3), к точному решению х системы и оценка погрешности k-го приближения[1]

(4)

Оценка (4) при заданном позволяет остановить итерационный про-цесс (3). [1]

Различные итерационные методы отличаются первыми двумя шагами, а выбор конкретного метода должен производиться на основании оценки(4). [1]

1.2.1 Метод простых итераций

В методе простых итераций матрица С (2) выбирается единичной: С=Е. Итерационный процесс описывается формулой

(5)

где - заданный вектор. [1]

1.2.2 Метод Зейделя

Отличие метода Зейделя от простой итерации состоит лишь в том, что при вычислении (k+1)-го приближения полученные компоненты вектора сразу же используются в вычислениях. В матричной записи это можно представить так:

где матрицы U и L получены разложением В в сумму:

матрица U – верхняя треугольная часть B, включая диагональ; L – нижняя поддиагональная часть В. [1]

Таким образом метод Зейделя можно записать в следующей форме

(6)

Заметим, что построение матрицы, обратной , не представляет труда, так как это нижняя треугольная матрица. [1]

2 Реализация метода решения задачи

2.1 Контроль входной информации

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

В программе входные данные, задаются пользователем в режиме диалогового окна. Это позволяет практически полностью контролировать входную информацию и избежать некорректности вводимых данных, так как далее эта информация используется в вычислениях. Функции float_input() и n_input() предназначены для защиты от некорректного ввода действительных и натуральных чисел соответственно (приложение В).

2.2 Формат вывода выходной информации

Вывод результатов расчёта производится в окне Output.

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

2.3 Выбор типов входных, рабочих и выходных переменных, используемых в программе

В программе использованы следующие переменные:

char ch

int s

int n

double **A

double *B

double *X

bool inpflag=false

bool decflag=false

перемещение между окнами

число итераций

размерность матриц

матрица коэффициентов

вектор свободных членов

вектор решений

флажок выполнения операции ввода

флажок выполнения операции решения

2.4 Проектирование программы

Рабочий модуль программы – Zeidel.cpp.

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

2.5 Анализ результата

В результате проделанной программистом работы разработана программа, реализующая решение СЛАУ методами Зейделя и простых итераций и выполненная в удобном и понятном интерфейсе, понятном неопытному пользователю.

Пример расчета СЛАУ со следующими входными данными:

Исходная матрица А 45 8.6

7.3 8.1

Вектор свободных членов В 12

4.5

Результаты расчёта:

Вектор решений 0.1938

0.3809

Число итераций 5

Заключение

В ходе курсовой работы был разработан программный продукт, в рамках которого были реализованы:

 метод простых итераций для решения СЛАУ;

 метод Зейделя для решения СЛАУ;

 удобный оконный интерфейс для неопытного оператора;

 защита от неправильного ввода входной информации;


Приложение А

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

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФАВТ

РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ

ОПИСАНИЕ ПРОГРАММЫ

Лист утверждения

ТПЖА.12203-01 13 01-ЛУ

Листов 2

Разработал студент гр. СК-00 ____________ / А. И. Иванов /

Руководитель преподаватель

ФАВТ ____________ / К. И. Петров/

Киров 2002


Приложение А

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

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФАВТ

Лист утверждения

ТПЖА.12203-01 13 01-ЛУ

РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ

ОПИСАНИЕ ПРОГРАММЫ

ТПЖА.12203-01 13 01

Листов 8

Киров 2002


Аннотация

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

Содержание

1 Общие сведения 12

2 Состав и структура программного модуля 12

3 Описание логической структуры 13

4 Входные данные 14

5 Выходные данные 14

6 Схемы алгоритмов программы 15

1 Общие сведения

Исходный текст программы написан на языке С.