# Question:Subprocedure spits out the answer of the first use for each following use

## Question:Subprocedure spits out the answer of the first use for each following use

Maple 2016

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
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
end do;
fsolve(nNeu);
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.

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

﻿