logo
для вялички / TROPA V MATLAB_21

7.2 Вычисления с использованием арифметики произвольной точности

MATLAB обычно ведет вычисления с числами, представленными в формате плавающей точки с двойной точностью. Это довольно высокая точность, обеспечивающая потребности практических вычислений в прикладных задачах. Однако ряд задач теории чисел, численного кодирования и некоторых других требует выполнения вычислений вообще без какой - либо погрешности или со сколь угодно малой погрешностью. Такие вычисления не очень удачно называют арифметикой произвольной точности: правильнее говорить о точной арифметике.

Для проведения вычислений в арифметике произвольной точности служит команда vpa:

R=vpa(S) – возвращает результат вычислений символьного выражения S, используя арифметику произвольной точности с текущим числом цифр D, установленным функцией digits. Результат R имеет тип sym;

R=vpa(S,D) – возвращает результат вычислений выражения S с текущим числом цифр D.

Переменная S может быть символьным массивом.

Примеры:

>>vpa(exp(1),50)

ans =

2.7182818284590455348848081484902650117874145507813

>>vpa([2*pi,exp(1),log(2)],10)

ans =

[ 6.283185308, 2.718281828, .6931471806]

Команда digits служит для установки числа цифр в числах арифметики произвольной точности. Она используется в одном из следующих вариантов:

digits – возвращает число значащих цифр в числах арифметики произвольной точности (по умолчанию 32);

digits(D) – устанавливает заданное число цифр D для арифметики произвольной точности.

Примеры вычисления числа π с 32 и 6 значащими цифрами:

>>digits

Digits = 32

>>vpa pi

ans =

3.1415926535897932384626433832795

>> digits 6

>> vpa pi

ans =

3.14159

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4