我有一個小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