Контрольная работа: Метод квадратных корней
Название: Метод квадратных корней Раздел: Рефераты по математике Тип: контрольная работа | ||||||||||
Система линейных алгебраических уравнений – математическая модель, которая описывает состояние равновесия экономического объекта, которое называется установившимся режимом или статикой объекта. Экономическая статика изучает допустимые и рациональные состояния экономического объекта. Пусть дана система n линейных алгебраических уравнений с n неизвестными
![]() или в матричной форме Ax = b, где - матрица коэффициентов, - столбец свободных членов и столбец неизвестных соответственно. Если матрица А неособенная, т.е. то система (1.1) имеет единственное решение. В этом случае решение системы (1.1) с теоретической точки зрения не представляет труда. Значения неизвестных xi (i=1,2,…n) могут быть получены по известным формулам Крамера крамер квадратный корень матрица где матрица Ai получается из матрицы А заменой ее i-го столбца столбцом свободных членов. Но такой способ решения линейной системы с n неизвестными приводит к вычислению n + 1 определителей порядка n, что представляет собой весьма трудоемкую операцию при сколько-нибудь большом числе n. Применяемые в настоящее время методы решения линейных систем можно разбить на две группы: точные и приближенные. Точными методами называются такие методы, которые в предположении, что вычисления ведутся точно (без округлений), приводят к точным значениям неизвестных xi . Так как на практике все вычисления ведутся с округлениями, то и значения неизвестных, полученные точным методом, неизбежно будут содержать погрешности. К точным методам относятся, например, метод Гаусса, метод квадратных корней. Приближенными методами называются такие методы, которые даже в предположении, что вычисления ведутся без округлений, позволяют получить решение системы (x1 , x2 , …, xn ) лишь с заданной точностью. Точное решение системы в этих случаях может быть получено теоретически как результат бесконечного процесса. К приближенным методам относятся метод простой итерации, метод Зейделя и др. Каждый из этих методов не всегда является сходящимся в применении к конкретному классу систем линейных уравнений. Данная контрольная работа имеет следующую структуру: в начале рассматривается математическая постановка задачи для метода квадратных корней при решении систем линейных алгебраических уравнений. Затем производится реализация данного метода с помощью вычислительных средств ЭВМ, а именно прикладной программой Matlab 6.5. На примере реализации нескольких тестовых задач проводится анализ точности данного метода, а именно когда наиболее эффективно применять метод квадратных корней при решении систем линейных алгебраических уравнений. Анализ проводится на основе матрицы А (ее мерности, разреженности, обусловленности. Результаты, полученные на основе метода квадратных корней, приведены в конце данной работы. Также в работе представлен графический материал. По окончании проведения исследования работа завершается логическим заключением. Математическая постановка задачи Метод квадратных корней используется для решения линейной системы Ax = b,
у которой матрица А симметрическая, т.е. aij = aji (i, j = 1, 2, …, n). Метод является более экономным и удобным по сравнению с решением систем общего вида. Решение системы осуществляется в два этапа. Прямой ход. Представим матрицу А в виде произведения двух взаимно транспонированных треугольных матриц:
где
Перемножая матрицы T¢ и T и приравнивая матрице A, получим следующие формулы для определения tij :
T¢y = b, Tx = y. Обратный ход. Записываем в развернутом виде системы (1.5): Отсюда последовательно находим При вычислениях применяется обычный контроль с помощью сумм, причем при составлении суммы учитываются все коэффициенты соответствующей строки. Заметим, что при действительных aij могут получиться чисто мнимые tij . Метод применим и в этом случае. Описание программного обеспечения (согласно стандартам на ИТ) Для изучения данного метода было выбрано программное обеспечение: Matlab 6.5, в операционной системе WindowsXPProfessional. На этапе проектирования была создана программа Square (‘квадрат’). Входными переменными для данной программы является матрица A и соответствующая ей матрица B. Результатом выполнения данной программы является матрица X (выходная переменная), которая является решением системы линейных алгебраических уравнений. Ниже описан алгоритм реализации метода квадратных корней на языке программирования в среде Matlab 6.5: A=input('Введите матрицу A='); B=input('Введите B='); if A==A' if det(A)~=0 s=size(A,1); if size(B',1) == s T=zeros(s); T(1,1)=sqrt(A(1,1)); for k=2:s T(1,k)=A(1,k)/T(1,1) end for j=2:s for i=2:s if i==j sm=0 for k=1:(i-1) sm=sm+T(k,i)^2 end T(i,i)=sqrt(A(i,i)-sm) else if i<j sm=0 for k=1:(i-1) sm=sm+T(k,i)*T(k,j) end T(i,j)=(A(i,j)-sm)/T(i,i) end end end end Y=zeros(s,1) Y(1)=B(1)/T(1,1) for i=2:s sm=0 for k=1:(i-1) sm=sm+T(k,i)*Y(k) end sm Y(i)=(B(i)-sm)/T(i,i) end X=zeros(s,1) X(s)=Y(s)/T(s,s) for m=1:(s-1) i=s-m sm=0 for k=(i+1):s sm=sm+T(i,k)*X(k) sm end X(i)=(Y(i)-sm)/T(i,i) E=A*X-B' end else error('B не соответствует матрице А') end else error('det А = 0') end else B = B*A' A = A*A' if det(A)~=0 s=size(A,1); if size(B',1) == s T=zeros(s); T(1,1)=sqrt(A(1,1)); for k=2:s T(1,k)=A(1,k)/T(1,1) end for j=2:s for i=2:s if i==j sm=0 for k=1:(i-1) sm=sm+T(k,i)^2 end T(i,i)=sqrt(A(i,i)-sm) else if i<j sm=0 for k=1:(i-1) sm=sm+T(k,i)*T(k,j) end T(i,j)=(A(i,j)-sm)/T(i,i) end end end end Y=zeros(s,1) Y(1)=B(1)/T(1,1) for i=2:s sm=0 for k=1:(i-1) sm=sm+T(k,i)*Y(k) end sm Y(i)=(B(i)-sm)/T(i,i) end X=zeros(s,1) X(s)=Y(s)/T(s,s) for m=1:(s-1) i=s-m sm=0 for k=(i+1):s sm=sm+T(i,k)*X(k) sm end X(i)=(Y(i)-sm)/T(i,i) end else error('B не соответствует матрице А') end else error('det А = 0') end end Результатом разработки программы является этап реализации и тестирования метода квадратных корней. На этапе выполнения программы может появляться неточность полученного решения из-за ошибки вычисления (например, ошибки округления ЭВМ). Исследуем влияние мерности матрицы A, ее обусловленности, разреженности на точность полученного решения. Результат будем оценивать по невязке ε = Ax* - b (x* - полученное решение). Для этого рассмотрим разного рода матрицы: - влияние мерности матрицы А; Рассмотрим матрицы мерности 2´2, 3´3, 4´4 и 5´5. Зададим матрицу мерностью 2´2:
X = ε = Зададим матрицу размерностью 3´3:
X = ε = Зададим матрицу размерностью 4´4:
X = ε = Зададим матрицу размерностью 5´5:
X = ε = Сравним полученные результаты, для этого проанализируем точность полученного решения. Результат мы можем оценить двумя способами E2=input('Введите матрицу Е2='); E3=input('Введите матрицу Е3='); E4=input('Введите матрицу Е4='); E5=input('Введите матрицу Е5='); Q1=sqrt(sum(power(E2,2))); Q2=sqrt(sum(power(E3,2))); Q3=sqrt(sum(power(E4,2))); Q4=sqrt(sum(power(E5,2))); Q = [Q1 Q2 Q3 Q4]; abs(E2); abs(E3); abs(E4); abs(E5); a1=max(abs(E2)); a2=max(abs(E3)); a3=max(abs(E4)); a4=max(abs(E5)); A = [a1 a2 a3 a4]; E = [2 3 4 5]; plot (Q,E) pause plot (A,E) На основе проведенного анализа и иллюстрации графиков можно сделать вывод, что с увеличением мерности матрицы увеличивается неточность решения. - влияние обусловленности матрицы А; Для исследования возьмем матрицу следующего вида, которую в последствии будем заполнять нулями, прослеживая результат изменения ошибки:
X = -6.1000 -2.2000 -6.8000 -0.9000 0.2000 E = -0.0389 -0.7994 0.2665 -0.0888 0.0888
X = -0.7869 -1.3706 -2.1805 -0.0204 1.5371 E = 0 0 0.2665 0 0
X = -0.4950 0.1575 5.0050 4.7700 -5.5025 E = 0 0 0 -0.7105 0.4441
X = -4.1125 1.0263 -1.0750 1.2947 -1.2313 E = -0.0444 0 0.0888 -0.0888 0.1776
X = 0.5000 1.0263 1.6667 1.2947 0.8250 E = 0 0 0.8882 -0.8882 0 Четкой тенденции проследить невозможно, хотя видно на основе предложенной матрицы А, что с увеличение числа нулей, присутствующих в матрице, точность решения увеличивается, т.к. уменьшается число элементов задействованных в вычислении, то и снижается ошибка вычислений. - обусловленность матрицы А; Зададим матрицу с практически равными элементами. В последствии будем увеличивать ее размерность.
X = -1.6499 -1.6501 E = 0 -0.9313
X = -1.6522 0.7500 2.3978 E = 0 0.1863 0
X = 0.0018 2.4041 2.3978 0.0033 E = -0.0167 0.0371 -0.0371 -0.3558 Обусловленность матрицы снижает ошибку вычислений у матриц с более высокой размерностью, т.е. с увеличением размерности разряженной матрицы ее точность увеличивается (ошибка вычислений снижается). Подводя итоги можно сделать следующий вывод. Точность решения зависит как от обусловленности, разреженности и мерности матрицы, так и в целом комбинация этих составляющих влияет на точность полученного решения. Хотя в некоторых случаях однозначного ответа дать невозможно, так как точность зависит еще и от того, насколько громоздки были вычисления, и как много требовалось округлений, а также все ли были учтены недочеты. А также если корни будут близки к целым корням, то и точность решения будет выше. В данной контрольной работе был проанализирован один из методов решения систем линейных алгебраических уравнений: метод квадратных корней. Метод был предложен для решения системы Ax=b, где матрица A – симметрическая, хотя не исключено, что метод может использоваться и не для симметрических матриц, тогда исходную систему можно привести к виду AA¢x=bA¢, полученную систему легко можно решить методом квадратных корней. Также в данной системе были проанализированы разного рода матрицы, и их влияние на точность полученного решения. Основываясь на полученных выводах, можно контролировать в каких конкретно моментах удобно решать систему линейных алгебраических уравнений методом квадратных, а когда лучше использовать другой метод. 1. Государственные стандарты. ИТ. комплекс стандартов и руководящих документов на АС. Издание официальное. Комплект стандартизации и метрологии СССР. М. – 1991. 2. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М.: «Наука», 1972. 3. Писсанецки С. Технология разряженных матриц. – М.: Мир, 1988. 4. Сарычева О.М. Численные методы в экономике: Конспект лекций. Новосибирск: НГТУ, 1995. 5. Численные методы. Методические указания. НГТУ, 2002. |