maple里提示“Error, unable to match delimiters”,怎么修改呀?
各位前辈,请问maple里提示“Error, unable to match delimiters”,怎么修改程序呀?急求高手帮忙解答!谢谢!回复 楼主 liertwx 的帖子
括号应该成对出现。漏掉了括号,就会产生这种信息。回复 沙发 side 的帖子
多谢指导,我好好检查一下我的程序!回复 沙发 side 的帖子
我检查了一下,括号是成对的,没有漏掉什么呀,有没有其他什么情况呀?请高手指导。谢谢[ 本帖最后由 liertwx 于 2008-11-1 19:24 编辑 ]
回复 地板 liertwx 的帖子
LZ能否把程序贴出来,方便大家修改?回复 5楼 ch_j1985 的帖子
好的,谢谢,程序如下:solution:=proc(n)
local i,j,k,m,A1,A2,B1,B2,C,f,F1,F2,G,H,myA,myb,temp:
global dx,X,Dr1,Dp1,Dr2,Dp2,Omega:
for i from 1 to N do
f:=subs(eps=0,diff(dx,eps$n)/n!):
od:
for i from 1 to N do
for j from 1 to n do
f:=f-(diff(X,r1)*Dr1+diff(X,phi1)*Dp1
+diff(X,r2)*Dr2+diff(X,phi2)*Dp2):
od:
f:=combine(f,trig):
od:
X:=-A1*cos(T0)-B1*sin(T0):
X:=-A2*cos(T0)-B2*sin(T0):
for i from 0 to Omega*(n+1) do
X:=X+A1*cos(i*T0)+B1*sin(i*T0):
X:=X+A2*cos(i*T0)+B2*sin(i*T0):
od:
F1:=diff(X,T0$2)+X-diff(f,T0)+f:
F2:=diff(X,T0$2)+X-diff(f,T0)+f:
G:=F1:
separate1(n,Omega,G):
derivative(G,phi1,Dr1,Dp1):
separate2(n,Omega,G,F1,A1,B1):
X:=combine(X,trig):
X:=combine(f-diff(X,T0),trig):
G:=F2:
separate1(n,Omega,G):
derivative(G,phi2,Dr2,Dp2):
separate2(n,Omega,G,F2,A2,B2):
X:=combine(X,trig):
X:=combine(f-diff(X,T0),trig):
if N1 <> 0 then
for i from 5 to N1+4do
A1:='A1':
B1:='B1':
X:=A1:
for j from 1 to Omega*(n+1) do
X:=X+A1*cos(j*T0)+B1*sin(j*T0):
od:
F1:=combine(diff(X,T0)-f,trig):
G:=F1:
separate3(n,Omega,G):
for j from 1 to Omega*(n+1) do
G:=subs(T0=T/j,G):
G:=expand(G,T):
for k from 1 to 2 do
if k=1 then
temp:=coeff(G,cos(T)):
else
temp:=coeff(G,sin(T)):
fi:
C:=coeff(temp,A1):
C:=coeff(temp,B1):
C:=C*A1+C*B1-temp:
od:
myA:=array([,C],,C]]):
myb:=array(,C]):
myb:=linsolve(myA,myb):
A1:=combine(myb,trig):
B1:=combine(myb,trig):
od:
G:=combine(F1,trig):
if G <> 0 then
A1:=solve(G,A1):
fi:
X:=combine(X,trig):
od:
fi:
if N2 <> 0 then
for i from N1+5 by 2 to N do
A1:='A1':
B1:='B1':
A2:='A2':
B2:='B2':
X:=A1:
X:=A2:
for j from 1 to Omega*(n+1) do
X:=X+A1*cos(j*T0)+B1*sin(j*T0):
X:=X+A2*cos(j*T0)+B2*sin(j*T0):
od:
F1:=combine(diff(X,T0)-f,trig):
F2:=combine(diff(X,T0)-f,trig):
G:=F1:
H:=F2:
separate3(n,Omega,G):
separate3(n,Omega,H):
for j from 1 to Omega*(n+1) do
G:=subs(T0=T/j,G):
H:=subs(T0=T/j,H):
G:=expand(G,T):
H:=expand(H,T):
for k from 1 to 4 do
if k=1 then
temp:=coeff(G,cos(T)):
elif k=2 then
temp:=coeff(G,sin(T)):
elif k=3 then
temp:=coeff(H,cos(T)):
elif k=4 then
temp:=coeff(H,sin(T)):
fi:
C:=coeff(temp,A1):
C:=coeff(temp,B1):
C:=coeff(temp,A2):
C:=coeff(temp,B2):
C:=C*A1+C*B1
+C*A2+C*B2-temp:
od:
myA:=array([,C,C,C],
,C,C,C],
,C,C,C],
,C,C,C]]):
myb:=array(,C,C,C]):
myb:=linsolve(myA,myb):
A1:=combine(myb,trig):
B1:=combine(myb,trig):
A2:=combine(myb,trig):
B2:=combine(myb,trig):
od:
G:=combine(F1,trig):
if G <> 0 then
A1:=solve(G,A1):
fi:
G:=combine(F2,trig):
if G <> 0 then
A2:=solve(G,A2):
fi:
X:=combine(X,trig):
X:=combine(X,trig):
od:
fi:
end:
dx:=Dx+x:
dx:=Dx-x:
dx:=Dx+x:
dx:=Dx-x:
if N > 4 then
for i from 5 to N do
dx:=Dx:
od:
fi:
for i from 1 to N do
x:=0:
for j from 0 to norder do
x:=x+X*eps^j:
od:
od:
Dr1:=0:
Dr2:=0:
Dp1:=1:
Dp2:=1:
X:=r1*cos(T0+phi1):
X:=r1*sin(T0+phi1):
X:=r2*cos(T0+phi2):
X:=r2*sin(T0+phi2):
if N > 4 then
for i from 5 to N do
X:=0:
od:
fi:
for i from 1 to norder do
print('For order-',i,' solution:'):
solution(i):
od:
for i from 1 to N do
x=x:
od:
save norder,Dr1,Dp1,Dr2,Dp2,output:
麻烦各位前辈帮忙看一下是怎么出错的,提示错误为:
Error, unable to match delimiters。
[ 本帖最后由 liertwx 于 2008-11-1 20:11 编辑 ]
回复 6楼 liertwx 的帖子
这句有没有问题?for i from 5 to N1+4do
回复 7楼 ch_j1985 的帖子
加了空格还是不行,不知道那里有问题回复 8楼 liertwx 的帖子
具体的语法我也不太清楚,还是等高手来解决吧……回复 9楼 ch_j1985 的帖子
还是多谢您!您也挺厉害的!呵呵,我得好好再学学!回复 7楼 ch_j1985 的帖子
倒数第七行,print('For order-',i,' solution:'), 好像是有点问题。[ 本帖最后由 side 于 2008-11-3 22:05 编辑 ]
回复 11楼 side 的帖子
谢谢您,我重新写了一下这一行,可是还是提示同样的错误,不知道怎么回事呀,还麻烦您再次赐教!多谢了!回复 12楼 liertwx 的帖子
看不太懂,proc 和 end proc 应该成对出现。您的程序好像没有写完。回复 13楼 side 的帖子
好像只有end也行的,我运行其他程序时都可以的。这个不知道怎么回事。呵呵,谢谢! 请问楼主问题解决了吗 ?
页:
[1]
2