Лабораторная работа Решение системы уравнений алгоритмом Эйлера. Лабораторная работа №1. Решение системы алгебраических уравнений методом Гаусса. Задание x4p2q4 4x2yz2p2q23 2x2y4p6 5x4ypq9
Скачать 20.53 Kb.
|
Зинченко Григорий Витальевич, группа з-421П8-4 Лабораторная работ 1, задание 1, Вариант 27 Решение системы алгебраических уравнений методом Гаусса. Задание: -x+4p+2q=4 4x-2y+z-2p-2q=-23 2x+2y+4p=6 5x+4y-p-q=9 2x-3y+2z-2p+5q=-20 Ввод коэффициентов системы уравнений. Задаем размерность матрицы: n=5х5. Задаем коэффициенты при переменных. Задаем свободные значения правой части (вектор). Приведение матрицы к треугольному виду (прямой ход). Поиск максимального по модулю коэффициента первого элемента (a1j) в первом столбце и перестановка строк таким образом, чтобы этот коэффициент оказался в крайнем верхнем положении. Вычитание первой строки из второй, но предварительно домножив первую строку на коэфф. k= , таким образом, чтобы первый коэфф. второй строчки стал равен нулю. Аналогично с остальными строчками: вычитание первой строки из последующей, с домножением на коэф. k= так, чтобы первый коэффициент строчки стал равен нулю. После обнуления первого столбца мысленно убираем его из матрицы и переходим к второму элементу второй строчки, где проделываем аналогичные операции. Поиск максимального по модулю коэффициента второго элемента (a2j) во втором столбце и перестановка строк таким образом, чтобы этот коэффициент оказался в на второй строчке. Вычитание второй строки из третьей, но предварительно домножив вторую строку на коэфф. k= , таким образом, чтобы второй коэфф. второй строчки стал равен нулю. Далее продолжаем до конца строчек. Поиск решения системы уравнений (обратный ход). Выражение последнего элемента из последней строчки и подстановка его в верхние строчки. Выражение предпоследнего элемента из предпоследней строчки и подстановка его в верхние строчки и так далее. Получение решения системы уравнений. Псевдокод: Ввод коэффициентов Введите размерность квадратной матрицы N=5 Задать двумерный массив int matrica[n][n] Введите элементы матрицы построчно Объявить цикл с итераторами строк[i] и столбцов[j] For (i=0; i For (j=0; j Введите элемент матрицы Задать вектор int vector[1][n] в виде двумерного массива Объявить цикл с итератором [k] For (k=0,k Введите элемент вектора Вывод матрицы на экран Printf(“matrica, vector”) сделано Прямой ход Объявление цикла поиска по столбцу Поиск максимального элемента Перестановка строки Ищем коэф koeff для вычитания 2 строки. Он равен 0-му коэф. Второй строки разделить на 0-й коэф 1 строки Домножаем каждый элемент 1 строки на коэф koeff Вычитаем первую строчку из второй |