рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Практическая часть

Практическая часть - раздел Программирование, Решение систем линейных алгебраических уравнений методом Гаусса и Зейделя Практическая Часть. Программа Решения Систем Линейных Уравнений По Методу Гау...

Практическая часть. Программа решения систем линейных уравнений по методу Гаусса 2.1.1. Постановка задачи. Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами вида a11x1 a12x2 a1nxn b1 , a21x2 a22x2 a2nxn b2 an1x1 an2x2 annxn bn для n 10 по методу Гаусса. 2.1.2. Тестовый пример. 3,2x1 5,4x2 4,2x3 2,2x4 2,6 , 2,1x1 3,2x2 3,1x3 1,1x4 4,8 , 1,2x1 0,4x2 0,8x3 0,8x4 3,6 , 4,7x1 10,4x2 9,7x3 9,7x4 8,4 , x1 5, x2 4, x3 3, x4 2. 2.1.3. Описание алгоритма.

В данной программе реализован метод Гаусса со схемой частичного выбора. В переменную n вводится порядок матрицы системы. С помощью вспомогательной процедуры ReadSystem в двумерный массив a и одномерный массив b вводится c клавиатуры расширенная матрица системы, после чего оба массива и переменная n передаются функции Gauss. В фукции Gauss для каждого k-го шага вычислений выполняется поиск максимального элемента в k-м столбце матрицы начинаяя с k-й строки.

Номер строки, содержащей максимальный элемент сохраняеется в переменной l. В том случае если максимальный элемент находится не в k-й строке, строки с номерами k и l меняются местами. Если же все эти элементы равны нулю, то происходит прекращение выполнения функции Gauss c результатом false.

После выбора строки выполняется преобразование матрицы по методу Гаусса. Далее вычисляется решение системы и помещается в массив x. Полученное решение выводится на экран при помощи вспомогательной процедуры WriteX. 2.1.4. Листинг программы и результаты работы Uses CRT Const maxn 10 Type Data Real Matrix Array1 maxn, 1 maxn of Data Vector Array1 maxn of Data Процедура ввода расширенной матрицы системы Procedure ReadSystemn Integer var a Matrix var b Vector Var i, j, r Integer Begin r WhereY GotoXY2, r WriteA For i 1 to n do begin GotoXYi62, r Writei GotoXY1, ri1 Writei2 end GotoXYn162, r Writeb For i 1 to n do begin For j 1 to n do begin GotoXYj 6 2, r i 1 Readai, j end GotoXYn 1 6 2, r i 1 Readbi end End Процедура вывода результатов Procedure WriteXn Integer x Vector Var i Integer Begin For i 1 to n do Writelnx, i xi End Функция, реализующая метод Гаусса Function Gaussn Integer a Matrix b Vector var xVector Boolean Var i, j, k, l Integer q, m, t Data Begin For k 1 to n - 1 do begin Ищем строку l с максимальным элементом в k-ом столбце l 0 m 0 For i k to n do If Absai, k m then begin m Absai, k l i end Если у всех строк от k до n элемент в k-м столбце нулевой, то система не имеет однозначного решения If l 0 then begin Gauss false Exit end Меняем местом l-ую строку с k-ой If l k then begin For j 1 to n do begin t ak, j ak, j al, j al, j t end t bk bk bl bl t end Преобразуем матрицу For i k 1 to n do begin q ai, k ak, k For j 1 to n do If j k then ai, j 0 else ai, j ai, j - q ak, j bi bi - q bk end end Вычисляем решение xn bn an, n For i n - 1 downto 1 do begin t 0 For j 1 to n-i do t t ai, i j xi j xi 1 ai, i bi - t end Gauss true End Var n, i Integer a Matrix b, x Vector Begin ClrScr WritelnПрограмма решения систем линейных уравнений по методу Гаусса Writeln WritelnВведите порядок матрицы системы макс. 10 Repeat Write Readn Until n 0 and n maxn Writeln WritelnВведите расширенную матрицу системы ReadSystemn, a, b Writeln If Gaussn, a, b, x then begin WritelnРезультат вычислений по методу Гаусса WriteXn, x end else WritelnДанную систему невозможно решить по методу Гаусса Writeln End. Программа решения систем линейных уравнений по методу Гаусса Введите порядок матрицы системы макс. 10 4 Введите расширенную матрицу системы A 1 2 3 4 b 1 3.2 5.4 4.2 2.2 2.6 2 2.1 3.2 3.1 1.1 4.8 3 1.2 0.4 -0.8 -0.8 3.6 4 4.7 10.4 9.7 9.7 -8.4 Результат вычислений по методу Гаусса x1 5.0E00 x2 -4.0E00 x3 3.0E00 x4 -2.0E00 2.2 Программа решения систем линейных уравнений по методу Зейделя 2.2.1. Постановка задачи.

Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами вида a11x1 a12x2 a1nxn b1 , a21x2 a22x2 a2nxn b2 an1x1 an2x2 annxn bn для n 10 по методу Зейделя. 2.2.2. Тестовый пример. 4,1x1 0,1x2 0,2x3 0,2x4 21,14 , 0,3x1 5,3x2 0,9x3 0,1x4 17,82 , 0,2x1 0,3x2 3,2x3 0,2x4 9,02 , 0,1x1 0,1x2 0,2x3 9,1x4 17,08 , x1 5,2, x2 4,2, x3 3, x4 1,8. 2.2.3. Описание алгоритма.

