Помощь в учёбе, очень быстро...
Работаем вместе до победы

Решение систем линейных уравнений (СЛУ)

РефератПомощь в написанииУзнать стоимостьмоей работы

Мы должны получить решение с помощью метода исключения Гаусса. В Maple нет специальной команды решения системы линейных уравнений этим методом, поэтому нам придется создать собственную идею вычисления: Здесь мы получили значения х1, х2, х3, проверим правильность нашего решения с помощью сравнения вектора свободных членов, с нашей матрицей A помноженной на соответственные значения полученных иксов. Читать ещё >

Решение систем линейных уравнений (СЛУ) (реферат, курсовая, диплом, контрольная)

Как известно, одной из первых задач решаемых в курсе линейной алгебры, является задача решения систем линейных алгебраических уравнений. Существует много способов ее решения, но классическими являются два — метод Крамера и метод исключения Гаусса. Первый в настоящее время практически не используется из-за накопления ошибок округления при реальных вычислениях на подмножестве вещественных чисел с ограниченной мантиссой, хотя, справедливости ради следует заметить, что при вычислениях в Maple подобной проблемы не возникает, так как пользователь всегда может увеличить количество цифр в мантиссе используемых чисел, присвоив системной переменой Digits требуемое значение. Именно поэтому мы и приведем оба варианта решения систем линейных уравнений и методом Крамера и Гаусса.

Метод Крамера.

Данная программа реализует классический метод решения систем линейных уравнений методом Крамера и выполняет проверку. Программа способна решать системы уравнений с n — неизвестными. > restart;

Подключим пакет Linalg о котором мы уже не раз говорили ранее.

with (linalg):

Введем размерность матрицы системы.

n:=3;

Введем коэффициенты основной матрицы, и вычислим их определитель.

A:=matrix (n, n,[1,1,-4,2,-1,1,3,5,6]);

opredelitA:=det (A);

Введем коэффициенты свободных членов.

B:=matrix (n, 1,[-15,9,1]);

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

for m from 1 to n do.

r:=eval (m-1);

p:=eval (m+1);

F[m]: =concat (submatrix (A, 1. n, 1. r), B, submatrix (A, 1. n, p. n));

opredelitF[m]: =det (F[m]);

x[m]: =evalf (opredelitF[m]/opredelitA); od;

Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).

Получив все необходимые данные, а именно значения неизвестных переменных — х, необходимо провести проверку.

Для наглядности выведем значении полученных неизвестных коэффициентов:

> for m from 1 to n do X[m]=x[m]; od;

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

> for m from 1 to n do W[m]: =submatrix (A, 1. n, m. m);od;

for m from 1 to n do W[m]: =evalm (W[m]*x[m]); od;

Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).

Сложим полученные значения.

> Q:=evalm (W[1]+W[2]+W[3]);

Решение систем линейных уравнений (СЛУ).

> C:=matrix (B);

Решение систем линейных уравнений (СЛУ).

Очевидно, что полученный вектор столбец равен вектору столбцу, введенному ранее — столбцу свободных членов, значит решение данной системы верно, и полученные неизвестные коэффициенты действительно являются решениями данной системы.

Метод Гаусса.

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

  • 3*x1 + 2*x2 + x3 = 5
  • 2*x1 + 3*x2 + x3 = 1
  • 2*x1 + x2 + 3*x3 = 11

Необходимо доказать ее совместимость и решить методом Гаусса.

Неоднородная квадратная система линейных уравнений совместна при любом векторе правой части, если определитель не равен нулю.

> A:=matrix (3,3,[[2,1,0],[-3,4,0],[-2,1,2]]);

Решение систем линейных уравнений (СЛУ).

> B:=vector (3,[5,1,11]);

Вычислить определитель в Maple можно обратившись к команде det ().

> A:=matrix (3,3,[[2,1,0],[-3,4,0],[-2,1,2]]);

opredelit:=linalg [det](A);

Решение систем линейных уравнений (СЛУ).

Мы должны получить решение с помощью метода исключения Гаусса. В Maple нет специальной команды решения системы линейных уравнений этим методом, поэтому нам придется создать собственную идею вычисления:

> with (linalg):A:=matrix (3,3,[[2,1,0],[-3,4,0],[-2,1,2]]);

Решение систем линейных уравнений (СЛУ).

> B:=vector (3,[5,1,11]);

> m:=rowdim (A);

> c:=matrix (A);

Решение систем линейных уравнений (СЛУ).

> c:=concat (c, B);

Решение систем линейных уравнений (СЛУ).

> x:=vector (m);

> for i from 1 to m do r:=1/c[i, i]; c:=mulrow (c, i, r); if im then for j from i+1 to m do r:=-c[j, i]; c:=addrow (c, i, j, r);end do;end if; end do;

Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).

> x[m]: =c[m, m+1]; for i from m-1 to 1 by -1 do x[i]: =c[i, m+1]-sum (x[k]*c[i, k], k=(i+1).m); end do; sol:=eval (x);

Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).
Решение систем линейных уравнений (СЛУ).

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

> evalm (A&*sol);evalm (B);

Из полученного результата мы видим, что полученный результат полностью совпадает со столбцом свободных членов, а значит наше решение верно.

В прямом ходе метода расширенная матрица системы приводится к верхнему треугольному виду с единицами на главной диагонали. В обратном ходе в векторе х процедуры вычисляется вектор решения системы, который и является ее обратным значением. При приведении матрицы к верхнему треугольному виду в двойном цикле используется команда addrow принадлежащая пакету linalg, а при последовательном вычислении элементов вектора решения — команда sum. Эти команды реализуют циклы.

Показать весь текст
Заполнить форму текущей работой