首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wolfram Mathematica中的近似数字计算

Wolfram Mathematica中的近似数字计算
EN

Stack Overflow用户
提问于 2021-04-20 09:33:10
回答 1查看 172关注 0票数 1

我在用计算重要数字时遇到了问题。让我解释得更清楚些。

我有过

代码语言:javascript
复制
f[a_, b_] = a b Sin[25]

代码语言:javascript
复制
f[92.0 , 9.81] =381.421

但是,我首先要将a和b之间的乘积的结果近似为三个有效数字,然后乘以Sin [25]。总之,我想要一个这样的功能

代码语言:javascript
复制
f1[a_, b_] = NumberForm[a b, {3, 0}] Sin[25]

但如果我评估

代码语言:javascript
复制
f1[92,0 , 9.81] 

我得到了

代码语言:javascript
复制
f1[92,0 , 9.81]= 903.Sin[25]

而不是381.62

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-20 10:20:46

在您的特定情况下,可以使用Round将有效数字舍入到3位。结果是整数,因此Sin[25]不会转换为实数(浮点数)。但是,这可以通过N强制执行。

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

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

代码语言:javascript
复制
f[a_, b_] := N[Round[a b] Sin[25 Degree]]

f[92.0, 9.81]

381.624

对于a b上的3个有效数字,一般可以使用

代码语言:javascript
复制
f[a_, b_] := N[Round[a b, 10^(-3 + Floor[Log10[Abs[a b]]] + 1)] Sin[25 Degree]]

例如舍入a b

代码语言:javascript
复制
a = 1.2345;
b = 5.4321;
N[Round[a b, 10^(-3 + Floor[Log10[Abs[a b]]] + 1)]]

6.71

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67176231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档