2010-12-02 3 views

답변

1

DynamicSystems 패키지의 일부인 ObservableControllable 명령을 실제로 말하는 것으로 가정합니다.

일부 Maple 루틴에는 userinfo 메시지가 있으며이 메시지는 선택적으로 표시되며 부분 단계를 표시 할 수 있습니다. 그것들은 일반적으로 infolevel[DynamicSystems]:=6과 같은 호출로 활성화됩니다. 여기서 6은 가장 높은 수준의 세부 정보입니다. 값이 작을수록 세부 정보가 덜 표시됩니다. 불행히도, 이러한 특정 DynamicSystems 루틴은 사용자 정보 메시지를 갖고 있지 않습니다. 따라서 이것이 귀하의 경우에 직접적으로 도움이되지는 않습니다.

때때로 한 패키지가 다른 패키지를 호출합니다. 어떤 경우 Controllable이 호출 될 때 루틴 LinearAlgebra:-Rank이 호출됩니다. 난 당신이 1, 6

사이에 약간의 N에 대한 대안을 infolevel[LinearAlgebra]:=n을 실행하여 활성화 할 것이다, Rank의 메시지 사용자 정보보고 싶지 않은 추측하고있어 높은 printlevel을 설정하는 것입니다. 그러나 이렇게하면 모든 Maple 내부 호출도 장황하게됩니다. 예를 들어, printlevel:=20과 같은 설정 결과가 압도적입니다. 이 접근법이 유용하다고 생각하지 않을지 의심 스럽습니다.

또 다른 대안은 특정 루틴을 옵션 trace으로 설정하는 것입니다. 때로는 이렇게하면 적절한 내부 루틴의 이름을 알 수 있습니다. 그리고 이것은 수출되지 않은 모든 모듈 지역이 기본적으로 표시되는 것은 아니므로 더욱 복잡해졌습니다. 시스템에서 Controllable을 호출하기 전에 먼저 trace(DynamicSystems::ControllableSS): 호출을 시도 할 수 있습니다. 이는 중간 결과를 보여 주지만 소스 라인이 어떤 결과를 생성하는지 알지 못하는 경우에는 사용자에게별로 이해가되지 않을 수 있습니다. 당신은 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); 

을 소스를 볼 수 있습니다, 당신은 계단 방법이 지정 될 때이 DynamicSystems:-StaircaseTransformation를 호출하는 것을 추론 할 수있다. 그래서 여기에서도 showstat(DynamicSystems::StaircaseTransformation)을 실행하여 해당 내부 (로컬) 루틴의 소스를 볼 수 있습니다. 아니면 trace 루틴 일 수도 있습니다.

일반적으로 :- 표기법을 사용하여 모듈 또는 패키지의 exports을 참조 할 수 있습니다. 그리고 첫 번째로 kernelopts(opaquemodules=false)을 설정하지 않았다면, 과 showstat에 표기법을 사용하면 :- 대신이 이름을 전달할 수 있습니다. 내부 하위 모듈 구성원에 :-이 하나 이상있는 경우 :: 구문을 사용하여 반 브래 킷 구분 기호를 사용해야합니다. 미안하지만 표현하기가 쉽지 않습니다.

+0

나는 본다. WWmuch 정말 고마워! 너는 설명 많이 했어. BTW 다이내믹 시스템을 해결하기위한 좋은, 세부 단계를 보여줄 수있는 모든 시스템을 알 수 있습니까? – Rella

관련 문제