- •Моделирование
- •2. Точность вычислительного эксперимента
- •1. Линейное программирование
- •1.2. Графический метод решения задач лп
- •1.3 Проверка задач лп на чувствительность
- •1.4 Симплекс - метод решения задач лп
- •1.4. Симплекс-метод решения задач лп
- •1.5. Модифицированный симплекс-метод
- •Исходная таблица имеет вид
- •1.6. Транспортная задача
- •1.7. Метод потенциалов для решения тз
- •1.7.1. Нахождение предварительного плана перевозок
- •Учитывая условия баланса наличия и потребления
- •1.7.2. Проверка опорного плана на оптимальность
- •1.7.3. Корректировка плана перевозок
- •1.8. Алгоритм метода потенциалов
- •Проверим необходимое условие в опорном плане:
- •0 3 0 Таблица 1.14
- •Преобразованная матрица показана в табл. 1.25
- •Преобразованная матрица стоимостей приведена в табл. 1.28.
- •1.9. Транспортная задача в сетевой форме
- •1.10. Двойственные задачи линейного программирования
- •Легко видеть, что
- •Запишем целевую функцию для прямой задачи
- •Прямая задача:
- •Из этой таблицы находим решение двойственной пары:
- •Окончательно прямая задача имеет следующее решение:
- •2. Обработка результатов эксперимента
- •Аппроксимация гиперболической функцией
- •Аппроксимация функциональной зависимостью вида
- •Аппроксимация функциональной зависимостью вида
- •Интерполяционный многочлен Ньютона
- •Экстраполяция
- •3. Некоторые простейшие задачи нелинейной оптимизации
- •3.1. Оптимизация числа ниток в графике движения поездов
- •3.2. Управление запасами
- •Понятие о выпуклом программировании
- •В нашем примере целевая функция имеет вид
- •Проверим:
- •Решение задачи выпуклого программирования
- •Сумма реальных расходов со штрафом составит
- •Филоненков Александр Иванович
- •Математические модели и меттоды Учебное пособие
2. Точность вычислительного эксперимента
2.1. Приближенные числа
В ЭВМ срабатывают числа, которые записаны в формах с фиксированной и плавающей точками.
Десятичные числа с фиксированной точкой - это привычная нам форма записи чисел: 5; 10; 1.62 и т.д. Здесь вместо запятой ставится точка.
Как известно, множество целых чисел бесконечно. Однако ЭВМ из-за ограниченности ее разрядной сетки может оперировать лишь с некоторым конечным подмножеством этого множества. Так, для многих ЭВМ, например для микроЭВМ , целые числа лежат в диапазоне от 32768 до 32707.
При решении научно-технических задач в основном используются действительные (вещественные) числа. Для их представления используется форма с плавающей точкой. Десятичное число x в этой форме записи имеет вид
где М и P соответственно мантисса и порядок. Так число 273,9 можно записать в виде 273.9 100; - 273910-1; -2.739102; -.2739103. Последняя запись - нормализованная форма числа с плавающей точкой. Таким образом, если представить мантиссу числа в виде M = 0.a1a2a3...an , то при a1≠0 получаем нормализованную форму числа с плавающей точкой.
Подмножество действительных чисел для ЭВМ не является бесконечным: оно конечно и определяется разрядностью k, а также границами порядка P1≤P2 (P1≤P≤P2) , Можно показать, что это подмножество содержит
2(-1)(P2- P1+1)k-1+1 чисел.
Так, для микроЭВМ "Нейрон" диапазон действительных чисел
0.587747110-38 =<x<=17014121032
границы порядка P1 и P2 определяют ограниченность действительных чисел по величине, а размерность k - дискретность распределения их на числовой оси.
Например, в случае десятичных чисел при четырехразрядном представлении все значения, находящиеся в интервале между числами 0,2851 и 0.2852, представляются числом 0.2851 (при отбрасывании остальных разрядов без округления). Разность между двумя соседними значениями равна 1 последнего разряда. Числа меньше этой разности воспринимается как машинный нуль.
Таким образом, ЭВМ оперирует с приближенными значениями действительных чисел. Мерой точности приближенных чисел является погрешность.
2.2. Относительная и абсолютная погрешности
При решении задач приходится иметь дело с различными видами ошибок: ограничения, округления, исходной информация. Каждую из них можно представить в абсолютной и относительной формах.
Пусть x - истинное значение некоторой величины, а - ее известное приближение. Абсолютная погрешность равна разности истинного и известного приближения:
Относительная погрешность x определяется как отношение абсолютной погрешности к известному приближению:
Как правило, истинное значение x неизвестно, поэтому приближение задается предельной абсолютной погрешностью x:
(22)
Неравенство (22) дает возможность установить границы, в которых лежит истинное значение x:
Абсолютная и относительные погрешности соизмеримы при значениях x, близких к единице.
Пусть
x
= 0.00001 и
= 0.000008, тогда
=0.000002 и x
= 0.25.
При значениях x, намного отличающихся от единицы, абсолютная и относительная погрешности сильно различаются:
Пусть
x
= 100000 и
,
тогда lx=
100 и x
= 0.0001.
2.3. Погрешности исходной информации и ошибки ограничения
Математическая модель, принятая для описания данного процесса или явления, может внести существенные погрешности, если в ней не учтены какие-либо важные исходные данные. Исходные данные часто являются основным источником погрешностей. Это так называемые неустранимые погрешности, так как они не могут быть уменьшены исследователем ни до начала решения задачи, ни в процессе ее решения.
Задача исследователя состоит в том, чтобы проанализировать иc-ходные данные для определения их точности, стремясь к тому, чтобы все исходные данные были примерно одинаковой точности.
Например, если длина детали l измеряется линейкой с миллиметровыми делениями, то абсолютная погрешность, возникающая при измерении, не превысит 0,5 мм. В этом случае одновременно с длиной указывают границы измеряемой величины l ± 0,5 мм.
Многие числа (, l) нельзя представить в виде конечной десятичной дроби. Ряд чисел при переводе из одной системы счисления в другую становится бесконечным. Например, 1/3 - бесконечная десятичная периодическая дробь; 0.2 в десятичной системе счисления при переводе в двоичную систему счисления становится бесконечной периодической дробью 0.0011(0011). Поэтому, вычисляя с помощью ЭВМ сумму пяти чисел, каждое из которых равно 0.2 мм, мы не получим точно 1, так как ЭВМ оперирует числами в двоичной системе.
Ошибки ограничения определяются численными методами, используемыми при решении задач.
Если для вычисления значения синуса и используется степенной ряд
то, поскольку приходится ограничиваться конечным числом членов ряда, ошибка в вычислении будет определяться первым отброшенным членом ряда. Такие ошибки называются ошибкой ограничения, ибо она возникает в результате ограничения бесконечного математического процесса.
2.4. Ошибки округления
В инженерных расчетах используются в основном действительные числа, поэтому их сумма, разность, произведение и частное также являются действительными числами. Поскольку ЭВМ оперирует числами с конечным числом знаков и результат арифметической операции над вещественными числами округляется, то возникают ошибки округления.
Напомним, что действительное число с плавающей точкой мы рассматриваем в нормализованном виде, т.е. в виде правильной дроби, называемой мантиссой, умноженной на целую степень 10, называемую порядком:
Х=±М10±Р, здесь М - мантисса, р - порядок:
0,1≤М<1.
При выполнении сложения или вычитания ЭВМ выравнивает порядки, т.е. сдвигает мантиссу меньшего по абсолютной величине числа вправо или влево на столько порядков, на сколько пришлось увеличить или уменьшить порядок меньшего числа:
123 • 103 + 0,453 • 101 = 0.123 • 103 + 0.00453 • 103 - 0.12753 • 103.
Положим, что мантисса может быть представлена только тремя значащими цифрами. Представим полученную сумму в виде суммы двух вещественных чисел:
0.12753 • 103 = 0,127 • 103 + 0.53 • 100.
Результат любого из четырех арифметических действий можно представить в общем виде:
x = ±M • 10±Р + • 10Р-t,
где 0,1≤М<1; 0≤<1; t - число значащих цифр в мантиссе (значащими цифрами называют цифры, отличные от нуля). Существуют два способа округления результата арифметических операций:
1) просто приравнивают к нулю;
2) к М прибавляется единица младшего разряда, если по абсолютной величине больше или равно 0,5; если //<0.5, то М остается без изменения.
Рассмотрим ошибку, появившуюся при первом и втором способах округления. При первом способе округления величина относительной погрешности будет
т.е. при этом способе округления относительная погрешность не зависит от полученного результата, а определяется количеством значащих цифр в ячейке память ЭВМ.
При втором способе округленный результат записывается следую- щим образом:
В этом случае абсолютная погрешность не превышает 0,5 • 10p-t, а относительная - не будет превышать
Таким образом, во втором случае предельная ошибка округления меньше в два раза.
Как правило, известен лишь верхний предел возможной ошибки, поэтому при анализе точности вычисления на ЭВМ следует предполагать наихудший вариант: ошибки округления своему верхнему пределу.
2.5. Движение ошибок вычислительного процесса
В результат выполнения арифметических операций входит ошибка округления, и она должна учитываться при анализе результатов дальнейших арифметических действий, выполняемых на ЭВМ.
Рассмотрим абсолютную и относительную погрешности каждой из четырех арифметических операций. Пусть числа x и y представлены так:
Абсолютная погрешность суммы
Lx+y=lx+ly
Аналогично запишем абсолютную погрешность разности;
Lx-y=lx-ly
При умножении
Величиной lxly можно пренебречь в силу ее малости по сравнению с другими слагаемыми, тогда абсолютная погрешность произведения будет
Запишем абсолютную погрешность частного, опуская преобразование:
а затем относительные погрешности каждой из арифметических операций
Эти
формулы дают возможность проследить
распространение ошибок. Абсолютные и
относительные погрешности каждого из
четырех действий можно рассматривать
как функции приближенных значений
исходных операндов
и их ошибок lx,
ly,x,y.
Ошибка округления в данной арифметической
операции не учитывается и ее следует
прибавлять к погрешности арифметической
операции.
Пример.
Вычислить
u = ((x+y)z+v)w,
где x,y,z,v,w - исходные числа, данные точно.
Вначале сложим числа x и y. Относительная погрешность суммы определится ошибкой округления и не должна превышать при втором
способе 0,510-t+1, где t - число значащих цифр в мантиссе:
Далее
по условию
Следя за движением ошибки, получим
здесь k2 - ошибка определения, возникающая при прибавлении V:
Так как v = 0 по условию, то
Окончательно запишем:
Окончательная погрешность v возникла из-за ошибки округления в каждой из арифметических операций.
2.6. Граф вычислительного процесса
Существует более удобный способ анализа распространения ошибки в арифметических операциях. Последовательность операций в арифметическом выражении изображается с помощью так называемого графа [17].
Около стрелок графа пишутся, коэффициенты, позволяющие легко определить общую погрешность результата.
Граф следует читать снизу вверх, причем сначала выполняются операции одного горизонтального уровня.
Коэффициенты у стрелок пишутся по определенным правилам.
Если складываются два числа a и b, то у двух стрелок, входящих в кружок сложения, коэффициенты будут a/(a+b) и b/(a+b), как показано на рис. 6.
Аналогично при вычитании a/(a-b) и b/(a-b) получим граф, изображенный на рис. 7.
При умножении стрелки получают коэффициенты +1 (рис. 8).
Рис. 8
При делении a/b стрелка, идущая от числа a, снабжается коэффициентом +1, а идущая от числа b - коэффициентом -1 (рис. 9)
Рис. 9
Смысл этих коэффициентов таков: относительная ошибка результата любой операции (кружка) входит в результат следующей операции, умножаясь на коэффициент у стрелки, соединяющий эти две операции.
Г
раф
вычислительного процесса u=((x+y)z+v)w
показан на рис.10.
Рис. 10
Здесь принято обозначение m=(x+y)z.
Рекомендации для построения графа вычислительного процесса [17]:
При сложении и вычитании длинной последовательности чисел арифметические операции начинают с наименьших чисел.
Преобразуя формулы, следует избегать вычитания двух приблизительно равных друг другу чисел.
Следует по возможности уменьшить число выполняемых операций, ограничившись необходимым минимумом их.
2.7. Устойчивость. Корректность. Сходимость
Устойчивость. Рассмотрим погрешности исходных данных. Как показано выше, эти погрешности неустранимы и исследователь не может с ними бороться. Тем не менее нужно иметь представление об их влиянии на точность окончательных результатов. Некоторые задачи весьма чувствительны к неточностям в исходных данных. Эта чувствительность характеризуется так называемой устойчивостью. Пусть в результате решения задачи по исходному значению величины x находится значение искомой величины y. Если исходная величина имеет абсолютную погрешность x, то решение имеет погрешность y. Задача называется у с т о й ч и в о й по исходному параметру x, если решение y непрерывно от него зависит, т.е. малые приращения исходной величины приводят к малым погрешностям в результате расчетов.
Отсутствие устойчивости означает, что даже незначительные погрешности в исходных данных приводят к большим погрешностям в решении или вовсе к невероятному результату. О таких неустойчивых задачах также говорят, что они чувствительны к погрешностям исходных данных.
Рассмотрим пример, приводимый Уилкинсоном [16]:
P(x)=(x-1)(x-2)(x-3)…(x-20)=x20-210x19+…
Очевидно, что корнями этого многочлена будут X1=1; X2=2, …,X20=20
Пусть один из коэффициентов вычислен с очень малой погрешностью, скажем, коэффициент - 210 увеличим на 2-23 (около 10-7). В результате вычислений даже с точностью до 11 значащих цифр получим такие корни:
-
X1
1.00
X9=8.92;
X2
2.00
X10,11=10.10.644 i ;
X3
3.00
X12,13=11.81.65 i ;
X4
4.00
X14,15=14.12.52 i ;
X5
5.00
X16,17=16.7281 i ;
X6
6.00
X18,19=19.5194 i ;
X7
7.00
X20=20.8.
X8
8.01
Таким образом, изменение коэффициента - 210 при X19 на 21010-7 привело к тому, что половина корней стали комплексными.
Причина такого явления - неустойчивость самой задачи, хотя вычисление выполнено очень точно (11 разрядов), а погрешности округлений не могли привести, к таким последствиям.
Корректность. Задача называется поставленной корректно, если для любых значений исходных данных из некоторого класса ее решения существуют единственно и устойчиво по всем исходным данным.
Рассмотренный выше пример, приведенный Уилкинсоном [16], является некорректно поставленным. Применять для решения таких задач численные методы нецелесообразно.
В настоящее время развиты методы решения некоторых некорректных задач, так называемые методы регуляризации. Они основываются на замене исходной задачи корректно поставленной задачей, содержащей некоторый параметр, при стремлении которого нулю решение этой задачи переходит в решение исходной задачи.
Неустойчивость методов. Иногда при решении корректно поставленной задачи может оказаться неустойчивым метод ее решения. Например при вычислении синуса при X = 25.66 (1470° = 4 • 360° + 30°), при учете членов, ряда до 10-8, вычислениях с восемью значащими цифрами и суммировании слева направо ряда имеем sin 25.66 = 24, что не имеет смысла.
Еще один пример.
Опуская вычисления по частям и используя рекуррентные соотншения, имеем I1= 0.367879, …, I9 = - 0.00684800.
Значение интеграла I9 не может быть отрицательным, так как Х9ex-1 на отрезке [0,1] положительно. Источник погрешности округления в I9 здесь погрешность 4,4.10-7 . Однако на каждом этапе эта погрешность умножается на числа |-2|, |-3|, ... | -9, что в итоге дает 9!
Численный алгоритм {метод} называется корректным в случае существования и единственности численного решения при любых значениях исходных данных, а также в случае устойчивости это решения относительно погрешности исходных данных.
Понятие сходимости. При анализе точности вычислительного процесса одним из важных критериев является сходимость численного метода. Она означает близость получаемого численного решения к истинному решению.
