Мет.указания по лабораторным работам. Лабораторная работа 1. 3 Основы теории погрешностей 3 Лабораторная работа 2. 11 Основы теории погрешностей 11
Скачать 0.72 Mb.
|
Лабораторная работа №7.« Использование итерационных численных методов для решения СЛАУ»Цель работы: сформировать у студентов представление о итерационных численных методах решения СЛАУ, ознакомить с методом Якоби, научить использовать данные методы с использованием MatLab. Задание: Решить СЛАУ методом Якоби, как в ручную, так и в MatLab. Обеспечить точность нахождения корней на уровне =10-4. Варианты заданий:
Теоретический материал: Дана система линейных алгебраических уравнений вида: Приведем СЛАУ к эквивалентному виду: , . При таком способе приведения исходной СЛАУ к эквивалентному виду метод простых итераций носит название метода Якоби. В векторно-матричной форме . В качестве нулевого приближения вектора неизвестных примем вектор правых частей или . Тогда итерационный процесс будет иметь вид: Достаточным условием сходимости является диагональное преобладание матрицы , т.е. (для каждой строки матрицы модули элементов, стоящих на главной диагонали, больше суммы модулей недиагональных элементов). Очевидно, что в этом случае меньше единицы и, следовательно, итерационный процесс сходится. Пример решения СЛАУ методом Якоби в MatLab : 1. Создадим М-фаил yakobi.m function X=yakobi(A,B,X0,delta,Imax) % Итерация Якоби. % A - невырожденная матрица коэффициентов % размером n x n; % B - вектор-столбец свободных членов; % X0 - вектор-столбец начального приближения; % delta - допустимая относительная погрешность; % Imax - максимальное число итераций; % X - приближенное решение линейной системы AX = B. n=length(B); err=5*delta; X=X0; ct=0; while err>delta Xp=X; for i=1:n X(i)=(B(i)-A(i,[1:i-1,i+1:n])* Xp([1:i-1,i+1:n]))/A(i,i); end if max(abs(X0))==0 error('Следует изменить начальное приближение') break end err=max(abs(X-Xp))/max(abs(X0)); ct=ct+1; Xe(ct,:)=[X' err]; if ct>Imax error('Требуемое число итераций слишком велико') break end end Xe ct 2. Далее в командной строке последовательно набираем команды, приведенные ниже. A=[ 2 -1 1; 4 -6 1; -2 1 8]; B=[2; -4; 16]; X0=[1; 2; 2]; X=yakobi(A,B,X0,1e-5,1e2) Первая из них задает матрицу коэффициентов А размером 3 на 3, вторая – вектор-столбец свободных членов В размером 3 на 1, третья – вектор-столбец начального приближения Х0 размером 3 на 1 и четвертая осуществляет запуск итерационного процесса Якоби с заданными параметрами. 3. Полученные результаты будут представлены на экране монитора в следующем виде: Xe = 1.0000 1.6667 2.0000 0.1667 0.8333 1.6667 2.0417 0.0833 0.8125 1.5625 2.0000 0.0521 0.7813 1.5417 2.0078 0.0156 0.7669 1.5221 2.0026 0.0098 0.7598 1.5117 2.0015 0.0052 0.7551 1.5068 2.0010 0.0025 0.7529 1.5036 2.0004 0.0016 0.7516 1.5020 2.0003 0.0008 0.7509 1.5011 2.0001 0.0005 0.7505 1.5006 2.0001 0.0002 0.7503 1.5003 2.0000 0.0001 0.7501 1.5002 2.0000 0.0001 0.7501 1.5001 2.0000 0.0000 0.7500 1.5001 2.0000 0.0000 0.7500 1.5000 2.0000 0.0000 0.7500 1.5000 2.0000 0.0000 ct =17 X = 0.7500 1.5000 2.0000 где первые три столбца матрицы Хе представляют собой приближения переменных х1, х2, х3 к решению, четвертый столбец – погрешности приближений, ct – число итераций, Х – вектор результата. Таким образом, решение системы с относительной погрешностью 10-5 и с использованием начального приближения х(0) = [1, 2, 2] методом Якоби было получено за 17 итераций. Содержание отчета: 1. Титульный лист. 2. Цель лабораторной работы. 3. Исходные данные, указываемые в задании и необходимые для достижения поставленной цели. 4. Расчетная часть: описание выполнения задания в среде MatLab. 5. Выводы и анализ полученных результатов. Контрольные вопросы: Суть метода Якоби? В каких случаях возможно решение систем уравнений методом Якоби? С помощью, какой функции в MatLab можно вычислить определитель матрицы? С помощью, какой функции в MatLab можно ввести матрицу? Что значит решить СЛАУ? |