Автор: Пользователь скрыл имя, 03 Марта 2013 в 19:50, курсовая работа
Все методы решения линейных алгебраических задач можно разбить на два класса: прямые и итерационные. Прямые методы – это такие методы, которые приводят к решению за конечное число арифметических операций. Если операции реализуются точно, то и решение также будет точным (в связи с чем к классу прямых методов применяют название точные методы). Итерационные методы – это методы в которых точное решение может быть получено лишь в результате бесконечного повторения единообразных действий.
Введение………………………………………………………………………….3
Основы Matlab.……………………………………………………………………4
Описание метода вращений…………………………………………………….5
Решение задачи…………………………………………………………………...9
Заключение ………………………………………………………………………11
Библиографический список………………………………………………….….12
КУРСОВАЯ РАБОТА
По дисциплине : «Вычислительная математика»
на тему: «Метод вращений решения СЛАУ в пакете Matlab»
Выполнил студент группы
Дата «___» «___________» 2012г.
Проверил:
____________________
_____________________________
Содержание
Введение…………………………………………………………
Основы Matlab.…………………………………………
Описание метода вращений…………………………………………………….5
Решение задачи………………………………………………………………
Заключение ………………………………………………………………………11
Библиографический список………………………………………………….….12
Введение
Все методы решения линейных алгебраических задач можно разбить на два класса: прямые и итерационные. Прямые методы – это такие методы, которые приводят к решению за конечное число арифметических операций. Если операции реализуются точно, то и решение также будет точным (в связи с чем к классу прямых методов применяют название точные методы). Итерационные методы – это методы в которых точное решение может быть получено лишь в результате бесконечного повторения единообразных действий.
Эффективность способов решения системы
или
иначе, векторно-матричных уравнений Ах=f, где f=(f1, f2, …,fn) – вектор свободных членов и
х=( х1, х2, …,хn) – вектор неизвестных, а – вещественная n×n-матрица коэффициентов данной системы, во многом зависит от структуры и свойств матрицы А : размера, обусловленности, симметричности, заполненности и др.
Как и в методе Гаусса, цель прямого хода преобразований в этом методе – приведение системы к треугольному виду последовательным обнулением поддиагональных элементов сначала первого столбца, затем второго и т.д.
Пусть с1 и s1 – некоторые отличные от нуля числа. Умножим первое уравнение исходной системы (1) на с1, второе на s1 и сложим их; полученным уравнением заменим первое уравнение системы. Затем первое уравнение исходной системы умножаем на –s1, второе – на c1 и результатом их сложения заменим второе уравнение. Таким образом, первые два уравнения (1) заменяются уравнениями
1) =0
- условие исключения X1 из второго уравнения
2) c12 + s12 = 1
- условие нормировки.
Отсюда .
Эти числа можно интерпретировать как косинус и синус некоторого угла (отсюда название метод вращений, каждый шаг такого преобразования можно рассматривать как вращение расширенной матрицы системы в плоскости, определяемой индексами обнуляемого индекса).
В результате преобразований получим систему
где
Далее первое уравнение системы заменяется новым, полученным сложением результатов умножения первого и третьего уравнений соответственно на
а третье – уравнением, полученным при сложении результатов умножения тех же уравнений соответственно на –s2 и с2. Получим систему
где
Выполнив преобразование m-1 раз, придем к системе
Вид полученной системы такой же, как после первого этапа преобразований методом Гаусса. Эта система обладает следующим свойством: длина любого вектора-столбца (эвклидова норма) расширенной матрицы остается такой же, как у исходной матрицы. Следовательно, при выполнении преобразований не наблюдается рост элементов.
Далее по этому же алгоритму преобразуется матрица
и т.д.
В результате m-1 этапов прямого хода система будет приведена к треугольному виду.
Нахождение неизвестных не отличается от обратного хода метода Гаусса.
Треугольная,
точнее, трапециевидная структура последней
системы позволяет
Всего метод вращения требует примерно 4/3m3 операций умножения и деления, плюс 2/3m3 операций сложения. По причине того что операция сложения выполняется намного быстрее, чем умножения и деления, то обычно ограничиваются подсчетом последних.
Решение СЛАУ методом вращений
Решить систему:
0.1х1 + 2х2 – 10х3 = 0.6,
0.3х1 + 6.01х2 – 25х3 = 1.852,
0.4х1 + 8.06х2 + 10.001х3 = 2.91201
%Тело подпрограммы :
function x=rotation(MASS,n)
%Прямой ход методом вращений :
for i=2:n-1
for j=i+1:n
a=MASS(i,i);
b=MASS(j,i);
c=a/sqrt(a^2+b^2);
s=b/sqrt(a^2+b^2);
for k=i:n+1
t=MASS(i,k);
MASS(i,k)=(c*MASS(i,k)+s*MASS(
MASS(j,k)=(-s*t+c*MASS(j,k));
end
end
end
%Отобразим полученную матрицу :
vpa(MASS,10)
%Обратный ход :
x=zeros(n,1);
x(n)=MASS(n,n+1)/MASS(n,n);
for i=1:n-1
summ=0;k=n-i;
for j=k+1:n
summ=summ+MASS(k,j)*x(j);
end
summ=MASS(k,n+1)-summ;
if MASS(k,k)==0
disp('Negative');
else x(k)=summ/MASS(k,k);
end
end
%Выводим неизвестный вектор x
vpa(x,10)
%Тело программы :
%Решение СЛАУ методом вращений.
%Зададим размерность матрицы
n=3;
%Создадим матрицу состоящую из коэффициентов
MASS=[0.1 2 -10 0.6;0.3 6.01 -25 1.852;0.4 8.06 10.001 2.9120]
MASS =
0.1000 2.0000 -10.0000 0.6000
0.3000 6.0100 -25.0000 1.8520
0.4000 8.0600 10.0010 2.9120
rotation(MASS,n)
0.5099019513 10.2509903858 -8.8244416110 3.4916595156
0 0.0299358287 27.3026063815 0.2790132296
0 0 1.3103112486 0.0131031123
2.9999986927
0.2000000652
0.0099999999
ans =
2.9999
0.2000
0.0099
Точное решение данной СЛАУ : x=[3; 0,2; 0,01]
Следовательно, погрешность решения данной СЛАУ методом вращений составляет : E=[1,3079*10-6; -6,519*10-8; 6,8998*10-12]
Ответ : x1=3+/-1,3079*10-6;
X2=0,2+/-6,519*10-8;
X3=0,01+/-6,8998*10-12;
Заключение
В данной работе был рассмотрен метод вращения для решения систем линейных алгебраических уравнений. Была подробно рассмотрена теоретическая часть, из которой выводятся различные формулы для реализации данного метода. А также было выполнено сравнение метода вращения с методом Гаусса.
По результатам работы можно сделать следующие выводы. Во-первых данный метод не допускает большого роста элементов в процессе преобразований и как следствие численно более устойчив. Не возникает опасности, что результат не поместится в разрядной сетке той или иной вычислительной машины.
Данный метод удобен для решения систем линейных алгебраических уравнений. По ходу работы мы познакомились с некоторыми подпрограммами пакета Matlab, которые были необходимы для решения данной задачи. Улучшили навыки программирования в данной среде.
Библиографический список
Информация о работе Метод вращения решения СЛАУ в пакете Matlab