N

N[expr]

给出 expr 的数值值.

N[expr,n]

尝试给出具有 n 位精度的结果.

更多信息

  • 除非 expr 中的数是精确的,或者具有足够高的精度,否则 N[expr,n] 可能无法给出具有 n 位精度的结果.
  • N[expr,n] 可能在内部计算时会超过 n 位精度.
  • $MaxExtraPrecision 指定将会在内部使用到的最大超额精度.
  • 精度 n 以 10 进制数给出;它不必是一个整数.
  • n 必须在 $MinPrecision$MaxPrecision 之间. $MaxPrecision 可以被设置为 Infinity.
  • n 可以小于 $MachinePrecision.
  • N[expr] 给出一个机器精度数,只要它的大小在 $MinMachineNumber$MaxMachineNumber 之间.
  • N[expr] 等价于 N[expr,MachinePrecision].
  • N[0] 给出具有机器精度的数 0..
  • N 将所有非零数转化为 RealComplex 形式.
  • N 把它所遇到的任何函数的每个参数依次转换成数值形式,除非该函数的头具有一个诸如 NHoldAll 的属性.
  • 你可以使用 N[f[args]]:=valueN[f[args],n]:=value 来定义函数的数值值.
  • N[expr,{p,a}] 尽可能产生精度最多 p、准确度最多 a 的结果.
  • N[expr,{Infinity,a}] 尽可能产生准确度 a 的结果.
  • N[expr,{Infinity,1}] 尽可能求出 expr 整数部分的近似值.

范例

打开所有单元关闭所有单元

基本范例  (3)

数值运算:

50 位精度的数值运算:

对机器精度的输入,结果总是机器精度:

对精确的输入,结果可以达到指定的精度:

范围  (20)

数学常数  (4)

将数学常数计算到任意精度:

大型整数的近似值:

复数结果:

NumericQ 可以检验更复杂一些的符号式数学常量:

在通常情况下,NumericQ 表达式表示可以计算到任意精度的数:

普通表达式  (3)

数值计算矩阵元:

数值计算符号表达式的数值部分:

将多项式系数变为数值值:

机器精度和相应精度  (4)

N[e] 通常用机器数替代并计算结果:

这等价于机器数的表达式:

在差商误差的对数-对数图上可清楚显示机器舍入误差:

p 不是 MachinePrecision 时,N[e,p] 用任意精度数自适应地进行计算:

用自适应精度,差商误差与理论值匹配:

自适应精度控制对超额精度有一个默认的界限,$MaxExtraPrecision

达到界限时,您可以增加 $MaxExtraPrecision 来解决问题:

N 不会提高输入中近似数的精度:

结果的精度和输入相同:

您可以用 SetPrecision 增加输入表达式的精度:

数据对象和特定规则  (5)

N 不会影响明确的数值幂:

但会改变底数:

如果幂不是 NumericQ,它会改变:

SparseArray 对象的处理是以所表示的数组为基础的:

通常,N[Normal[s]] 恒等于 Normal[N[s]]

类似 InterpolatingFunction 的数据对象有特定的规则以使得仅仅数据受到影响:

仅对相关的数据做了改变,新函数用机器数:

类似 Integrate 的运算适当时用相应 N-函数:

下面用 NIntegrate

对于较高的精度需求,数值算法花费较多的时间或需要调整:

在这个例子中,直接使用 NIntegrate 或许更好一些:

对多数表达式,N 影响 FullForm 形式中的树:

1. 出现在 x 之前起因于 e 的表示方式:

e 中的整数转换为机器数:

定义特定规则  (4)

NHoldAll 属性避免一个加指标变量受到 N 的影响:

此时 N 仅影响系数:

若没有这个设置, N 同时影响到指标:

定义一个等于 的数值常量:

在精确符号表达式中,常量不计算:

N 中则计算:

加一个对任意精度或准确度都适用的定义:

以准确度 20 数值计算一个表达式:

定义一个函数,表示实数根 ,其中 为正, 为正整数:

NHoldRest 避免它的第二个自变量转换为实数:

2 的立方根的精确表示:

机器数近似值:

47 位数的近似值:

定义一个数据对象,以稀疏形式 表示一个多项式 {{c_(1),p_(1)},...}

注意要确保 N 仅影响系数,而不是幂:

要使规则有效,需要阻止默认对参变量的 N 计算:

多项式 的表示:

获得具有近似实数系数的表示:

处的计算:

推广和延伸  (3)

5 位数准确度和任意精度:

1 位准确度,仅对应整数部分:

获得 20 位精度或 30 位准确度:

属性和关系  (3)

N[e] 的结果通常有精度 MachinePrecision

如果结果对于机器数来说过大,精度可能不同:

N[e,p] 的结果通常有 Precision 等于 p

如果不能达到,Wolfram 语言将给出信息:

通常增加 $MaxExtraPrecision 将解决这个问题:

对于隐藏的零,不能达到正精度,因此您需要使用准确度:

N[e,{,a}] 的结果通常有 Accuracy 等于 a

如果不能达到,Wolfram 语言将给出信息:

通常增加 $MaxExtraPrecision 将解决这一问题:

巧妙范例  (1)

的位数的一个展示:

Wolfram Research (1988),N,Wolfram 语言函数,https://reference.wolfram.com/language/ref/N.html (更新于 2003 年).

文本

Wolfram Research (1988),N,Wolfram 语言函数,https://reference.wolfram.com/language/ref/N.html (更新于 2003 年).

CMS

Wolfram 语言. 1988. "N." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2003. https://reference.wolfram.com/language/ref/N.html.

APA

Wolfram 语言. (1988). N. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/N.html 年

BibTeX

@misc{reference.wolfram_2024_n, author="Wolfram Research", title="{N}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/N.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_n, organization={Wolfram Research}, title={N}, year={2003}, url={https://reference.wolfram.com/language/ref/N.html}, note=[Accessed: 21-November-2024 ]}