Spirithaunter

75 Reputation

4 Badges

5 years, 216 days

MaplePrimes Activity


These are questions asked by Spirithaunter

Hi there!

I am trying to tell Maple to print something one time once a condition has been met for a variable that ranges from a to b, let's say from 1 to 9 in this case. Testbestanden is to be printed, if (F[i]+F[i+1]<20) is true for every i, and Durchgefallen is to be printed as soon as one counterexample is found. The following code illustrates what I need, it doesn't work, however. What is the correct syntax? Switching the lines "if (F[i]+F[i+1]<20)" and "for i from 1 to 9" leads to Maple printing "Testbestanden" for every i that fulfils the statement which is not what I need either.

for i from 1 to 10 do
  F[i]:=i
end do;

if (F[i]+F[i+1]<20)
for i from 1 to 9
then print(Testbestanden)

else print(Durchgefallen)
end if
end do

Thank you in advance! :)

Hi there:

 

I have a short question. For an algorithm, I need a solution to a linear equation, and I use LinearAlgebra[LinearSolve]. In the case of

 

0            0                    0

                       =      

5            0                    0

 

for example, there are infinitely many, however, so Maple returns (_t2,0). My algorithm just needs one solution, if there are multiple ones, then any (except for _t2=0) is fine. However, if (_t2,0) is the saved solution, the algorithm later breaks down, since it does not expect the extra variable. Is there any way to tell Maple to replace every variable with, say, 1 when solving such an equation?

 

This is my code:

 

NEUZMinus:= proc(Unten, Oben, f,G,Liste,n)::real;
  #Unten:= Untere Intervallgrenze; Oben:= Obere Intervallgrenze; f:= zu integrierende Funktion;
  #G:= Gewicht; n:= Hinzuzufügende Knoten;
  local i;
  with(LinearAlgebra);     
  with(ListTools);
  Basenwechsel:=proc(Dividend, m);
 
  print(Anfang,Dividend,p[m]);
  Koeffizient:=quo(Dividend, p[m],x);

  Rest:=rem(Dividend, p[m],x);
 
  if m=0 then
    Basenwechsel:=[Koeffizient];
  else

    Basenwechsel:=[Koeffizient,op(Basenwechsel(Rest,m-1))];
   
  end if;
 
  end proc;
p[-1]:=0;
p[0]:=1;
for i from 1 to (numelems(Liste)+n)*2 do
  p[i]:=(x^i-add(int(x^i*p[j]*diff(G,x),x=Unten..Oben)*p[j]/int(p[j]^2*diff(G,x),x=Unten..Oben),j=0..i-1));
  print(p[i]);
c[i-1]:=coeff(p[i],x,i)/coeff(p[i-1],x,i-1);
d[i-1]:=(coeff(p[i],x,(i-1))-coeff(p[i-1],x,(i-2)))/coeff(p[i-1],x,(i-1));
if i <> 1 then
  e[i-1]:=coeff(p[i]-(c[i-1]*x+d[i-1])*p[i-1],x,i-2)/coeff(p[i-2],x,i-2);
else
  e[i-1]:=0;
end if;
end do;
print(Liste[1],numelems(Liste));
Hn:=mul(x-Liste[i],i=1..numelems(Liste));
print(Hn);
 Koeffizienten:=Reverse(Basenwechsel(Hn,n)); #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
print(Koeffizienten,HIER);


print(c,d,e);
a[0][0]:=1;
a[1][0]:=x;
a[1][1]:=-e[1]*c[0]/c[1]+(d[0]-d[1]*c[0]/c[1])*x+c[0]/c[1]*x^2;
for s from 2 to numelems(Liste)+n do
  a[s][0]:=x^s;
  a[s][1]:=-e[s]*c[0]/c[s]*x^(s-1)+(d[0]-d[s]*c[0]/c[s])*x^s+c[0]/c[s]*x^(s+1);
    print (coeff(a[s][1],x,s),as1s);
