【问题标题】:Calculation with approximate digits in Wolfram Mathematica在 Wolfram Mathematica 中使用近似数字进行计算
【发布时间】:2021-07-14 11:46:26
【问题描述】:

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

【问题讨论】:

    标签: wolfram-mathematica significant-digits


    【解决方案1】:

    在您的具体情况下,您可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      相关资源
      最近更新 更多