0

所以我们可以使用 isObservable 来处理某些系统,但我想知道我们是否可以制作 tham show staps 或做类似的事情。那可能吗?

4

1 回答 1

1

我假设您实际上指的是包中的ObservableandControllable命令DynamicSystems

一些 Maple 例程具有所谓的userinfo消息,它们是可选显示的,并且可以显示部分步骤。这些通常可以通过调用来启用,比如infolevel[DynamicSystems]:=66 是最高级别的详细信息。使用较低的值可能会显示较少的细节。不幸的是,这些特定的 DynamicSystems 例程中似乎没有任何用户信息消息。因此,这对您的情况没有直接帮助。

有时一个包调用另一个包。例程LinearAlgebra:-Rank在某些时候被调用,当Controllable被调用时。我猜你不希望在 中看到 userinfo 消息Rank,这可以通过发出infolevel[LinearAlgebra]:=n1 到 6 之间的一些 n 来启用。

另一种方法是设置printlevel高。但是这样做会使所有 Maple 内部调用也变得冗长。比如说,设置的结果输出printlevel:=20是压倒性的。我怀疑你会发现这种方法有用。

另一种选择是将某些例程设置为选项trace。有时这样做需要知道适当的内部例程的名称。由于默认情况下并非所有非导出的模块局部变量都是可见的,因此这使情况变得更加复杂。您可以先尝试发出调用,trace(DynamicSystems::ControllableSS):然后再调用Controllable您的系统。这显示了一些中间结果,但除非您知道哪些源代码行正在生成这些结果,否则这些结果可能对您没有多大意义。您可以通过发出命令查看源代码,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是在指定 staircase 方法时调用的。因此,您也可以在这里showstat(DynamicSystems::StaircaseTransformation)查看该内部(本地)例程的来源。或者你也可以trace这样。

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

于 2010-12-03T22:21:34.153 回答