Wolfram Mathematica 中的近似数字计算

Calculation with approximate digits in Wolfram Mathematica

我在 Wolfram Mathematica 中计算有效数字时遇到问题。 让我解释得更好。

我有

f[a_, b_] = a b Sin[25]

f[92.0 , 9.81] =381.421

不过,我想先把a和b的乘积结果近似到三位有效数字,再乘以Sin [25]。简而言之,我想要这样的功能

f1[a_, b_] = NumberForm[a b, {3, 0}] Sin[25]

但如果我评估

f1[92,0 , 9.81] 

我明白了

f1[92,0 , 9.81]= 903.Sin[25]

而不是 381.62

我应该如何修改 f1[a_, b_] 以获得 f1[92,0 , 9.81]=381.62

您可以根据具体情况使用 Round 舍入到 3 位有效数字。那么结果是一个整数,所以Sin[25]不会转换为实数(浮点数)。但是,可以使用 N.

强制执行此操作

此外 Sin 假定弧度输入,除非输入被指定为度数。

注意在函数定义中使用 SetDelayed (:=)。

f[a_, b_] := N[Round[a b] Sin[25 Degree]]

f[92.0, 9.81]

381.624

对于 a b 上的 3 位有效数字,通常您可以使用

f[a_, b_] := N[Round[a b, 10^(-3 + Floor[Log10[Abs[a b]]] + 1)] Sin[25 Degree]]

例如四舍五入 a b

a = 1.2345;
b = 5.4321;
N[Round[a b, 10^(-3 + Floor[Log10[Abs[a b]]] + 1)]]

6.71