Wolfram mathematica 在Mathematica中如何将理性转化为现实
我这里有一些问题,我不知道如何解决好。例如,我想使用Wolfram mathematica 在Mathematica中如何将理性转化为现实,wolfram-mathematica,Wolfram Mathematica,我这里有一些问题,我不知道如何解决好。例如,我想使用BaseForm[1/3,3]。但是,除非我输入BaseForm[1/3,3],否则这不会达到我的预期效果。如果数据以理性的形式存在,如何将其转化为现实?我尝试了应用,但它不起作用。(很奇怪,嗯?对我来说,Apply总是可以用来更改标题。) 对于这个特定的问题,我本可以做一些类似于BaseForm[1/3*1,3]的事情,但它确实不是很好 感谢您的帮助。BaseForm将10进制的rational转换为任意进制的rational。。。所以它会满
BaseForm[1/3,3]
。但是,除非我输入BaseForm[1/3,3]
,否则这不会达到我的预期效果。如果数据以理性的形式存在,如何将其转化为现实?我尝试了应用
,但它不起作用。(很奇怪,嗯?对我来说,Apply总是可以用来更改标题。)
对于这个特定的问题,我本可以做一些类似于BaseForm[1/3*1,3]
的事情,但它确实不是很好
感谢您的帮助。
BaseForm
将10进制的rational转换为任意进制的rational。。。所以它会满足你的期望
In[1]:= BaseForm[1/3,3]
Out[1]//BaseForm= Subscript[1, 3]/Subscript[10, 3]
正如你所指出的,给它一个实数可以这样做:
In[2]:= BaseForm[1/3.,3]
Out[2]//BaseForm= Subscript[0.1, 3]
最安全的改变方法是定义你自己的baseForm
,它与baseForm
相同,但给出有理数的情况除外:
baseForm[r_Rational,b_]:=BaseForm[N[r],b]
然后
不太安全的方法(因为您不知道它还会破坏什么)是重新定义
BaseForm
Unprotect[BaseForm];
BaseForm[r_Rational, b_] := BaseForm[N[r], b]
Protect[BaseForm];
然后像平常一样使用。我可能忽略了您请求的微妙之处,但是如果您总是想要一个实数输出,为什么不只使用
N
BaseForm[N[1/3], 3]
(*Out=0.13*)使用
Apply
works;它会更改表达式的开头Real@@Rational[1,3]==Real[1,3]
——但是Real[1,3]
是什么意思呢?您可以使用N@Rational[1,3]
…@Simon:哦,我明白了。只是忘了看荒谬的Real[1,3]
。
BaseForm[N[1/3], 3]
(* Out= 0.13 *)