В переменную n вводится порядок матрицы системы, в переменную e максимальная абсолютная погрешность.

С помощью вспомогательной процедуры ReadSystem в двумерный массив a и одномерный массив b вводится c клавиатуры расширенная матрица системы. Начальное прибижение предполагается равным нулю. Оба массива и переменные n и e передаются функции Seidel.

В функции Seidel исследуется сходимость системы, и в том случае если система не сходится, выполнение функции прекращается с результатом false.

В ходе каждой итерации вычисляется новое приближение и и абсолютная погрешность.

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

Полученное решение выводится на экран при помощи вспомогательной процедуры WriteX. 2.2.4. Листинг программы и результаты работы. Uses CRT Const maxn 10 Type Data Real Matrix Array1 maxn, 1 maxn of Data Vector Array1 maxn of Data Процедура ввода расширенной матрицы системы Procedure ReadSystemn Integer var a Matrix var b Vector Var i, j, r Integer Begin r WhereY GotoXY2, r WriteA For i 1 to n do begin GotoXYi 6 2, r Writei GotoXY1, r i 1 Writei2 end GotoXYn 1 6 2, r Writeb For i 1 to n do begin For j 1 to n do begin GotoXYj 6 2, r i 1 Readai, j end GotoXYn 1 6 2, r i 1 Readbi end End Процедура вывода результатов Procedure WriteXn Integer x Vector Var i Integer Begin For i 1 to n do Writelnx, i xi End Функция, реализующая метод Зейделя Function Seideln Integer a Matrix b Vector var x Vector e Data Boolean Var i, j Integer s1, s2, s, v, m Data Begin Исследуем сходимость For i 1 to n do begin s 0 For j 1 to n do If j i then s s Absai, j If s Absai, i then begin Seidel false Exit end end Repeat m 0 For i 1 to n do begin Вычисляем суммы s1 0 s2 0 For j 1 to i - 1 do s1 s1 ai, j xj For j i to n do s2 s2 ai, j xj Вычисляем новое приближение и погрешность v xi xi xi - 1 ai, i s1 s2 - bi If Absv - xi m then m Absv - xi end Until m e Seidel true End Var n, i Integer a Matrix b, x Vector e Data Begin ClrScr WritelnПрограмма решения систем линейных уравнений по методу Зейделя Writeln WritelnВведите порядок матрицы системы макс. 10 Repeat Write Readn Until n 0 and n maxn Writeln WritelnВведите точность вычислений Repeat Write Reade Until e 0 and e 1 Writeln WritelnВведите расширенную матрицу системы ReadSystemn, a, b Writeln Предполагаем начальное приближение равным нулю For i 1 to n do xi 0 If Seideln, a, b, x, e then begin WritelnРезультат вычислений по методу Зейделя WriteXn, x end else WritelnМетод Зейделя не сходится для данной системы Writeln End. Программа решения систем линейных уравнений по методу Зейделя Введите порядок матрицы системы макс. 10 4 Введите точность вычислений .01 Введите расширенную матрицу системы A 1 2 3 4 b 1 4.1 0.1 0.2 0.2 21.14 2 0.3 5.3 0.9 -0.1 -17.82 3 0.2 0.3 3.2 0.2 9.02 4 0.1 0.1 0.2 -9.1 17.08 Результат вычислений по методу Зейделя x1 5.208E00 x2 -4.2028E00 x3 3.03E00 x4 -1.80E00.

– Конец работы –

Эта тема принадлежит разделу:

Решение систем линейных алгебраических уравнений методом Гаусса и Зейделя

Хотя задача решения системы линейных уравнений сравнительно редко представляет самостоятельный интерес для приложений, от умения эффективно решать… В значительной степени ограничения на размерность решаемых систем можно снять,… Поэтому при создании вычислительных алгоритмов линейной алгебры большое внимание уделяют способам компактного…

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Теоретическая часть
Теоретическая часть. Метод Гаусса Одним из самых распространенных методов решения систем линейных уравнений является метод Гаусса. Этот метод который также называют методом последовательного

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги