我有一个小MATLAB脚本符号如下重写MATLAB到枫木
syms z;
psi(2)=exp(2*z-exp(z))/(1-exp(-exp(z)));
psi(3)=exp(2*z-exp(z))/(1-exp(-exp(z)))*z;
psi(4)=exp(2*z-exp(z))/(1-exp(-exp(z)))*z^2;
f(1,1)=exp(2*z-exp(z))/(1-exp(-exp(z)));
for i=2:4
f(i,1)=diff(psi(i),z);
for j=2:i
f(i,j)=diff(f(i,j-1)/f(j-1,j-1),z);
end
end
给定的符号向量PSI
包括z与功能,它创建一个下三角符号矩阵F。它运作良好。
我想重写这部分在枫树,我是新来的。我试过
psi(2) := exp(2*z-exp(z))/(1-exp(-exp(z)));
psi(3) := exp(2*z-exp(z))*z/(1-exp(-exp(z)));
psi(4) := exp(2*z-exp(z))*z^2/(1-exp(-exp(z)));
f(1, 1) := exp(2*z-exp(z))/(1-exp(-exp(z)));
for i from 2 to 4 do f(i,1):=exp(2*z-exp(z))/(1-exp(-exp(z)));
for j from 2 to i do f(i,j):=diff(f(i,j-1)/f(j-1,j-1),z);
od;
od;
东西在“diff”行中不明确,我只是选择函数定义。如果我让它输出f(4,4),它报告
Error, (in f) too many levels of recursion
但它确实打印了f(4,1)。
有人可以说出了什么问题吗?谢谢!
是否认为你是如何结束Maple的for循环....?!你可能能够改变Maple中递归的最大深度,否则尝试分割成4个连续的for循环,也许每个循环都有一个for循环。 – David
您可以使用'od'或'end do'来终止Maple中的循环。 'fi'和'end if'一样。就我个人而言,我使用'end'选项,但每个选项都是自己的。 – DSkoog