У меня есть набор точных арифметических инструментов общей точности в MATLAB, который не требует символьных инструментов.Это доступно на Файловом обмене теперь.Например, с точностью до 200 цифр ...
>> X = hpf('1.2',200)
X =
1.2
>> X^723 - 2
ans =
1770275636625441478440184064843963160282702377364043536065.674784028
335311702907341138106304578079399191891193908698215227428501441099262538
4031886249461115861966367898404170725299823585166135087107488
Если вы хотите выполнить всю арифметику с точностью до 200 цифр при использовании чисел HPF, просто укажите это как значение по умолчанию.
>> DefaultNumberOfDigits 200
>> hpf('pi')
ans =
3.141592653589793238462643383279502884197169399375105820974944592307
816406286208998628034825342117067982148086513282306647093844609550582231
7253594081284811174502841027019385211055596446229489549303819
HPF не является инструментом с переменной точностью, так как он работает с фиксированным числом цифр.Он достаточно эффективен с точностью до нескольких десятков тысяч цифр.Таким образом, чтобы получить 100 цифр exp (pi), это займет около 1/4 секунды.
>> timeit(@() exp(hpf('pi',100)))
ans =
0.2643
Функции триггера тоже.Здесь 1000 цифр греха (пи).Конечно, должно быть ноль.
>> tic,sin(hpf('pi',1000)),toc
ans =
0
Elapsed time is 0.201679 seconds.