end do;
for s from 2 to numelems(Liste)+n do
  for j from 2 to s do
    
      print(c[j-1]*sum(coeff(a[s][j-1],x,k-1)/c[k-1]*x^k,k=abs(s-j)+2..s+j));  print(sum((d[j-1]-c[j-1]*d[k]/c[k])*coeff(a[s][j-1],x,k)*x^k,k=abs(s-j)+1..s+j-1));  print(c[j-1]*sum(e[k+1]*coeff(a[s][j-1],x,k+1)/c[k+1]*x^k,k=abs(s-j)..s+j-2));print(e[j-1]*sum(coeff(a[s][j-2],x,k)*x^k,k=s-j+2..s+j-2));

     a[s][j]:=c[j-1]*sum(coeff(a[s][j-1],x,k-1)/c[k-1]*x^k,k=abs(s-j)+2..s+j)+sum((d[j-1]-c[j-1]*d[k]/c[k])*coeff(a[s][j-1],x,k)*x^k,k=abs(s-j)+1..s+j-1)-c[j-1]*sum(e[k+1]*coeff(a[s][j-1],x,k+1)/c[k+1]*x^k,k=abs(s-j)..s+j-2)+e[j-1]*sum(coeff(a[s][j-2],x,k)*x^k,k=abs(s-j)+2..s+j-2);

      
   
    
  end do;
end do;
for s from 0 to numelems(Liste)-1 do
  for j from 0 to s do
    print(a[s][j], Polynom[s][j]);
  end do;
end do;
M:=Matrix(n,n);
V:=Vector(n);
 
  for s from 0 to n-1 do
    for j from 0 to s do
      M(s+1,j+1):=sum(coeff(a[s][j],x,k)*Koeffizienten[k+1],k=0..n);
      if s<>j then
        M(j+1,s+1):=M(s+1,j+1);
      end if;
      print(M,1);
    end do;
    print(testb1);print(coeff(a[n][s],x,2));print(Koeffizienten[3]);print(testb2);
    V(s+1):=-sum(coeff(a[n][s],x,k)*Koeffizienten[k+1],k=0..n);
    
    print(M,V);
  end do;
print(M,V);
K:=LinearSolve(M,V);
K(n+1):=1;
print(K);

print(test2,coeff(a[max(3,2)][min(1,2)],x,2));
print(Koeffizienten[3]);
for l from 0 to n do
  for m from 0 to numelems(Liste)do
    print(Koeffizienten[m+1]*coeff(a[7][l],x,m),a[7][l],m,Koeff,Koeffizienten[m+1])
  end do;
end do;
for l from 0 to n do
  print(K(l+1)*add(Koeffizienten[m+1]*coeff(a[max(k,l)][min(k,l)],x,m),m=0..numelems(Liste)));
end do;
    nNeu:=add(p[k]*add(K(l+1)*add(Koeffizienten[m+1]*coeff(a[max(k,l)][min(k,l)],x,m),m=0..numelems(Liste)),l=0..n),k=numelems(Liste)..numelems(Liste)+n);
fsolve(nNeu);
Em:=add(p[i]*K[i+1],i=0..n);
Hnm:=Hn*Em;
KnotenHnm:=fsolve(Hnm);
print(Hn,alt,Em,neu,Hnm);
print(Testergebnis,nNeu);
print(fsolve(Hnm),fsolve(nNeu));
KoeffizientenHnm:=Reverse(Basenwechsel(Hnm,n+numelems(Liste)));  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
print(KoeffizientenHnm);
h0:=int(diff(G,x),x=Unten..Oben);
b[n+numelems(Liste)+2]:=0;
b[n+numelems(Liste)+1]:=0;
  for i from 1 to n+numelems(Liste) do
    for j from n+numelems(Liste) by -1 to 1 do
      print(test21);
      b[j]:=KoeffizientenHnm[j]+(d[j]+KnotenHnm[i]*c[j])*b[j+1]+e[j+1]*b[j+2];
  print(test22);
    end do;
    print(test23);
    gxi:=quo(Hnm,x-KnotenHnm[i],x);
   print(test24);
    Gewichte[i]:=c[1]*b[2]*h0/gxi(i);
   
    Delta[i]:=c[1]*b[2];
  end do;
print(KnotenHnm);
print(Gewichte);
sum(Knoten[k]*Gewichte[k],k=1..n+numelems(Liste));
end proc

With the first use of the subprocedure Basenwechsel, everything works fine. With the input

NEUZMinus(-1,1,x,x,[-sqrt(3/5),0,sqrt(3/5)],4)

I get the result [0,0,0,1,0] correctly.

The following time I use it, the polynomial is different, and m is 7 in that case, so the list should have 8 entries, it just returns the same [0,0,0,1,0] again, however. Changing the polynomial in the first application to say 5*Hn results in [0,0,0,5,0] in both cases again. The procedure seems to have saved the old values and never overwrites them. How can I fix this? I have highlighted the use of the procedure with exclamation marks.

 

Thank you in advance!

P.S.: The lengthy result is this:

NEUZMinus(-1,1,x,x,[-sqrt(3/5),0,sqrt(3/5)],4)

                               x
                              2   1
                             x  - -
                                  3
                             3   3  
                            x  - - x
                                 5  
                          4   3    6  2
                         x  + -- - - x
                              35   7   
                        5   5      10  3
                       x  + -- x - -- x
                            21     9    
                     6    5    5   2   15  4
                    x  - --- + -- x  - -- x
                         231   11      11   
                   7   35      105  3   21  5
                  x  - --- x + --- x  - -- x
                       429     143      13   
                8    7     28   2   14  4   28  6
               x  + ---- - --- x  + -- x  - -- x
                    1287   143      13      15   
              9    63      84   3   126  5   36  7
             x  + ---- x - --- x  + --- x  - -- x
                  2431     221      85       17   
         10    63     315   2   210  4   630  6   45  8
        x   - ----- + ---- x  - --- x  + --- x  - -- x
              46189   4199      323      323      19   
         11    33      55   3   330  5   330  7   55  9
        x   - ---- x + --- x  - --- x  + --- x  - -- x
              4199     323      323      133      21   
    12    33     198   2   2475  4   660  6   495  8   66  10
   x   + ----- - ---- x  + ---- x  - --- x  + --- x  - -- x  
         96577   7429      7429      437      161      23    
 13    429       2574   3   1287  5   1716  7   429  9   78  11
x   + ------ x - ----- x  + ---- x  - ---- x  + --- x  - -- x  
      185725     37145      2185      805       115      25    
     14     143      1001   2   1001  4   1001  6   1001  8
    x   - ------- + ------ x  - ---- x  + ---- x  - ---- x
          1671525   111435      6555      1035      345    

         1001  10   91  12
       + ---- x   - -- x  
         225        27    
                           1   (1/2)   
                         - - 15     , 3
                           5           
               /    1   (1/2)\   /    1   (1/2)\
               |x + - 15     | x |x - - 15     |
               \    5        /   \    5        /
           /    1   (1/2)\   /    1   (1/2)\   4   3    6  2
   Anfang, |x + - 15     | x |x - - 15     |, x  + -- - - x
           \    5        /   \    5        /       35   7   
                            3   3     3   3  
                   Anfang, x  - - x, x  - - x
                                5         5  
                                   2   1
                       Anfang, 0, x  - -
                                       3
                          Anfang, 0, x
                          Anfang, 0, 1
                     [0, 0, 0, 1, 0], HIER #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                            c, d, e
                            0, as1s
                            0, as1s
                            0, as1s
                            0, as1s
                            0, as1s
                            0, as1s
                           4   2    4
                           -- x  + x
                           15        
                               0
                            4    9   2
                          - -- - -- x
                            45   35   
                               1  2
                             - - x
                               3   
                           9   3    5
                           -- x  + x
                           35        
                               0
                          12      16  3
                        - --- x - -- x
                          175     63   
                               1  3
                             - - x
                               3   
                      12   2   8   4    6
                      --- x  + -- x  + x
                      175      45        
                               0
                        4     8   2   25  4
                     - --- - --- x  - -- x
                       175   175      99   
                          12   2   4   4
                        - --- x  - -- x
                          175      15   
                           16  4    6
                           -- x  + x
                           63        
                               0
                          16   2   25  4
                        - --- x  - -- x
                          245      99   
                               1  4
                             - - x
                               3   
                      16   3   40   5    7
                      --- x  + --- x  + x
                      245      231        
                               0
                     64       640   3   36   5
                  - ---- x - ----- x  - --- x
                    3675     14553      143   
                          64   3   4   5
                        - --- x  - -- x
                          945      15   
                  64   2   16   4   72   6    8
                 ---- x  + --- x  + --- x  + x
                 3675      385      455        
                               0
                64      144   2    40   4   49   6
             - ----- - ----- x  - ---- x  - --- x
               11025   13475      1001      195   
                     24   4   9   6   144   2
                   - --- x  - -- x  - ---- x
                     539      35      8575   
                           25  5    7
                           -- x  + x
                           99        
                               0
                         400   3   36   5
                       - ---- x  - --- x
                         6237      143   
                               1  5
                             - - x
                               3   
                     400   4   20   6    8
                     ---- x  + --- x  + x
                     6237      117        
                               0
                    80   2    500   4   49   6
                 - ---- x  - ----- x  - --- x
                   4851      11583      195   
                          20   4   4   6
                        - --- x  - -- x
                          297      15   
                  80   3    40   5   7   7    9
                 ---- x  + ---- x  + -- x  + x
                 4851      1001      45        
                               0
                64        640   3   28   5   64   7
             - ----- x - ----- x  - --- x  - --- x
               14553     63063      715      255   
                     4   5   9   7    80   3
                   - -- x  - -- x  - ---- x
                     91      35      4851   
           64    2    640   4   16   6   160   8    10
          ----- x  + ----- x  + --- x  + ---- x  + x  
          14553      63063      455      1071         
                               0
           64      128   2    80   4   224   6   81   8
        - ----- - ----- x  - ---- x  - ---- x  - --- x
          43659   49049      9009      5967      323   
               640   4   16   6   16  8    1280   2
            - ----- x  - --- x  - -- x  - ------ x
              63063      405      63      305613   
                          36   6    8
                          --- x  + x
                          143        
                               0
                         100   4   49   6
                       - ---- x  - --- x
                         1573      195   
                               1  6
                             - - x
                               3   
                     100   5   28   7    9
                     ---- x  + --- x  + x
                     1573      165        
                               0
                   1600   3   336   5   64   7
                 - ----- x  - ---- x  - --- x
                   99099      7865      255   
                          48   5   4   7
                        - --- x  - -- x
                          715      15   
                1600   4   28   6   144  8    10
                ----- x  + --- x  + --- x  + x  
                99099      715      935         
                               0
              320   2    140   4   2352   6   81   8
           - ----- x  - ----- x  - ----- x  - --- x
             77077      14157      60775      323   
                    12   6   9   8    180   4
                  - --- x  - -- x  - ----- x
                    275      35      11011   
           320   3    320   5   32   7   216   9    11
          ----- x  + ----- x  + --- x  + ---- x  + x  
          77077      33033      935      1463         
                               0
       256        5120    3    1152   5    4608   7   100  9
    - ------ x - ------- x  - ------ x  - ------ x  - --- x
      231231     2081079      133705      124355      399   
               64   5   256   7   16  9    25600   3
            - ---- x  - ---- x  - -- x  - ------- x
              6435      6545      63      6243237   
   256    2    320    4    1280   6    800   8   100  10    12
  ------ x  + ------ x  + ------ x  + ----- x  + --- x   + x  
  231231      127413      153153      24871      693          
                               0
   256      64    2    32000    4    1120   6    900   8   121  10
- ------ - ----- x  - -------- x  - ------ x  - ----- x  - --- x  
  693693   99099      15162147      138567      24871      483    
       8000    4    160   6    600   8   25  10    8000    2
    - ------- x  - ----- x  - ----- x  - -- x   - ------- x
      3270267      18513      16093      99       7630623   
                          49   7    9
                          --- x  + x
                          195        
                               0
                         588   5   64   7
                       - ---- x  - --- x
                         9295      255   
                               1  7
                             - - x
                               3   
                     588   6   112  8    10
                     ---- x  + --- x  + x  
                     9295      663         
                               0
                   980   4    5488   6   81   8
                - ----- x  - ------ x  - --- x
                  61347      129285      323   
                         196   6   4   8
                       - ---- x  - -- x
                         2925      15   
               980   5   2352   7   189   9    11
              ----- x  + ----- x  + ---- x  + x  
              61347      60775      1235         
                               0
            2240   3    84672   5    4032   7   100  9
         - ------ x  - ------- x  - ------ x  - --- x
           552123      8690825      104975      399   
                     48   7   9   9    756   5
                  - ---- x  - -- x  - ----- x
                    1105      35      46475   
         2240   4    896   6    7776   8   40   10    12
        ------ x  + ----- x  + ------ x  + --- x   + x  
        552123      94809      230945      273          
                               0
      64    2    22400   4    127008   6   1080   8   121  10
   - ----- x  - ------- x  - -------- x  - ----- x  - --- x  
     61347      9386091      15011425      29393      483    
              1792   6    48   8   16  10    2240   4
           - ------ x  - ---- x  - -- x   - ------ x
             182325      1235      63       552123   
  64    3    22400   5    1120   7    600   9   385   11    13
 ----- x  + ------- x  + ------ x  + ----- x  + ---- x   + x  
 61347      9386091      138567      19019      2691          
                               0
    256        51200    3    13440   5    2560   7    5500   9
 - ------ x - -------- x  - ------- x  - ------ x  - ------ x
   920205     84474819      6605027      323323      153387   

      144  11
    - --- x  
      575    
      22400   5    4320   7   1000   9   25  11    56000    3
   - ------- x  - ------ x  - ----- x  - -- x   - -------- x
     9386091      508079      27027      99       54660177   
  256    2     7168    4    13440   6    80000    8   100   10
 ------ x  + -------- x  + ------- x  + -------- x  + ---- x  
 920205      11471889      6605027      10669659      3289    

      504   12    14
    + ---- x   + x  
      3575          
                               0
    256       3072    2    112000    4    112000   6    8100    8
- ------- - -------- x  - --------- x  - -------- x  - ------- x
  2760615   19119815      217965891      59445243      1062347   

     264   10   169  12
   - ---- x   - --- x  
     7475       675    
     89600    4    13440   6    21600   8   140   10   36   12
 - --------- x  - ------- x  - ------- x  - ---- x   - --- x  
   149134557      6605027      2719717      3887       143    

        768    2
    - ------- x
      2924207   
                        1, Polynom[0][0]
                        x, Polynom[1][0]
                     1    2               
                     - + x , Polynom[1][1]
                     3                    
                        2               
                       x , Polynom[2][0]
                    4       3               
                    -- x + x , Polynom[2][1]
                    15                      
                 4   2    4   4                
                 -- x  + x  + --, Polynom[2][2]
                 21           45               
             Matrix(%id = 18446745693991291350), 1
                             testb1
                               0
                               0
                             testb2
          Matrix(%id = 18446745693991291350),

            Vector[column](%id = 18446745693991291470)
             Matrix(%id = 18446745693991291350), 1
             Matrix(%id = 18446745693991291350), 1
                             testb1
                               0
                               0
                             testb2
          Matrix(%id = 18446745693991291350),

            Vector[column](%id = 18446745693991291470)
             Matrix(%id = 18446745693991291350), 1
             Matrix(%id = 18446745693991291350), 1
             Matrix(%id = 18446745693991291350), 1
                             testb1
                              16
                              ---
                              245
                               0
                             testb2
          Matrix(%id = 18446745693991291350),

            Vector[column](%id = 18446745693991291470)
             Matrix(%id = 18446745693991291350), 1
             Matrix(%id = 18446745693991291350), 1
             Matrix(%id = 18446745693991291350), 1
             Matrix(%id = 18446745693991291350), 1
                             testb1
                               0
                               0
                             testb2
          Matrix(%id = 18446745693991291350),

            Vector[column](%id = 18446745693991291470)
          Matrix(%id = 18446745693991291350),

            Vector[column](%id = 18446745693991291470)
           Vector[column](%id = 18446745693991291830)
                                  9
                           test2, --
                                  35
                               0
                           7             
                       0, x , 0, Koeff, 0
                           7             
                       0, x , 1, Koeff, 0
                           7             
                       0, x , 2, Koeff, 0
                           7             
                       0, x , 3, Koeff, 1
                     49   6    8             
                  0, --- x  + x , 0, Koeff, 0
                     195                     
                     49   6    8             
                  0, --- x  + x , 1, Koeff, 0
                     195                     
                     49   6    8             
                  0, --- x  + x , 2, Koeff, 0
                     195                     
                     49   6    8             
                  0, --- x  + x , 3, Koeff, 1
                     195                     
                112  7    9   588   5             
             0, --- x  + x  + ---- x , 0, Koeff, 0
                663           9295                
                112  7    9   588   5             
             0, --- x  + x  + ---- x , 1, Koeff, 0
                663           9295                
                112  7    9   588   5             
             0, --- x  + x  + ---- x , 2, Koeff, 0
                663           9295                
                112  7    9   588   5             
             0, --- x  + x  + ---- x , 3, Koeff, 1
                663           9295                
         2352   6   189   8    10    980   4             
      0, ----- x  + ---- x  + x   + ----- x , 0, Koeff, 0
         60775      1235            61347                
         2352   6   189   8    10    980   4             
      0, ----- x  + ---- x  + x   + ----- x , 1, Koeff, 0
         60775      1235            61347                
         2352   6   189   8    10    980   4             
      0, ----- x  + ---- x  + x   + ----- x , 2, Koeff, 0
         60775      1235            61347                
         2352   6   189   8    10    980   4             
      0, ----- x  + ---- x  + x   + ----- x , 3, Koeff, 1
         60775      1235            61347                
    896   5    7776   7   40   9    11    2240   3             
0, ----- x  + ------ x  + --- x  + x   + ------ x , 0, Koeff, 0
   94809      230945      273            552123                
    896   5    7776   7   40   9    11    2240   3             
0, ----- x  + ------ x  + --- x  + x   + ------ x , 1, Koeff, 0
   94809      230945      273            552123                
    896   5    7776   7   40   9    11    2240   3             
0, ----- x  + ------ x  + --- x  + x   + ------ x , 2, Koeff, 0
   94809      230945      273            552123                
   2240    896   5    7776   7   40   9    11    2240   3     
  ------, ----- x  + ------ x  + --- x  + x   + ------ x , 3,
  552123  94809      230945      273            552123        

    Koeff, 1
                               0
                               0
                               0
                               0
                               0
/    1   (1/2)\   /    1   (1/2)\       155   10  2    4       
|x + - 15     | x |x - - 15     |, alt, --- - -- x  + x , neu,
\    5        /   \    5        /       891   9                

  /    1   (1/2)\   /    1   (1/2)\ /155   10  2    4\
  |x + - 15     | x |x - - 15     | |--- - -- x  + x |
  \    5        /   \    5        / \891   9         /
 Testergebnis,

      2459840   5    80254400        188027200   3    2240   7
   - --------- x  - ----------- x + ----------- x  + ------ x
     193795173      44766684963     19185722127      552123   
-0.9604912687, -0.7745966692, -0.4342437493, 0., 0.4342437493,

  0.7745966692, 0.9604912687, -1.435338337, -0.8946894490,

  -0.5176357564, 0., 0.5176357564, 0.8946894490, 1.435338337
                        [0, 0, 0, 1, 0] #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                             test21
Error, (in NEUZMinus) invalid subscript selector

 

Hi there!

I am trying to save the coefficients of a polynomial in a list to work with them in a rather complicated procedure. It is about representing a polynomial via a set of orthogonal polynomials phi_n which change depending on the input. For example, phi_s*phi_0=1*phi_s, so the coefficient of phi_s is 1 and the rest is 0. I save this as a[s][0][s]:=1. In this procedure, however, the coefficient of phi_{s+1} or phi_{s+10} might come up, and I have not declared them as 0, so the procedure stops whenever something like a[s][0][s+2] or a[s][0][s+10] appears. I could work with polynomials I guess, saving x^s for the result of

phi_s*phi_0 and working with coeff (x^s,n), which would indeed return 0 if n is not s instead of aborting the entire procedure, however, to me, it's not quite beautiful coding to encrypt the needed coefficients in another polynomial instead of just extracting them into a list. Is there a way to tell Maple that anything unspecified, a[s][j][x], shall just be 0?
 
Thank you in advance, Daniel
 
 

Hi there!

Essentially, sum(sqrt(-2),x=2..1) is, as it should be, 0. My issue is, that e.g. sum(sqrt(-2),x=2..0) or sum(sqrt(-2),x=2..-1)  are declared by Maple as -I*sqrt(2) and -(2*I)*sqrt(2), which, to my knowledge, is not true, and should be 0 as well. I need those results for a rather complicated algorithm to be 0, otherwise it doesn't work.

NEUZMinus:= proc(Unten, Oben, f,G,Liste,n)::real;
  #Unten:= Untere Intervallgrenze; Oben:= Obere Intervallgrenze; g:= zu integrierende Funktion;
  #G:= Gewicht; n:= Hinzuzufügende Knoten;
 
  Basenwechsel:=proc(Dividend, m);
 
  print(Anfang,Dividend,p[m]);
  Koeffizient:=quo(Dividend, p[m],x);

  Rest:=rem(Dividend, p[m],x);
 
  if m=0 then
    Basenwechsel:=[Koeffizient];
  else

    Basenwechsel:=[Koeffizient,op(Basenwechsel(Rest,m-1))];
   
  end if;
 
  end proc;
