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
我在 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