В Мма, например, я хочу вычислить
1.0492843824838929890231*0.2323432432432432^3
Но он не показывает полной точности. Я пробовал N
или различные другие функции, но ни одна из них не работала. Как этого добиться? Большое спасибо.
В Мма, например, я хочу вычислить
1.0492843824838929890231*0.2323432432432432^3
Но он не показывает полной точности. Я пробовал N
или различные другие функции, но ни одна из них не работала. Как этого добиться? Большое спасибо.
Когда вы указываете числа с помощью десятичной точки, они должны иметь MachinePrecision
, примерно 16 цифр, поэтому результаты обычно содержат менее 16 значащих цифр. Вы можете добиться бесконечной точности, используя рациональные/алгебраические числа. Если вам нужна конечная точность, которая лучше, чем по умолчанию, укажите свои числа следующим образом.
123.23`100
Это заставляет Mathematica интерпретировать число как имеющее 100-значную точность. Так что вы можете сделать
ans=1.0492843824838929890231`100*0.2323432432432432`100^3
Проверьте точность окончательного ответа, используя Precision
Precision[ans]
Проверьте tutorial/ArbitraryPrecisionNumbers
для более подробной информации
Вы можете сделать:
r[x_]:=Rationalize[x,0];
n = [email protected] ([email protected])^3
Вне:
228598965838025665886943284771018147212124/17369643723462006556253010609136949809542531
А теперь, например
N[n,100]
0.01316083216659453615093767083090600540780118249299143245357391544869\
928014026433963352910151464006549
Иногда вы просто хотите увидеть больше результатов машинной точности. Это несколько методов.
(1) Поместите курсор в конец строки вывода и нажмите Enter (не на цифровой клавиатуре), чтобы скопировать вывод в новую строку ввода, отображающую все цифры.
(2) Используйте InputForm как в InputForm[1.0/7]
(3) Измените настройку PrintPrecision
с помощью инспектора параметров.