【发布时间】:2016-07-27 20:47:48
【问题描述】:
我有一个小的 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
给定一个由 z 的函数组成的符号向量 psi,它创建一个下三角符号矩阵 f。效果很好。
我正在尝试用 Maple 重写这部分,我是新手。我试过了
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;
“差异”行中有一些模棱两可的东西,我只是选择了函数定义。如果我让它输出 f(4,4),它会报告
Error, (in f) too many levels of recursion
但它确实打印了 f(4,1)。
有人能告诉我出了什么问题吗?谢谢!
【问题讨论】:
-
od真的是你如何结束 Maplefor循环......?!您也许可以更改 Maple 中的最大递归深度,否则请尝试拆分为 4 个连续的for循环,每个循环一个i,也许。 -
您可以使用
od或end do来终止Maple 中的循环。与fi和end if相同。就个人而言,我使用end选项,但每个选项都有自己的。