
- •§7 Решение задач линейного программирования 58
- •Предисловие
- •§ 1. Численное интегрирование
- •1. Постановка задачи.
- •2. Метод прямоугольников.
- •Задача 1.
- •Задача 2
- •Задача 3
- •3. Метод трапеций.
- •4. Метод Симпсона.
- •5. Практическая работа на эвм
- •§ 2. Решение систем линейных уравнений
- •1. О системах линейных уравнений.
- •2. Решение систем линейных уравнений с двумя неизвестными по формулам Крамера.
- •Пример 1.
- •3. Решение систем линейных уравнений с тремя неизвестными по методу Крамера.
- •4. Решение систем линейных уравнений способом Гаусса.
- •5. Практическая работа на эвм
- •2. Интерполяционный многочлен Лагранжа
- •Пример 2.
- •З Рис 3.1 адача 1.
- •Алгоритм:
- •Задача 2.
- •3. Вычисление приближенного значения функции с помощью электронных таблиц
- •Пример 3
- •Задача 3
- •§ 4. Простейшие задачи статистики
- •1. Вычисление средних.
- •2. Математическое ожидание, дисперсия, среднее квадратичное отклонение, точность оценки математического ожидания, показатель достоверности вычисления математического ожидания
- •3. Практическая работа на эвм
- •§ 5. Численные методы решения трансцендентных уравнений
- •1. Введение
- •Пример 1.
- •Теорема
- •2. Метод половинного деления
- •Алгоритм отделения корней
- •Алгоритм уточнения корней
- •3. Практическая работа на эвм.
- •4. Лабораторная работа
- •Ход работы
- •§6 Численные методы решения дифференциальных уравнений
- •1. О некоторых задачах приводящих к дифференциальным уравнениям Задача 1
- •Задача 2
- •Задача 3
- •2. Несколько определений
- •Пример 1
- •Пример 2
- •Задачи для самостоятельного решения.
- •3. Постановка задачи численного решения дифференциального уравнения
- •4. Метод Эйлера.
- •Пример 1
- •Пример 2
- •5. Метод Рунге-Кутта второго порядка (Метод Эйлера-Коши)
- •6. Метод Рунге-Кутта 4 порядка
- •7. Лабораторная работа. Численное решение обыкновенного дифференциального уравнения первого порядка
- •§7 Решение задач линейного программирования
- •1. Введение
- •2. Основные методы решения задач оптимизации
- •Общий случай задачи оптимизации
- •Задачи оптимизации, алгоритмы которых могут быть реализованы с помощью электронных таблиц
- •Основные этапы работ при решении задачи оптимизации
- •4. Задачи линейного программирования. Методы решения задач.
- •Пример.
- •Основные положения симплекс-метода
- •5. Решение задач линейного программирования с помощью ms Excel Пример 1
- •Решение:
- •Решение задачи
- •Пример 2
- •Решение:
- •6. Практическая работа 1
- •7. Транспортная задача Введение
- •Решение
- •Решение:
- •Составление математической модели
- •Решение задачи
- •8. Практическая работа 2
- •Приложения Приложение 1. Численное интегрирование. Варианты самостоятельных работ
- •Приложение 2. Численное интерполирование. Варианты самостоятельных работ
- •Приложение 3. Численное дифференцирование. Варианты лабораторных работ
- •Приложение 4. Задачи оптимизации. Варианты самостоятельных работ
- •Приложение 5. Транспортная задача. Варианты самостоятельных работ
- •Литература.
4. Решение систем линейных уравнений способом Гаусса.
Метод Гаусса для практических вычислений значительно удобнее, чем формулы Крамера. Казалось бы, формулы Крамера дают возможность легко вычислить значения неизвестных и получить решение системы. В принципе это так, но на практике дело осложняется тем, что для отыскания решения системы по формулам Крамера требуется выполнить чрезмерно много вычислений. Установлено, что для отыскания решения системы n уравнений по формулам Крамера требуется произвести N=(n2-1)n!+n одних только умножений и делений. Приведем таблицу, указывающую число арифметических действий при решении систем по формулам Крамера и способом Гаусса.
n |
в случае применения формулы Крамера |
в случае применения способа Гаусса |
2 |
8 |
6 |
3 |
51 |
17 |
4 |
364 |
36 |
5 |
2885 |
65 |
10 |
360106 |
430 |
50 |
761066 |
44150 |
Метод Гаусса (метод последовательного исключения неизвестных) имеет много разных вычислительных схем. Рассмотрим схему единственного деления. Суть метода Гаусса состоит в следующем.
Пусть дана система линейных уравнений с тремя неизвестными:
(2.5)
Система путем последовательного исключения неизвестных приводится к системе с треугольной матрицей, из которой затем определяются значения неизвестных. Рассмотрим процесс исключения неизвестных. Пусть a11<>0. Разделим первое уравнение на a11 . Затем из каждого i-го (i>=2) уравнения вычтем полученное после деления первое, умноженное на ai1. Получим систему:
(2.6)
где
(2.7)
В
результате этих преобразований
неизвестное x1 оказалось исключенным
из всех уравнений, кроме первого.
Рассмотрим теперь систему (2.6). Пусть
.
Разделим второе уравнение на
.
Затем из каждого i-го (i
3) уравнения вычтем полученное второе,
умноженное на
.
Получим систему, в которой неизвестное
x2, будет исключено из всех уравнений,
кроме 1-го и 2-го. Продолжая аналогичным
образом процесс, в итоге получим систему
вида:
(2.8)
Коэффициенты системы (2.8) можно представить в виде треугольной матрицы с единичной главной диагональю. Из системы (2.8) легко определяются значения неизвестных. Из последнего уравнения сразу определяется x3. Подставляя x3 в предпоследнее уравнение, находим x2. Аналогично находим x1. Приведение системы (2.5) к виду (2.8) называется прямым ходом метода Гаусса. Определение значений неизвестных из системы (2.8) называется обратным ходом метода Гаусса. Если на каком-то шаге на главной диагонали окажется нулевой элемент, то необходимо произвести перестановку строк.
Пример 3. Решить систему уравнений по методу Гаусса.
Решение.
1. Уравнение (1) разделим на a11, т.е. на 2, получим уравнение 4.
2. Умножим полученное уравнение (4) на a21, т.е. на 1, получим уравнение (5).
3. Вычтем из уравнений (2) и (3) уравнение (5), получим уравнения (6) и (7).
6. Уравнение (6) разделим
на a22 , т.е. на
,
получим уравнение (8).
7. Умножим уравнение
(8) на a32 , т.е. на
,
получим уравнение (9).
8. Вычтем из уравнения (7) уравнение (9) получим уравнение (10).
9. Итак, прямой ход закончен, начинаем обратный ход. Подставим (10) в уравнение (8), получим x2=2 (11)
10. Подставим (11) и (10) в уравнение (5), получим: x1=1 (12)
Ответ: x1=1; x2=2; x3=3
{Программа 2.3}
program GAUS; {Метод Гаусса для системы }
{уравнений с тремя неизвестными}
VAR A:array[1..3,1..3] of real;
D,B,X:ARRAY[1..3] OF REAL;
m,s:real; i,j,k:integer;
begin
for i:=1 to 3 do
for j:=1 to 3 do read(a[i,j]);
readln;
for i:=1 to 3 do readln(b[i]);
{Исключение неизвестных}
for k:=1 to 2 do
for i:=k+1 to 3 do
begin
m:=a[i,k]/a[k,k];
for j:=k+1 to 3 do
a[i,j]:=a[i,j]-m*a[k,j]; b[i]:=b[i]-m*b[k];
end;
{Обратная подстановка}
x[3]:=b[3]/a[3,3];
for i:=2 downto 1 do
begin
s:=0;
for j:=i+1 to 3 do s:=s+a[i,j]*x[j];
x[i]:=(b[i]-s)/a[i,i];
end;
for i:=1 to 3 do
writeln('x',i,'=',x[i]);
end.