0

したがって、isObservableを使用して一部のシステムで動作させることはできますが、tham show stapsを作成したり、そのようなことを実行したりできるかどうか疑問に思います。それは可能ですか?

4

1 に答える 1

1

パッケージの一部であるObservableandコマンドを実際に参照していると思います。ControllableDynamicSystems

一部の Maple ルーチンには、いわゆるuserinfoメッセージがあり、オプションで表示され、部分的なステップを表示できます。infolevel[DynamicSystems]:=6これらは通常、6 が最高レベルの詳細であるような呼び出しで有効になります。値が低いと、表示される詳細が少なくなる場合があります。残念ながら、これらの特定の DynamicSystems ルーチンには、userinfo メッセージが含まれていないようです。したがって、これはあなたの場合には直接役に立ちません。

あるパッケージが別のパッケージを呼び出すことがあります。ルーチンLinearAlgebra:-Rankは、ある時点で が呼び出されたときControllableに呼び出されます。1 から 6 の間の n をRank発行することで有効になるuserinfo メッセージを で見たくないのではないでしょうか。infolevel[LinearAlgebra]:=n

printlevel別の方法は、高く設定することです。しかし、そうするとすべての Maple 内部呼び出しも冗長になります。たとえば、設定の結果の出力printlevel:=20は圧倒的です。このアプローチが役に立つとは思えません。

もう 1 つの方法は、特定のルーチンを option として設定すること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したがって、ここでも を発行showstat(DynamicSystems::StaircaseTransformation)して、その内部 (ローカル) ルーチンのソースを確認できます。またはtrace、そのルーチンも可能です。

原則として、表記法exportsを使用してモジュールまたはパッケージを参照できます。また、最初に を設定していない限り、その:-ような名前を に渡すことができ、 の代わりにtraceshowstat使用できます。内部サブモジュール メンバーの名前に複数の名前が含まれている場合は、丸括弧区切り記号を使用して構文で参照する必要があります。申し訳ありませんが、それを表現するのは簡単ではありません。:::-kernelopts(opaquemodules=false):-::

于 2010-12-03T22:21:34.153 に答える