我在用计算重要数字时遇到了问题。让我解释得更清楚些。
我有过
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?
发布于 2021-04-20 10:20:46
在您的特定情况下,可以使用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
https://stackoverflow.com/questions/67176231
复制相似问题