Система линейных алгебраических уравнений
Решение системы линейных алгебраических уравнений с вещественными коэффициентами с помощью метода Гаусса. Описание метода, алгоритм решения. Разработка программы на языке Turbo Pascal в компьютерной среде Pascal ABC. Контрольный пример для отладки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 26.09.2017 |
Размер файла | 607,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
12
Размещено на http://www.allbest.ru/
Оглавление
- Введение
- 1. Постановка задачи
- 2. Описание метода
- 3. Алгоритм решения
- 4. Код программы
- 5. Контрольный пример для отладки
- 6. Описание программы
- 7. Инструкция
- 8. Заключение
- 9. Список использованной литературы
- Приложение А
- Код программы.
Введение
Решение систем линейных алгебраических уравнений - одна из основных задач вычислительной линейной алгебры. Методы решения систем линейных уравнений широко используются в задачах математики, экономики, физики, химии и других науках. На практике, они позволяют не делать лишних действий, а записать систему уравнений в более компактной форме и сократить время выполнения задач. Поэтому, будущим специалистам очень важно понять основные методы решения и научиться выбирать оптимальный.
Хотя задача решения системы линейных уравнений сравнительно редко представляет самостоятельный интерес для приложений, от умения эффективно решать такие системы часто зависит сама возможность математического моделирования самых разных процессов с применением ЭВМ.
1. Постановка задачи
Дано: Система линейных алгебраических уравнений.
Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами с помощью метода Гаусса.
2. Описание метода
Существует множество методов решения систем линейных алгебраических уравнений таких как: метод Крамера, решение СЛАУ матричным методом, метод Гаусса.
Метод Гаусса - классический метод решения системы линейных алгебраических уравнений (СЛАУ). Состоит в постепенном понижении порядка системы и исключении неизвестных.
Достоинства метода:
Менее трудоемкий по сравнению с другими методами
Позволяет однозначно установить, совместна система или нет, и если совместна найти ее решение
Позволяет найти максимальное число линейно независимых уравнений-ранг матрицы системы.
Существенные Недостатки: этот метод не позволяет найти общие формулы, выражающие решение системы через ее коэффициенты и свободные члены, которые необходимо иметь при теоретическом исследовании.
Суть метода Гаусса состоит в последовательном исключении неизвестных переменных: сначала исключается X1 из всех уравнений системы, начина со второго, далее исключается X2 из всех уравнений, начиная с третьего, и так далее, пока в последнем уравнении останется только неизвестная переменная Хn. Такой процесс преобразования уравнений системы для последовательного исключения неизвестных переменных называется прямым ходом метод Гаусса. После завершения прямого хода метода Гаусса из последнего уравнения находится Хn, с помощью этого значения из предпоследнего уравнения вычисляется Xn-1, и так далее, из первого находится Х1. Процесс вычисления неизвестных переменных при движении от последнего уравнения системы к первому называется обратным ходом метода Гаусса.
3. Алгоритм решения
1. Кратко опишем алгоритм исключения неизвестных переменных.
Будем считать, что , так как мы всегда можем этого добиться перестановкой местами уравнений системы. Исключим неизвестную переменную x1 из всех уравнений системы, начиная со второго. Для этого ко второму уравнению системы прибавим первое, умноженное на - , к третьему уравнению прибавим первое, умноженное на , и так далее, к n-ому уравнению прибавим первое, умноженное на . Система уравнений после таких преобразований примет вид
где .
К такому же результату мы бы пришли, если бы выразили x1 через другие неизвестные переменные в первом уравнении системы и полученное выражение подставили во все остальные уравнения. Таким образом, переменная x1 исключена из всех уравнений, начиная со второго.
2. Далее действуем аналогично, но лишь с частью полученной системы, которая отмечена на рисунке
Будем считать, что (в противном случае мы переставим местами вторую строку с k-ой, где ). Приступаем к исключению неизвестной переменной x2 из всех уравнений, начиная с третьего.
Для этого к третьему уравнению системы прибавим второе, умноженное на , к четвертому уравнению прибавим второе, умноженное на , и так далее, к n-омууравнению прибавим второе, умноженное на . Система уравнений после таких преобразований примет вид
программа линейное алгебраическое уравнение
где .
Таким образом, переменная x2 исключена из всех уравнений, начиная с третьего.
Далее приступаем к исключению неизвестной x3, при этом действуем аналогично с отмеченной на рисунке частью системы
Так продолжаем прямой ход метода Гаусса пока система не примет вид
С этого момента начинаем обратный ход метода Гаусса: вычисляем xn из последнего уравнения как, с помощью полученного значения xn находим xn-1 из предпоследнего уравнения, и так далее, находим x1 из первого уравнения.
4. Код программы
Программа разработана на языке Turbo Pascal в компьютерной среде Pascal ABC. Код программы представлен в приложении А.
5. Контрольный пример для отладки
Приведем пример решения СЛАУ:
Решение.
Запишем матрицу системы и с помощью элементарных преобразований приведем ее к ступенчатому виду:
Выполненные преобразования:
(1) Первую и вторую строки поменяли местами.
(2) Ко второй строке прибавили первую строку, умноженную на - 2. К третьей строке прибавили первую строку, умноженную на - 2. К четвертой строке прибавили первую строку, умноженную на - 3.
(3) К третьей строке прибавили вторую, умноженную на 4. К четвертой строке прибавили вторую, умноженную на - 1.
(4) У второй строки сменили знак. Четвертую строку разделили на 3 и поместили вместо третьей строки.
(5) К четвертой строке прибавили третью строку, умноженную на - 5.
Обратный ход:
Ответ:
Решение системы в моей программе:
Сравнение: Вычисления вручную дают 4 корня уравнения равные: 0; 2; 2;
1. Компьютерная программа при решении той же системы дает аналогичные результаты. В этом вы можете убедиться взглянув на скриншот работы программы представленный выше. Следовательно программа работает правильно, проверенна на конкретном примере.
6. Описание программы
Программа представлена в Приложение А.
h - используется для замены переменной b [i] - го члена массива,
n - порядок матрицы,
mas - массив из коэффициентов при неизвестных,
vec - массив свободных членов,
i, j - номера строки и столбца соответственно,
k - вспомогательная переменная.
7. Инструкция
Пользоваться программой не так уж и сложно. Сначала до зауска среды Pascal ABC, в которой будет исполненна программа, нужно в корневую папку с приложением PABCWork вставить текстовый файл inp. В этом файле нужно записать в столбик по порядку данные исходной матрицы, начиная с первого коэффициента и заканчивая кофициэнтом b4. Потом достаточно найти Программу и запустить ее, нажав на зеленный треугольник. И все, программа выведет окно с результатами счета.
8. Заключение
В данной работе полностью разобран метод Гаусса для систем линейных алгебраических уравнений. Помимо аналитического решения СЛАУ, метод Гаусса также применяется для нахождения матрицы, обратной к данной, определения ранга матрицы, численного решения СЛАУ в вычислительной технике.
Создана функциональная модель решения системы линейных алгебраических уравнений методом Гаусса. Записана программа в среде Pascal ABC для реализации данной функциональной модели. Разобран конкретный пример решения СЛАУ и программа проверенна на данном примере.
9. Список использованной литературы
1. Мирчук Г.И. Методы вычислительной математики, М, 1997
2. Крылов В.И., Бебков В.В., Монастырный П.И. "Вычислительные методы высшей математики", Минск, т.1, 1972, т.2, 1975.
3. Мысковских И.П. Лекции по методам вычислений, СПб. 1998.
4. Васильков Ю.В., Василькова Н.Н. Компьютерные технологии вычислений в математическом моделировании. М.: Финансы и статистика, 1999.
5. Даугавст И.К. Введение в теорию приближенных функций, Л., 1977.
6. Хайзер Э., Нерстетт С., Веннер Г., Решение обыкновенных дифференциальных уравнений. Нежесткие задачи.Н., 1990.
7. Дьяконов В.П. Справочник по MathCad 7 Pro. М.: СКПресс, 1998.
8. Бахвалов Н.С. Численные методы. - М.: Наука, 1973.
9. Бахвалов Н.С., Лапин А.В., Чижонков Е.В. Численные методы в задачах и упражнениях. - М.: Высшая школа, 2000.
10. Вержбицкий В.М. Численные методы (математический анализ и обыкно-венные дифференциальные уравнения). - М.: Высшая школа, 2001.
11. Лекции Аузяк А. Г.; КНИТУ-КАИ, 2011-2012
12. А.И. Маликов Программирование, учебное пособие, Казань, 2011
13. А.И. Маликов Лабораторный практикум по Программированию Казань, 1998.
Приложение А
Код программы.
uses crt;
type vec=array [1.4] of real;
mas=array [1.4,1.4] of real;
var a: mas; b,x: vec;
h: real;
i,j,k,n: integer;
inp: text;
Begin
Clrscr;
n: =4;
assign (inp,'inp. txt');
reset (inp);
read (inp,a [1,1],a [1,2],a [1,3],a [1,4],a [2,1],a [2,2],a [2,3],a [2,4],a [3,1],a [3,2],a [3,3],a [3,4],a [4,1],a [4,2],a [4,3],a [4,4], b [1],b [2],b [3],b [4]);
close (inp);
writeln ('Исходная матрица');
for i: =1 to n do begin
write (i);
for j: =1 to n do
write (a [i,j]: 10: 5);
writeln (b [i]: 10: 5) end;
writeln; writeln; writeln;
{исключение переменных}
for i: =1 to n-1 do
for j: =i+1 to n do begin
a [j, i]: =-a [j, i] /a [i, i];
for k: =i+1 to n do
a [j,k]: =a [j,k] +a [j, i] *a [i,k];
b [j]: =b [j] +a [j, i] *b [i] end;
x [n]: =b [n] /a [n,n];
{нахождение корней}
for i: =n-1 downto 1 do begin
h: =b [i];
for j: =i+1 to n do h: =h-x [j] *a [i,j];
x [i]: =h/a [i, i]; end;
writeln ('Корни уравнения');
for i: =1 to n do writeln ('x (', i,') =',x [i]: 10: 5);
writeln;
readkey
Размещено на Allbest.ru
...Подобные документы
Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.
курсовая работа [1,2 M], добавлен 15.06.2013Приведение системы линейных алгебраических уравнений к треугольному виду прямым ходом метода Гаусса. Применение обратного хода метода вращений. Создание алгоритма, блок-схемы и кода программы. Тестовый пример решения уравнения и его проверка в MathCad.
лабораторная работа [164,3 K], добавлен 02.10.2013Алгоритм решения систем линейных уравнений методом Гаусса, его этапы. Система уравнений для определения коэффициентов сплайна, представляющая собой частный случай систем линейных алгебраических уравнений. Программная реализация, тестовый пример.
курсовая работа [431,8 K], добавлен 15.06.2013Метод Гаусса-Зейделя как модификация метода Якоби, его сущность и применение. Разработка программы решения системы линейных алгебраических уравнений на языке VB, проверка правильности работы программы в MS Excel и математических пакетах MathCad и MatLab.
курсовая работа [325,5 K], добавлен 27.10.2013Системы линейных алгебраических уравнений. Код программы для решения систем линейных алгебраических уравнений. Математические и алгоритмические основы решения задачи методом Гаусса. Программная реализация решения. Алгоритмы запоминания коэффициентов.
лабораторная работа [23,5 K], добавлен 23.09.2014Сферы использования компьютеров, сущность и языки программирования. Применение модифицированного метода Гаусса и расширенной матрицы для решения системы линейных алгебраических уравнений (СЛАУ). Разработка программы, системные требования для ее работы.
курсовая работа [657,1 K], добавлен 09.01.2014Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.
курсовая работа [1,6 M], добавлен 14.02.2021Использование метода Зейделя для нахождения корней системы линейных алгебраических уравнений. Суть метода простых итераций. Оценка погрешности нормальной системы. Составление алгоритма, блок-схемы и кода программы. Тестовый пример и проверка в MathCad.
лабораторная работа [174,8 K], добавлен 02.10.2013Возможности математического пакета MathCad в среде Windows 98 для использования матричной алгебры и решения системы линейных алгебраических уравнений. Методы решения систем линейных алгебраических уравнений. Сравнение метода Гаусса с методом MathCad.
практическая работа [62,6 K], добавлен 05.12.2009Матричная форма записи системы линейных уравнений, последовательность ее решения методом исключений Гаусса. Алгоритмы прямого хода и запоминания коэффициентов. Решение задачи о сглаживании экспериментальных данных с помощью метода наименьших квадратов.
курсовая работа [610,7 K], добавлен 25.06.2012Сущность матричного метода. Разработка программы решения системы уравнений линейных алгебраических уравнений методом решения через обратную матрицу на языке программирования Delphi. Представление блок-схемы и графического интерфейса программного продукта.
курсовая работа [1,0 M], добавлен 27.09.2014Проектирование приложения, позволяющего находить решение системы алгебраических линейных уравнений матричным методом. Выбор количества уравнений, заполнение значений коэффициентов системы уравнений и свободных членов, алгоритм решения линейных уравнений.
курсовая работа [939,4 K], добавлен 16.01.2014Разработка программного продукта для решения систем линейных алгебраических уравнений методом Гаусса с помощью ЭВМ. Математическое описание объекта моделирования, начальные и граничные условия. Алгоритм реализации задачи. Использование модуля CRT.
курсовая работа [269,6 K], добавлен 07.01.2016Решение системы линейных уравнений с матричными элементами и свободными членами с использованием метода Гаусса с выбором главного элемента, основанного на приведении матрицы системы к треугольному виду с помощью нахождения элементов главной диагонали.
лабораторная работа [71,1 K], добавлен 10.12.2014Решение систем алгебраических линейных уравнений методом Крамера. Сущность метода прогонки. Программная реализация метода: блок-схема алгоритма, листинг программы. Проверка применимости данного способа решения для конкретной системы линейных уравнений.
курсовая работа [581,0 K], добавлен 15.06.2013Применение итерационных методов численного решения системы линейных алгебраических уравнений при вычислении на ЭВМ. Математические и алгоритмические основы решения задачи, метод Гаусса. Функциональные модели и блок-схемы, программная реализация решения.
курсовая работа [527,5 K], добавлен 25.01.2010Сущность метода Гаусса при решении систем линейных уравнений. Элементарные преобразования этого метода. Краткое описание среды визуальной разработки Delphi. Описание основных применяемых процедур и алгоритм роботы программы по решению уравнений.
курсовая работа [1,1 M], добавлен 29.08.2010Постановка задачи, математические и алгоритмические основы решения системы линейных алгебраических уравнений. Решение системы данных уравнений методом Гаусса с выбором главного элемента по столбцу. Функциональные модели и блок-схемы решения задачи.
курсовая работа [428,9 K], добавлен 25.01.2010Системы линейных алгебраических уравнений. Решение систем уравнений графическим способом. Разработка программного кода модуля, реализующего приближенное решение систем линейных уравнений графическим способом. Отладка программного модуля "Метод Гаусса".
курсовая работа [858,5 K], добавлен 01.12.2013Решение системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента. Изучение особенности программной реализации алгоритма, составленной средствами разработки Microsoft Visual Studio. Проведение сложения и умножения двух матриц.
курсовая работа [702,6 K], добавлен 22.03.2015