如何将以下以Maple编写的代码转换为Python框架
ode:=diff(y(x),x)= #=An equation
sol:=dsolve([ode, y(1)=0.73}, numeric, output=listprocedure)
fy:=eval(y(x),sol);nn:=100
for x from 1 to nn do fy(5.1*x/nn) end do;
我找不到类似于上述程序的代码。谢谢您的帮助
Maple可以使用命令将代码转换为Python CodeGeneration:-Python。然后,您可以将代码作为过程编写并转换。问题是,如果您尝试这样做,将会遇到Maple无法识别的麻烦,例如dsolve,它只会逐字地将那些函数调用复制到Python。也就是说,我不确定是否可以让Maple自动执行此操作。
这是我未成功的尝试,无视for令人烦恼的循环,因为
myproc := proc(ode,ic)
local sol,fy,out,i,nn;
sol := dsolve({ode,ic},numeric,output=listprocedure);
nn := 100;
fy := eval(y(x),sol);
out := [];
for i to nn do;
out := [op(out),fy(5.1*i/nn)];
end do;
out;
end proc:
## Example of use:
## myproc(diff(y(x),x) = 1/x,y(1) = 0.73);
## Convert to Python
CodeGeneration:-Python(myproc);
Warning, the function names {dsolve, eval, y} are not recognized in the target language
#def myproc (ode, ic):
# sol = dsolve(set([ode,ic]), numeric, output == listprocedure)
# nn = 100
# fy = eval(y(x), sol)
# out = []
# for i in range(1, nn + 1):
# out = [tuple(out),fy(0.51e1 * i / nn)]
# return(out)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。