liertwx 发表于 2008-10-31 23:38

maple里提示“Error, unable to match delimiters”,怎么修改呀?

各位前辈,请问maple里提示“Error, unable to match delimiters”,怎么修改程序呀?急求高手帮忙解答!谢谢!

side 发表于 2008-11-1 13:58

回复 楼主 liertwx 的帖子

括号应该成对出现。漏掉了括号,就会产生这种信息。

liertwx 发表于 2008-11-1 19:00

回复 沙发 side 的帖子

多谢指导,我好好检查一下我的程序!

liertwx 发表于 2008-11-1 19:22

回复 沙发 side 的帖子

我检查了一下,括号是成对的,没有漏掉什么呀,有没有其他什么情况呀?请高手指导。谢谢

[ 本帖最后由 liertwx 于 2008-11-1 19:24 编辑 ]

ch_j1985 发表于 2008-11-1 19:44

回复 地板 liertwx 的帖子

LZ能否把程序贴出来,方便大家修改?

liertwx 发表于 2008-11-1 20:10

回复 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 编辑 ]

ch_j1985 发表于 2008-11-1 20:28

回复 6楼 liertwx 的帖子

这句有没有问题?
for i from 5 to N1+4do

liertwx 发表于 2008-11-1 21:09

回复 7楼 ch_j1985 的帖子

加了空格还是不行,不知道那里有问题

ch_j1985 发表于 2008-11-1 21:32

回复 8楼 liertwx 的帖子

具体的语法我也不太清楚,还是等高手来解决吧……

liertwx 发表于 2008-11-1 21:50

回复 9楼 ch_j1985 的帖子

还是多谢您!您也挺厉害的!呵呵,我得好好再学学!

side 发表于 2008-11-3 10:30

回复 7楼 ch_j1985 的帖子

倒数第七行,print('For order-',i,' solution:'), 好像是有点问题。

[ 本帖最后由 side 于 2008-11-3 22:05 编辑 ]

liertwx 发表于 2008-11-3 16:16

回复 11楼 side 的帖子

谢谢您,我重新写了一下这一行,可是还是提示同样的错误,不知道怎么回事呀,还麻烦您再次赐教!多谢了!

side 发表于 2008-11-3 20:09

回复 12楼 liertwx 的帖子

看不太懂,proc 和 end proc 应该成对出现。您的程序好像没有写完。

liertwx 发表于 2008-11-3 23:02

回复 13楼 side 的帖子

好像只有end也行的,我运行其他程序时都可以的。这个不知道怎么回事。呵呵,谢谢!

s040827 发表于 2010-12-28 22:29

请问楼主问题解决了吗 ?
页: [1] 2
查看完整版本: maple里提示“Error, unable to match delimiters”,怎么修改呀?