CAS Maple是否对包内的算法使用脚本语言?

时间:2017-07-02 08:30:00

标签: maple

Maple是否为包内的算法使用脚本语言, 像学生[LinearAlgebra]? 加载包的真正命令是什么,如:

with(Student[LinearAlgebra]):

1 个答案:

答案 0 :(得分:2)

你的两个问题中的第一个看起来非常类似于询问Maple命令通常如何工作,这是相当广泛的,所以我只是给出一个总结。

问题1)

Maple是interpreted language。其Student[LinearAlgebra]包中的命令以Maple语言编写,并由Maple存储在所谓的Maple Library存档(文件扩展名为.mla的文件中)。

showstat足够高时,您可以使用Maple命令print(或interface(verboseproc))查看和检查这些包的导出命令的大部分来源。请注意,大多数这些命令的源代码都涉及对包中其他内部例程的调用(其中大部分都是用Maple语言编写的)。

Student[LinearAlgebra]包中的许多计算命令只涉及对LinearAlgebra包的调用。尝试使用这些Maple命令,例如:

showstat(Student:-LinearAlgebra:-ReducedRowEchelonForm);

showstat(:-LinearAlgebra:-ReducedRowEchelonForm);

showstat(:-LinearAlgebra:-LUDecomposition);

Student[LinearAlgebra]包还有一些可视化命令,用于绘图。例如,

showstat(Student:-LinearAlgebra:-EigenPlot);

它还有一些启动交互式applet(或“Tutors”的命令,这些命令是使用生成Java弹出小程序的Maplets包中的Maple代码编写的)。例如,

showstat(Student:-LinearAlgebra:-GaussianEliminationTutor);

showstat命令显示源的行号。要查看没有行号,并使用语法高亮和缩进,请尝试使用

 interface(verboseproc=3):
 print(:-LinearAlgebra:-LUDecomposition);

您可以在Maple中编写自己的程序(命令),以计算您想要的任何内容,甚至可以将它们保存到您自己的库存档中,以便以后重复使用。但Maple的很大一部分是已经开发并可供您使用的数千个程序集。

如果您想了解更多信息,那么您应该更加具体地了解您所提出的问题。

阅读用户手册(如果您需要更多信息,请参阅编程指南)也是一个好主意。您可以从Maple的帮助中访问它们。

问题2)

发出命令时,

with(Student[LinearAlgebra]):

Maple将导出的名称(用户直接使用的命令)从其长格式名称重新绑定到短格式名称。结果是,您可以在键盘上使用较少的手动键入来使用命令。这种“加载”包的行为也可能导致对上下文相关的菜单进行一些添加(例如,当您右键单击Matrix时弹出的内容)。

即使您没有使用with命令“加载程序包”,您仍然可以使用程序包中的命令。例如,如果M是矩阵,那么您可以随时调用,

Student:-LinearAlgebra:-Rank( M );

Student[LinearAlgebra][Rank]( M );    

即使你事先没有打过with(Student[LinearAlgebra])。但是一旦你执行了,

with(Student[LinearAlgebra]):

然后你可以使用更短的语法

Rank( M );