
- •1. Погрешности и их классификация
- •2. Приближенные числа и действия с ними.
- •Правила записи приближенных чисел.
- •Округление чисел
- •3. Уменьшение погрешностей
- •4. Устойчивость. Корректность. Сходимость.
- •5. Вычисление значений функций. Вычисление значений многочлена. Схема Горнера.
- •Вычисление значений рациональных дробей
- •Приближенное нахождение сумм числовых рядов.
- •Вычисление значений аналитической функции
- •Вычисление значений показательной функции
- •Вычисление значений логарифмической функции
- •Вычисление значений синуса и косинуса.
- •Вычисление значений гиперболического синуса
- •Вычисление значений гиперболического косинуса.
- •Применение метода итерации для приближенного вычисления значений функции
- •Вычисление квадратного корня
- •6. Приближение функций При решении задач постоянно встречается необходимость замены одной функции некоторой другой функцией .
- •6.1.2. Равномерное приближение.
- •6.2. Многочлены Тейлора.
- •6.3. Интерполяционный многочлен Лагранжа.
- •6.4. Линейная интерполяция.
- •7. Минимизация погрешности интерполяции. Многочлены Чебышева.
- •8. Интерполяция с равноотстоящими узлами.
- •9. Конечные и разделенные разности.
- •10.Интерполяционный многочлен Ньютона.
- •11. Интерполирование сплайнами.
- •12. Численное дифференцирование.
- •Погрешность численного дифференцирования.
- •13. Численное интегрирование.
- •Для удобства в вычислениях вместо дробных индексов вводят целочисленные, т.Е.
- •И формула Симпсона принимает вид
- •Еще одной формулой численного интегрирования является следующая, которая называется формулой Ньютона:
- •Остаточный член имеет вид
- •В последней формуле число узлов обязательно равно .
- •Особые случаи численного интегрирования.
- •Применение метода Монте-Карло к вычислению определенных и кратных интегралов.)
- •Приближенное решение алгебраических и трансцендентных уравнений. Отделение корней.
- •Теорема об оценке погрешности приближенного корня.
- •Графическое решение уравнений.
- •Метод половинного деления (дихотомия).
- •Метод хорд (метод пропорциональных частей)
- •Метод Ньютона (метод касательных).
- •Видоизмененный (упрощенный) метод Ньютона.
- •Комбинированный метод (хорд и касательных).
- •Метод итераций
- •Оценка погрешности приближения
- •15. Метод итерации для системы двух уравнений
- •Метод Гаусса.
- •Применение метода Гаусса для вычисления определителей.
- •Метод итерации для решения систем уравнений
- •Решение обыкновенных дифференциальных уравнений.
- •Так, например, уравнение
- •Является уравнением 1-го порядка.
- •В ходе поиска общего решения часто приходят к соотношению вида
- •Запишем это разложение в виде
- •Метод Эйлера с пересчетом.
- •Решение это приводим:
- •Видно, что при большом числе узлов метод Эйлера может привести к заметным погрешностям, в таких случаях предпочитают пользоваться численными методами высших порядков.
- •Метод Адамса.
3. Уменьшение погрешностей
Выше, при рассмотрении погрешностей, мы убедились, что практически любые арифметические операции приводят к увеличению погрешностей. Но в разных ситуациях это происходит по-разному. Особенно к быстрому увеличению относительной погрешности приводит вычитание близких чисел. Поэтому в алгоритмах следует избегать таких и подобных ситуаций.
Рассмотрим еще несколько примеров, показывающих источник подобных погрешностей и возможные пути их исключения в вычислениях за счет правильной организации.
а) Пусть требуется найти сумму пяти чисел:
S = 0,2764 + 0,3944 + 1,475 + 26,46 + 1364.
Простым сложением («ручным») с последующим округлением получаем S = 1393. Но при вычислении на машине округление происходит после каждого сложения. Предполагая условно сетку четырехразрядной, проследим вычисление на машине суммы чисел от наименьшего к наибольшему, т.е. в порядке их записи:
0,2764 + 0,3944 = 0,6708; 0,6708 + 1,475 = 2,156;
2,156 + 26,46 = 28,62; 28,62 + 13,64 = 1393 = S1.
Итак, получили верный результат.
Изменим теперь порядок суммирования:
1364 + 26,46 = 1390; 1390 + 1,475 = 1391;
1391 + 0,3944 = 1391; 1391 + 0,2764 = 1391 = S2.
Видим, что S1 S2.
На
данном простом примере причины потери
точности очевидны: она происходит из-за
того, что прибавления к большому числу
малых чисел не происходит, т.к. они
выходят за рамки разрядной сетки
.
Этих малых чисел может быть очень много
и в результате сложения погрешность
накапливается.
В подобных вычислениях надо соблюдать правило: сложение чисел нужно проводить по мере их возрастания. Подобного рода «маленькие хитрости» в машинной практике могут потребоваться в любой момент для улучшения алгоритма и снижения погрешностей результатов.
б) Еще один пример в продолжение предыдущего.
При
вычислении на ЭВМ значения
может оказаться, что x
<<
a,
и результатом сложения а
+ х получится
а.
В этом случае может помочь замена:
.
в) Рассмотрим следующий пример – использование рядов для вычисления значений функций. Пусть раскладывается в ряд функция sin x по степеням х:
Вычислим значение функции при х = 0,5236 (радиан), что соответствует 30. При вычислениях члены ряда, меньшие 10-4, учитывать не будем (к данному ряду применима теорема Лейбница, поэтому погрешность будет 10-4). Проведя вычисления с четырьмя верными знаками, получим
sin 0,5236 0,5236 – 0,2393 10-1 + 0,3281 10-3 = 0,500.
Из
курса высшей математики мы знаем, что
данный ряд имеет радиус сходимости
,
т.е. по этой формуле мы можем разложить
sin
x
по любому аргументу. Нам интересно ее
разложить для х
= 30
+ 360
= 390
= 6,807 (радиан). Опуская подробные вычисления,
даем результат sin
6,807
0,5493. Относительная погрешность составила
здесь около 10%, что объясняется
погрешностями округлений и способом
суммирования ряда (слева направо, без
учета величины членов).
Конечно, можно было попытаться повысить точность вычислений. Но в данном примере даже при учете членов ряда до 10-8 и вычислениях с восемью значащими цифрами при х = 25,66 (радиан) = 4·360 + 30 в результате аналогичных вычислений получается результат, не имеющий смысла: sin 25,66 24.
Поэтому в программах, использующих степенные ряды для вычисления значений функций, должны быть приняты соответствующие меры по предотвращению подобной потери точности. Так, для тригонометрических функций можно использовать формулы приведения, благодаря чему х окажется в интервале х < 1, при этом резко ускорится сходимость ряда.
В
других случаях, например, при вычислении
экспоненты аргумент х
можно разбить на сумму целой и дробной
частей:
,
где n
– целая часть х,
- ее дробная часть.
вычисляют умножением,
- разложением в ряд.
Таким образом, при организации вычислений надо стараться своевременно распознать «подводные камни» и соответствующим образом их обойти.
Разумеется, описанные выше примеры потерь точности не охватывают и малой части тех возможных ситуаций, которые встречаются в практических вычислениях. Кроме того, реальные ситуации могут оказаться и значительно сложнее описанных случаев.