- •Содержание
- •Лекция № 1. Теория погрешностей План
- •1.1. Источники и классификация погрешностей
- •1.2. Абсолютная и относительная погрешности. Формы записи данных
- •1.3. Вычислительная погрешность
- •2.1. Общие сведения и определения
- •2.2. Отделение корней
- •2.3. Метод половинного деления
- •2.4. Метод простой итерации
- •2.5. Преобразование уравнения к итерационному виду
- •2 0.777373 -3.32063 Search
- •Лекция № 3. Методы решения систем линейных алгебраических уравнений План
- •3.1. Общие сведения и основные определения
- •3.2. Метод Гаусса и его реализация в пакете matlab
- •3.3. Вычисление определителей
- •3.4. Решение систем линейных уравнений методом простой итерации
- •5. Метод Зейделя
- •3.6. Решение систем линейных уравнений средствами пакета matlab
- •Выражения
- •Лекция № 4. Методы решения систем нелинейных уравнений
- •4.2. Метод Ньютона решения систем нелинейных уравнений
- •Последовательные приближения корней
- •4.3. Решение нелинейных систем методами спуска
- •4.4. Решение систем нелинейных уравнений средствами пакета matlab
- •Iteration Func-count f(X) step optimality cg-iterations
- •Iteration Func-count f(X) step optimality cg-iterations
- •Лекция № 5. Интерполирование функций План
- •5.1. Постановка задачи
- •Решение задачи находится отысканием некоторой приближающей функции f(X), близкой в некотором смысле к функции f(X), для которой известно аналитическое выражение/
- •5.2. Интерполяционный полином Лагранжа
- •5.3. Интерполяционный полином Ньютона для равноотстоящих узлов
- •5.3.1. Конечные разности
- •5.3.2. Первая интерполяционная формула Ньютона
- •5.3.3. Вторая интерполяционная формула Ньютона
- •5.4. Погрешность интерполяции
- •5.5. Сплайн-интерполяция
- •5.6. Решение задачи одномерной интерполяции средствами пакете matlab
- •Лекция № 6. Численное дифференцирование
- •6.2. Особенности задачи численного дифференцирования функций, заданных таблично
- •6.3. Интегрирование функций, заданных аналитически (формула прямоугольников, формула трапеций, формула Симпсона)
- •6.4. Погрешность численного интегрирования
- •6.5. Вычисление интегралов методом Монте-Карло
- •Лекция № 7. Методы обработки экспериментальных данных План
- •7.1. Метод наименьших квадратов
- •Сумма квадратов отклонений
- •7.2. Нахождение приближающей функции в виде линейной функции и квадратичного трехчлена
- •7.5. Аппроксимация функцией произвольного вида
- •Лекция № 8. Преобразование Фурье
- •8.2. Эффект Гиббса
- •8.3. Спектральный анализ дискретных функций конечной длительности
- •8.4. Быстрое преобразование Фурье
- •Лекция № 9. Численные методы решения обыкновенных дифференциальных уравнений План
- •9.1. Основные сведения и определения
- •9.2. Метод Пикара
- •9.3. Метод Эйлера
- •9.4. Метод Рунге-Кутта
- •9.5. Средства пакета matlab для решения обыкновенных дифференциальных уравнений
Лекция № 3. Методы решения систем линейных алгебраических уравнений План
3.1. Общие сведения и основные определения
3.2. Метод Гаусса и его реализация в пакете MATLAB
3.3. Вычисление определителей
3.4. Метод простой итерации. Достаточные условия сходимости итерационного процесса
3.5. Решение систем линейных уравнений методом Зейделя
3.6. Решение систем линейных уравнений средствами пакета MATLAB
3.1. Общие сведения и основные определения
Рассмотрим систему, состоящую из m линейных алгебраических уравнений с n неизвестными:
(3.1)
которая может быть записана в матричном виде
, (3.2)
где А прямоугольная матрица размерности mn
, (3.3)
x вектор n-го порядка
,
b вектор m-порядка
.
Определение 3.1. Решением системы (3.1) называется такая упорядоченная совокупность чисел ,, …,, которая обращает все уравнения системы (3.1) в верные равенства.
Определение 3.2. Прямыми методами решения систем линейных уравнений называются методы, дающие решение системы за конечное число арифметических операций. Если отсутствуют ошибки округления, то получаемые решения всегда являются точными.
Определение 3.3. Итерационными методами решения систем линейных называются методы, дающие решение системы уравнений как предел последовательности приближений, вычисляемых по единообразной схеме.
3.2. Метод Гаусса и его реализация в пакете matlab
Рассмотрим систему линейных алгебраических уравнений
(3.4)
при условии, что матрица A=(aij) невырождена.
Метод Гаусса состоит в преобразовании системы (3.4) последовательным исключением переменных к равносильной системе с треугольной матрицей
(3.5)
Затем из системы (3.5) последовательно находят значения всех неизвестных .
Т.о., процесс решения системы (3.4) распадается на два этапа:
1. Прямой ход приведение системы (3.4) к треугольному виду.
2. Обратный ход нахождение значений неизвестных переменных, в соответствие с (3.5).
Для реализации метод Гаусса в пакете MATLAB необходимо:
1. Создать файл Exchange.m, содержащий описание функции,осуществляющей перестановку строк при обнаружении в текущей строке нулевого элемента на главной диагонали.
% листинг файла Exchange.m
function z=Exchange(C,i)
k=i+1;
while C(k,i)==0
k=k+1;
end;
for j=1:size(C,1)
s=C(i,j);
C(i,j)=C(k,j);
C(k,j)=s;
end;
z=C;
2. Создание файла Simplex.m, содержащего описание функции, возвращающей расширенную матрицу системы к диагональному виду
% листинг файла Simplex.m
function z=Simplex(A,b)
N=size(A,1); % определение числа уравнений системы
C=cat(2,A,b); % создание расширенной матрицы системы
for i=1:N-1
if C(i,i)==0
C=Exchange(C,i);
end;
for j=0:N
C(i,N+1-j)=C(i,N+1-j)/C(i,i);
end;
for m=i+1:N
alpha=C(m,i);
for j=i:N+1
C(m,j)=C(m,j)-alpha*C(i,j);
end;
end;
end;
C(N,N+1)=C(N,N+1)/C(N,N);
C(N,N)=1;
z=C;
3. Создать файл Gauss.m, содержащий описание функции, возвращающей решение системы линейных уравнений методом Гаусса.
% листинг файла Gauss.m
function z=Gauss(A,b)
C=Simplex(A,b);
N=size(A,1);
v(N)=C(N,N+1);
for j=1:N-1
s=0;
for k=0:j-1
s=s+C(N-j,N-k)*v(N-k);
end;
v(N-j)=(C(N-j,N+1)-s)/C(N-j,N-j);
end;
z=v';
4. Задать матрицу системы линейных уравнений
>> A=[1,2,3,4,5;10,9,8,7,6;5,9,11,12,13;20,1,3,17,14;12,10,4,16,15]
A =
1 2 3 4 5
10 9 8 7 6
5 9 11 12 13
20 1 3 17 14
12 10 4 16 15
5. Задать вектор-столбец свободных членов
>> b=[10;20;30;40;50]
b =
10.0000
20.0000
30.0000
40.0000
50.0000
6. Решить систему уравнений, используя функцию Gauss( )
x=Gauss(A,b)
x =
0.0964
1.4324
-1.3530
1.6593
0.8921
7. Проверка правильности решения системы линейных уравнений
>> A*x
ans =
10.0000
20.0000
30.0000
40.0000
50.0000