Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_VychMatu.doc
Скачиваний:
15
Добавлен:
20.04.2019
Размер:
1.2 Mб
Скачать

Арифметические операции над числами с плавающей точкой.

В силу ограниченности мантиссы операции сложения, вычитания, умножения и деления над представимыми в ЭВМ вещественными числами не могут быть реализованы точно. Дело в том, что арифметические операции над числами, мантиссы которых содержат t разрядов, приводят, как правило, к результатам, содержащим более t разрядов. Округление результата до t разрядов и служит главным источником погрешности. Будем обозначать машинные арифметические операции через   и т.д. Можно считать, что результат машинной арифметической операции совпадает с результатом точного выполнения той же операции с погрешностью, приближенно равной погрешности округления. Таким образом,

и т.д.

В некоторых ситуациях округление может отсутствовать. Например, умножение и деление числа на целую степень двойки выполняется на ЭВМ точно, т.к. в этом случае мантисса не меняется.

Пример. Рассмотрим гипотетическую ЭВМ, в которой числа представляются с 6 двоичными разрядами мантиссы, а округление производится по дополнению. Пусть на такой ЭВМ вычисляются сумма и произведение двух представимых на ней чисел а = 20.5 = (10100.1)2 и b = 1.75 = (1.11)2. Произведем вычисления в двоичной арифметике: a + b = (10100.1)2 + (1.11)2 = (10110.01)2 ,

ab = (10100.1)2  (1.11)2 = (100011.111)2 .

После округления до 6 значащих цифр получим a + b = (10110.1)2 = 22.5 и ab = (100011.)2 = 36. Очевидно, что эти результаты отличаются от точных значений a + b = 22.25, ab = 35.875.

Свойства машинных арифметических операций отличаются от свойств обычных математических операций. Например, не всегда выполняется известное правило арифметики "от перемены мест слагаемых сумма не меняется".

На многих вычислительных машинах возможна реализация арифметических действий над числами, разрядность мантисс которых примерно вдвое превосходит стандартную разрядность t. Это приводит к существенному повышению машинной точности (на несколько порядков). Для хранения числа с удвоенной мантиссой отводится два машинных слова. Удвоенная точность не ликвидирует ошибки округления, а только уменьшает их величину.

Вычисление машинной точности.

Для приближенного вычисления величины М удобно пользоваться следующим определением. Машинная точность – это минимальное из представимых на ЭВМ чисел , для которых 1    1. Оценить эту величину можно следующим образом: полагая (0) = 1, следует вычислить последовательно (1)  0.5(0), (2)  0.5(1), … , (п)  0.5(п-1), … , проверяя каждый раз выполнение неравенства 1М > 1. Как только при некотором п окажется, что 1М = 1, следует принять М  (п).

В последнее время в практике вычислений в качестве меры ошибки приближенного числа а* часто используют величину , объединяющую в себе свойства абсолютной и относительной погрешности. Она близка к а* при а<< 1 и практически совпадает с а* при а>> 1.

8

Методы отыскания решений нелинейных уравнений.

Пусть необходимо решить уравнение f(x)=0. (1)

В конкретной задаче часто интерес представляют не все корни уравнения, а только некоторые из них. Корень уравнения (16) называется простым, если , в противном случае корень называется кратным. Число т называется кратностью корня , если k = 1, 2, … , m-1. Задача отыскания простых корней является существенно более простой и чаще встречающейся, чем задача отыскания кратных корней. В подавляющем большинстве случаев представить решение уравнения (1) в виде конечной формулы оказывается невозможным. Даже для простейшего алгебраического уравнения п-ой степени

хп + ап-1хп-1 + … + а1 х + а0 = 0

явные формулы, выражающие его корни через коэффициенты с помощью конечного числа арифметических операций и извлечения корней степени не выше п, найдены лишь при п = 2, 3, 4.

Первым этапом в решении задачи отыскания корней нелинейного уравнения является локализация корней. Отрезок [a, b], содержащий только один корень уравнения (1), называется отрезком локализации корня. Для локализации корней широко применяют построение таблиц и графиков. Основанием для применения указанных способов служит хорошо известный факт математического анализа: если функция f непрерывна на отрезке [a, b] и принимает на его концах значения разных знаков, т.е. f(a)f(b)<0, то внутри этого отрезка существует точка, в которой данная функция равняется нулю.

Если в произвольной точке х можно вычислить не только значение f , но и ее производную f ' , эффективным методом вычисления корня является метод Ньютона-Рафсона. При этом рассчитывается последовательность xi, сходящаяся к х0 :

Этот алгоритм обычно используется в стандартных программах компьютеров для вычисления квадратных корней чисел.

Метод секущих позволяет использовать быструю сходимость метода Ньютона-Рафсона, не вычисляя явно значение производной. Заменяя значение производной ее приближенной разностной формулой

получим рекуррентную формулу

В качестве начальных значений х0 и х1 используются любые приближенные значения корня х0 . Вычисление завершается, когда изменение х между двумя итерациями станет меньше, чем погрешность, требуемая для искомого корня.

Метод бисекции (деления отрезка пополам). Пусть требуется с заданной точностью  > 0 найти корень уравнения (1). Отрезок локализации будем считать заданным. Предположим, что функция f непрерывна на отрезке [a, b] и принимает на его концах значения разных знаков, т.е.

f(a)f(b)<0.

Обозначим отрезок [a, b] через [a0, b0] . Примем за приближенное значение корня середину отрезка – точку x0 = (a0+b0)/2. Погрешность этого приближения не превышает половины длины отрезка

.

В качестве [a(1), b(1)] берут тот из отрезков [a0, х0] и [х0, b0] , на концах которого выполняется условие f(a(1))f(b(1))0 . Этот отрезок содержит искомый корень. Середина полученного отрезка x(1)=(a(1)+b(1))/2 дает теперь приближенное значение корня, оценка погрешности которого составляет

.

За очередное уточнение отрезка локализации [a(2), b(2)] снова берут тот из отрезков [a(1), х(1)] и [х(1), b(1)], на концах которого выполняется условие f(a(2))f(b(2))0 .

Неограниченное продолжение итерационного процесса дает последовательность отрезков, содержащих искомый корень. Каждый из них (за исключением начального) получен делением пополам предыдущего отрезка. Итерации следует вести до тех пор, пока не будет выполнено неравенство b(n)a(n) <  . При его выполнении можно принять х(п) за приближенное значение корня с точностью .

Метод простой итерации. Чтобы применить метод простой итерации к решению уравнения (1), необходимо преобразовать это уравнению к следующему виду:

х = (х) . (2)

Функцию  будем называть итерационной функцией.

Выберем каким-либо образом приближенное значение корня х(0) и подставим его в правую часть уравнения (17). Получим значение х(1)=(х(0)) . Подставляя теперь х(1) в правую часть уравнения (17), получим х(2)=(х(1)). Продолжая этот процесс, получим последовательность приближений к корню, вычисляемых по формуле

х(п+1)=(х(п)) , п  0. (3)

Если существует предел построенной последовательности, то переходя к пределу в равенстве (3) и предполагая функцию  непрерывной, получим равенство

.

Это значит, что - корень уравнения (1).

В практике вычислений часто для окончания итерационного процесса используется критерий х(п)х(п+1)  .

Данный метод обладает хорошей сходимостью, если выполнено условие '(x) ½. Если же в окрестности искомого корня '(x)  1 последовательность (3) может быть вообще расходящейся.

Пример:

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]