p[-1]:=0;
p[0]:=1;
for i from 1 to max(n,numelems(Liste)) do
  p[i]:=x^i-add(int(x^i*p[j]*diff(G,x),x=Unten..Oben)*p[j]/int(p[j]^2*diff(G,x),x=Unten..Oben),j=0..i-1);
  print(p[i]);
c[i-1]:=lcoeff(p[i],x)/lcoeff(p[i-1],x);
d[i-1]:=coeff(p[i],x,(i-1))/coeff(p[i-1],x,(i-1));
if i <> 1 then
  e[i-1]:=coeff(p[i]-(c[i-1]*x+d[i-1])*p[i-1],x,i-2)/coeff(p[i-2],x,i-2);
else
  e[i-1]:=1;
end if;
end do;
print(Liste[1],numelems(Liste));
Hn:=mul(x-Liste[i],i=1..numelems(Liste));
print(Hn);
 Koeffizienten:=Basenwechsel(Hn,numelems(Liste));
print(Koeffizienten);
for j from 0 to numelems(Liste)-1 do
  a[s][j][j]:=1;
end do;
for s from 1 to numelems(Liste)-1 do
  a[s][0]:=[1];
  a[s][1]:=[-e[s]*c[0]/c[s],d[0]-d[s]*c[0]/c[s],c[0]/c[s]];
  for j from 2 to numelems(Liste)-1 do
    print(1);
    a[s][j][abs(s-j)]:=sum(-c[j-1]*e[i+1]*a[s][j-1][i+1]/c[i+1],i=abs(s-j)..min(abs(s-j),s+j-2));
    print(2);
    a[s][j][abs(s-j)+1]:=sum(d[j-1]-c[j-1]*d[i]/c[i])*a[s][j-1][i],i=abs(s-j)+1..min(abs(s-j)+1,s+j-1)+sum(-c[j-1]*e[i+1]*a[s][j-1][i+1]/c[i+1],         i=abs(s-j)+1..min(abs(s-j)+1,s+j-2));
    print(3);
    for i from abs(s-j)+2 to s+j-2 do
      a[s][j][i]:=c[j-1]*a[s][j-1][i-1]/c[i-1]+(d[j-1]-c[j-1]*d[i]/c[i])*a[s][j-1][i]-c[j-1]*e[i+1]*a[s][j-1][i+1]/c[i+1]+e[j-1]*a[s][j-2][i];

      print(4);
    end do;
    a[s][j][s+j-1]:=sum(c[j-1]*a[s][j-1][i-1]/c[i-1],i=max(s-j+2,s+j-1)..s+j-1)+sum((d[j-1]-c[j-1]*d[i]/c[i])*a[s][j-1][i],i=max(s-j+1,s+j-1));
    print(5);
    a[s][j][s+j]:=sum(c[j-1]*a[s][j-1][i-1]/c[i-1],i=max(s-j+2,s+j)..s+j);
    print(6);
  end do;
end do
 

end proc

 

In the case of

a[s][j][abs(s-j)+1]:=sum(d[j-1]-c[j-1]*d[i]/c[i])*a[s][j-1][i],i=abs(s-j)+1..min(abs(s-j)+1,s+j-1)+sum(-c[j-1]*e[i+1]*a[s][j-1][i+1]/c[i+1],         i=abs(s-j)+1..min(abs(s-j)+1,s+j-2));

 
 
for example, the
i=abs(s-j)+1..min(abs(s-j)+1,s+j-2) clause in the end checks, wether the term should be added or not. I basically just need a way to tell Maple wether to add a term or not, depending on wether abs(s-j)+1 is not greater than s+j-2 in this case, without using if-clauses if possible. The problem here is, that min(abs(s-j)+1,s+j-2) can become 0, Maple then tries to calculate something instead of returning 0, and then complains when something inside the term is not properly defined (c[j-1] can become c[-1] for example when j=0) and aborts the entire procedure. How can I tell it to just assign 0?
 
 
 
 
 
1 2 3 4 Page 3 of 4