Файл: Лабораторная работа 1. 3 Основы теории погрешностей 3 Лабораторная работа 2. 11 Основы теории погрешностей 11.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 243
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
«Решение нелинейных уравнений»
«Решение систем линейных алгебраических уравнений»
«Метод прогонки для трехдиагональных систем»
« Использование итерационных численных методов для решения СЛАУ»
« Использование итерационных численных методов для решения СЛАУ»
«Численное решение алгебраических проблем собственных значений»
«Интерполирование. Интерполяционные формулы»
Интерполяционная схема Эйткена
« Интерполирование. Интерполяционные формулы»
«Аппроксимация, построение аппроксимирующих кривых»
«Численное дифференцирование функции. Методы дифференцирования»
Х5= λ5= n5=1
Х4=δ4*Х5+ λ4= d4*Х5+ n4= 0
Х3=δ3*Х4+ λ3= d3*Х4+ n3= 1
Х2=δ2*Х3+ λ2= d2*Х3+ n2=-1
Х1=δ1*Х2+ λ1= d1*Х2+ n1=1
-
Определим невязку
>> A=[1,1,0,0,0;-1,1,-1,0,0;0,2,-2,1,0;0,0,1,-2,1;0,0,0,2,2]
>> B=[0;-3;-4;2;2]
>> X=[1;-1;1;0;1]
>> R=B-A*X
R =
0
0
0
0
0
Невязка равна нулю (т.к округлений вовремя вычислений не было) => найдено точное решение.
Содержание отчета:
1. Титульный лист.
2. Цель лабораторной работы.
3. Исходные данные, указываемые в задании и необходимые для достижения поставленной цели.
4. Расчетная часть: описание выполнения задания.
5. Выводы и анализ полученных результатов.
Контрольные вопросы:
-
Суть метода прогонки. -
В каких случаях возможно решение систем уравнений методом прогонки? -
С помощью, какой функции в MatLab можно вычислить определитель матрицы? -
С помощью, какой функции в MatLab можно ввести матрицу? -
Что значит решить СЛАУ? -
Какие матрицы называются трехдиагональными?
Лабораторная работа №7.
« Использование итерационных численных методов для решения СЛАУ»
Цель работы: сформировать у студентов представление о итерационных численных методах решения СЛАУ, ознакомить с методом Якоби, научить использовать данные методы с использованием MatLab.
Задание: Решить СЛАУ методом Якоби, как в ручную, так и в MatLab. Обеспечить точность нахождения корней на уровне =10-4.
Варианты заданий:
№ варианта | Система уравнений |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Теоретический материал:
Дана система линейных алгебраических уравнений вида:
Приведем СЛАУ к эквивалентному виду:
, .
При таком способе приведения исходной СЛАУ к эквивалентному виду метод простых итераций носит название метода Якоби.
В векторно-матричной форме
.
В качестве нулевого приближения вектора неизвестных примем вектор правых частей или . Тогда итерационный процесс будет иметь вид:
Достаточным условием сходимости является диагональное преобладание матрицы , т.е. (для каждой строки матрицы модули элементов, стоящих на главной диагонали, больше суммы модулей недиагональных элементов). Очевидно, что в этом случае меньше единицы и, следовательно, итерационный процесс сходится.
Пример решения СЛАУ методом Якоби в 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 можно ввести матрицу? -
Что значит решить СЛАУ?
Лабораторная работа №8.
« Использование итерационных численных методов для решения СЛАУ»
Цель: сформировать у студентов представление о итерационных численных методах решения СЛАУ, ознакомить с методом Зейделя, научить использовать данные методы с использованием MatLab.
Задание:
-
Найти для матрицы коэффициентов число обусловленности и оценить близость матрицы к вырожденной. -
Решить СЛАУ методом Зейделя, как в ручную, так и в MatLab. Обеспечить точность нахождения корней на уровне e=10-4.
Варианты задания см. в лабораторной работе №7.
Теоретический материал:
Числа обусловленности матрицы определяют чувствительность решения системы линейных уравнений к погрешностям исходных данных. Следующие функции MatLab позволяют найти числа обусловленности матриц.
-
cond(X) — возвращает число обусловленности, основанное на второй норме, то есть отношение самого большого сингулярного числа X к самому малому. Значение cond(X), близкое к 1, указывает на хорошо обусловленную матрицу;
-
с = cond(X.p) — возвращает число обусловленности матрицы, основанное на р-норме: norm(X.p)*norm(inv(X),p), где р определяет способ расчета:-
р=1 — число обусловленности матрицы, основанное на первой норме(т. е. самую большую из сумм абсолютных значений элементов матрицы по столбцам.); -
р=2 — число обусловленности матрицы, основанное на второй норме; -
p= 'fro' — число обусловленности матрицы, основанное на норме Фробе-ниуса (Frobenius) norm(A, 'fro') = sqrt(sum(diag(A'A)); -
р='inf' — число обусловленности матрицы, основанное на норме неопределенности.
-
Метод простых итераций довольно медленно сходится. Для его ускорения существует метод Зейделя, заключающийся в том, что при вычислении компонента