- •§7 Решение задач линейного программирования 58
- •Предисловие
- •§ 1. Численное интегрирование
- •1. Постановка задачи.
- •2. Метод прямоугольников.
- •Задача 1.
- •Задача 2
- •4. Метод Симпсона.
- •5. Практическая работа на эвм
- •Задача 3
- •3. Метод трапеций.
- •§ 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. Транспортная задача. Варианты самостоятельных работ
- •Литература.
§ 5. Численные методы решения трансцендентных уравнений
1. Введение
Решение многих практических задач сводится к решению уравнений f(x)=0 (5.1)
где функция f(x) определена и непрерывна на некотором интервале. Если функция f(x) представляет собой многочлен, то уравнение (5.1) называется алгебраическим; если же в функцию f(x) входят трансцендентные (тригонометрические, логарифмические, показательные и т.д.) функции, то уравнение (5.1) называется трансцендентным.
Алгебраические уравнения, которые рассматриваются в школе, решаются или аналитически (с помощью формул для уравнений не выше 4 степени), либо графически. Для решения алгебраических уравнений любой степени, трансцендентных уравнений разработаны численные методы. Решение уравнения (5.1) разбивается на 2 этапа:
отделение корней, т.е. отыскание достаточно малых областей, в каждой из которых заключен один и только один корень уравнения;
вычисление выделенного корня с заданной точностью.
Для вычисления выделенного (изолированного) корня существует множество методов: метод половинного деления, метод итераций, метод Ньютона и т.д.
Пример 1.
Решить уравнение: cos x = 2x
Из рис. 5.1 видно, что наше уравнение имеет единственный корень, принадлежащий отрезку [0; 1]. Когда мы находим отрезок, внутри которого расположен корень, то этот этап решения называется этапом отделения корня.
Рис. 5.1
Теорема
Е
Рис 5.2
Д
ействительно,
функция f(x)=2x-cos x в точках x=0 и x=1 имеет
разные знаки и возрастает на отрезке
[0, 1]: f(0)=(20
- cos 0)=0-1=-1 <0; f(1)=(21
- cos 1)2-(0,5)
1,5
>0
Действительно, если f(a)<0 f(b)>0 (или наоборот), то непрерывная функция f(x) обязательно хотя бы 1 раз пересекает ось абсцисс (а иногда несколько раз, рис. 5.3).
О
Рис 5.3
Для уточнения корней используют несколько различных методов (метод деления отрезка пополам, метод хорд, метод касательных). Рассмотрим метод деления отрезка пополам.
2. Метод половинного деления
Р
азделим
отрезок [a; b] пополам (рис. 5.4) и положим
x0=(a+b)/2. Из двух полученных отрезков
[a, x0] и [x0, b] выбираем тот, на
концах которого функция f(x) имеет
противоположные знаки. Полученный
отрезок снова делим пополам и приводим
те же рассуждения. Процесс продолжаем
до тех пор, пока длина отрезка, на концах
которого функция имеет противоположные
знаки, не будет меньше заданного ,
любую точку отрезка можно с точностью
принять за корень
уравнения f(x)=0.
Алгоритм отделения корней
Алгоритм уточнения корней
Рис 5.6
3. Практическая работа на эвм.
Составить программу отделения корней для функции F(x)=x2+1,7x+1,7 (блок-схема показана на рис 5.5).
{Программа 5.1}
program otdel; {Отделение корней}
var a,b,h,x1,x2,y1,y2:real; k:integer;
function f(x:real):real;
begin f:=x*x-1.7*x-1.7; end;
begin
readln(a,b,h); k:=0; x1:=a; x2:=x1+h; y1:=f(x1);
while x2<=b do begin
y2:=f(x2);
if y1*y2<0 then begin
k:=k+1;
writeln(k,'-ый корень на отрезке
[',x1:6:2,';',x2:6:2,']');
end;
x1:=x2; x2:=x1+h; y1:=y2;
end;
readln;
end.
2. Выполните этапы отделения корней для уравнений:
1)
;
2)
; 3)
3. Составить программу для нахождения корней по методу половинного деления для функции F(x)=x2+1,7x+1,7 (блок-схема показана на рис 5.6).
{Программа 5.2}
program polovina; {Половинное деление}
var a,b,e,x:real;
function f(x:real):real;
begin f:=x*x-1.7*x-1.7; end;
begin
readln(a,b,e);
repeat
x:=(a+b)/2;
if(x)*f(b)<0 then a:=x else b:=x;
until abs(a-b)<=e
writeln('корень:',x:6:2); readln;
end.
4. Найти
корни с точностью до 0,1; 0,01; 0,001; 0,0001 для
уравнения
на
интервале [0;1].
5.
Отделите корни вручную для уравнения:
