首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maple V5 to Maple 18 -如何创建变量列表?

Maple V5 to Maple 18 -如何创建变量列表?
EN

Stack Overflow用户
提问于 2016-08-08 17:13:23
回答 2查看 383关注 0票数 2

我在92年使用Maple V5编写了一些函数,用Groebner来解决一些问题。从那以后,我一直用枫叶来做简单的计算,因此我的编程技巧早已被遗忘。我当时编写和使用的大多数函数都不再起作用,我正试图回到我目前拥有的枫叶版本,也就是Maple 18。

问题:( a)是否有自动更新旧枫树功能的工具?( b)像vars := [x.(1 .. n)]这样的命令曾经起作用,但现在不再起作用了。想法是用x1,x2,..创建一个列表xn。我知道seq(x[i], i = 1 .. 5)会用x_1,x_2,.但这不是完全一样的。( c)最受欢迎的是如何简化更新过程的技巧和建议。

谢谢

边缘

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-15 20:42:31

Maple V版本5Maple 6之间的语言发生了一些变化,||取代.就是其中之一。

Maple 6(如果我还记得的话)附带了一个额外的二进制updtsrc,它可以对Maple源文件进行操作并进行文本替换。例如,如果我以包含以下内容的明文文件var.mpl开头,

代码语言:javascript
复制
vars := [x.(1 .. n)];

然后应用updtsrc var.mpl命令,我得到这个输出,

代码语言:javascript
复制
`.` has been replaced by `||`; see ?||
vars := [x||(1 .. n)];

我在Ubuntu14.04.4LTS Linux上这样做,使用从页面上的HTTP下载的(redhat) 二进制文件。

如果您的Maple源位于.mws工作表文件中,那么您可能必须将输入导出到一个明文文件中。

我还没有在MS上尝试过(在纯文本文件、DOS窗口或Powershell中)(尽管该页面中的zip文件已解压缩到一个updtsrc.exe文件)。

因此,如果您有大量包含Maple V和Maple 6之间的语言不兼容的旧代码,那么您可以尝试这个方法来自动化转换。

在Maple 6和Maple 18 (例如小写vector)之前,已经有一些命令被废弃,但是很少有进一步的语言更改(向后不兼容)。

我建议您阅读Maple 18中的帮助页以获得语言更新。特别是,我建议您查看这些帮助主题的帮助页面(在help的搜索栏中输入这些帮助):

代码语言:javascript
复制
updtsrc

updates,Maple6,compatibility

至于涉及vector的第二个示例,vector确实已被Vector命令取消并取代。

但是,即使在MapleV R5中,您也不应该在向量f上使用op(f)。更正确的是eval(f)evalm(f)。例如,

代码语言:javascript
复制
f:=vector([-x1^2,x2*u]);

                                            [   2      ]
                                       f := [-x1 , x2 u]

var:=u;

                                            var := u

subs(var=cat(var,0), eval(f));

                                         [   2       ]
                                         [-x1 , x2 u0]

现在,假设您在上面使用Vector。在这种情况下,在那个op(f)调用中使用subs将产生您引用的错误,因为与vector不同,Vector the没有姓eval。

代码语言:javascript
复制
f:=Vector([-x1^2,x2*u]);

                                               [   2]
                                          f := [-x1 ]
                                               [    ]
                                               [x2 u]

var:=u;

                                            var := u

subs(var=cat(var,0), op(f));
Error, invalid input: subs received 2, which is not valid for
its 2nd argument

您仍然可以在这里使用eval(f),但实际上没有必要使用它。

代码语言:javascript
复制
subs(var=cat(var,0), eval(f));

                                            [   2 ]
                                            [-x1  ]
                                            [     ]
                                            [x2 u0]


subs(var=cat(var,0), f);

                                             [   2 ]
                                             [-x1  ]
                                             [     ]
                                             [x2 u0]

最后,尝试下载并安装点发布Maple 18.02,而不是继续使用Maple 18.00。你可以找到那个这里

票数 1
EN

Stack Overflow用户

发布于 2016-08-08 19:29:38

你要找的命令是

代码语言:javascript
复制
vars:= [x||(1..n)];

枫树V5于1997年发行。几乎所有在该版本中可用的文档命令今天仍然有效。92年的版本是枫树V。现在的版本是2016年,而不是2018年。我不知道任何自动更新工具。

如果你需要翻译更多的代码,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38834990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档