2010-12-02 27 views

回答

1

我在假定您实际上是指和Controllable命令,它们是DynamicSystems程序包的一部分。

某些Maple例程具有所谓的userinfo消息,它们可选地显示并且可以显示部分步骤。这些通常会通过诸如infolevel[DynamicSystems]:=6之类的呼叫来启用,其中6是最高级别的细节。如果值较低,可能会显示更少的细节。不幸的是,这些特定的DynamicSystems例程似乎没有任何用户信息。所以这不会直接帮助你的情况。

有时一个包叫另一个包。在调用Controllable时某些时候调用例程LinearAlgebra:-Rank。我猜你不希望看到用户信息的消息在Rank,这将通过发行infolevel[LinearAlgebra]:=n对于某个n 1和6

之间的替代启用是设置printlevel高。但是这样做会使所有Maple内部呼叫也变得冗长。设置的结果输出,比如printlevel:=20是压倒性的。我怀疑你会发现这种方法很有用。

另一种替代方法是将某些例程设置为选项trace。有时这样做需要知道适当内部例程的名称。由于缺省情况下并非所有非导出的模块本地都是可见的,所以这变得更加复杂。在您的系统上调用Controllable之前,您可以先尝试拨打trace(DynamicSystems::ControllableSS):。这显示了一些中间结果,但除非您知道哪些源代码行会生成这些结果,否则这些结果可能对您没有多大意义。您可以通过发出命令看到源代码,showstat(DynamicSystems::ControllableSS);

下面是一个例子,

restart: 
with(DynamicSystems): 
aSys := StateSpace(<<1,2>|<3,4>>, <<2,3>>, <<1,0>|<0,1>>, <<0,0>>): 
aSys:-a, aSys:-b, aSys:-c: 
trace(DynamicSystems::ControllableSS): 
Controllable(aSys); 
showstat(DynamicSystems::ControllableSS); 

通过查看ControllableSS程序的源代码,你可以推断出指定的楼梯方法时,它调用DynamicSystems:-StaircaseTransformation。因此,您也可以在此发出showstat(DynamicSystems::StaircaseTransformation)以查看该内部(本地)例程的来源。或者你也可以使用trace这个例程。

作为一般规则,您可以使用:-表示法参考模块或包的exports。您可以使用::符号而不是:-将这些名称传递给traceshowstat,除非您首先设置了kernelopts(opaquemodules=false)。如果内部子模块成员名称中包含多个:-,则必须使用圆括号分隔符以::语法引用它。对不起,这不容易表达。

+0

我明白了。谢谢你WWmuch!你解释很多。顺便说一句,你碰巧知道任何系统相似的枫树,将显示解决动态系统的好的,详细的步骤? – Rella 2010-12-03 22:51:33

相关问题