acer

32405 Reputation

29 Badges

19 years, 350 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are answers submitted by acer

It's clear from your Questions picture, and the attachment's filename, that you are trying to Read an image stored in your Maple workbook.

With a short edit to your this URI the following zipped workbook succeeds for me using Maple 2023.1.

TestTrans_ac.zip

The following is as much as I believe can be recovered here. (Three input equations were corrupted; somewhat near the beginning.)

Hjemmeopgave_7_igen_ac.zip

I suggest that you upgrade to Maple 2023, if available to you. It seems to have fewer incidences of this problem.

You can use your desired ranges for x and t in the calls to contourplot, along with scaling by Mx and N respectively. And you can also use the desired ranges directly in the (density-plot) PLOT call.

 

restart;

 

Digits := 20:

 

with(plots): with(CurveFitting,ArrayInterpolation):
 

 

N := 20: Mx := 20: L := 1: `&Delta:x` := L/Mx: T := 2: `&Delta:t` := T/N:

 

for i from 0 while i <= Mx do u[i, 0] := 0 end do:
for n from 0 while n <= N do u[0, n] := 0: u[Mx, n] := 0 end do:
for n from 0 while n <= N-1 do
  for i while i <= Mx-1 do
    Ru[i, n] := eval((u[i, n+1]-u[i, n])/`&Delta:t` = (u[i+1, n+1]-2*u[i, n+1]+u[i-1, n+1])/`&Delta:x`^2-u[i, n+1]+.5);
  end do;
  Sol[n] := fsolve({seq(Ru[i, n], i = 1 .. Mx-1)});
  assign(op(Sol[n]));
end do:
 

 

Digits := 10: NP := 100:
XX := [seq(seq(i1/Mx, i1 = 0 .. Mx), i2 = 0 .. N)]:
TT := [seq(seq(i2, i1 = 0 .. Mx), i2 = 0 .. N)]:
ZZ := [seq(seq(u[i1, i2], i2 = 0 .. N), i1 = 0 .. Mx)]:

 

interfunc := subs(__M = Matrix(Matrix(Mx+1, N+1, ZZ), datatype = float[8]),
  (x, y) -> ArrayInterpolation([[`$`(i1, i1 = 0 .. Mx)], [`$`(i2, i2 = 0 .. N)]],
                               __M, [[x], [y]], method = cubic)[1, 1]):

 

newz := ArrayInterpolation([[`$`(i1, i1 = 0 .. Mx)], [`$`(i2, i2 = 0 .. N)]],
                           Matrix(Mx+1, N+1, ZZ, datatype = float[8]),
                           [[seq(Mx*(i3-1)/(NP-1), i3 = 1 .. NP)],
                            [seq(N*(i3-1)/(NP-1), i3 = 1 .. NP)]], method = cubic):

 

nminz, nmaxz := (simplify@fnormal@min, max)(newz):

 

C := .666*(1-ImageTools:-FitIntensity(newz)):

 

PC := PLOT(GRID(0 .. 2, 0 .. 2, newz, COLOR(HUE, C)), STYLE(PATCHNOGRID)):

 

numcontours := 15:

 

PP := display(PC,
   contourplot((x,t)->interfunc(Mx/2*x,N/2*t), 0 .. 2, 0 .. 2, grid=[101,101],
               thickness = 0, contours = [seq(nminz+(nmaxz-nminz)*(i3-1)/(numcontours+2-1),
                                              i3 = 1 .. numcontours+1)]),
   seq(plot(ZZ[1], nminz .. nminz, thickness = 15, color = COLOR(HUE, .666*(1-i3/(numcontours+1))),
   legend = sprintf(" %.3f", nminz+i3*(nmaxz-nminz)/(numcontours+1))), i3 = numcontours+1 .. 0, -1),
   legendstyle = [location = right, font = [Helvetica, 14]], font = [Helvetica, 16],
   labelfont = [Helvetica, bold, 16], labels = [x, t], labeldirections = [horizontal, vertical]):
 

 

display(PP, size = [500, 400]);

 

 

display(subs(THICKNESS(0)=THICKNESS(0.5),
             THICKNESS(15)=THICKNESS(35),PP), size = [720, 640]);

 


I also made a few changes for (IMO) a better look, such as getting rid of the minus sign on "-0.000", increasing the contourplot grid, etc.

Also, one way to get a nicer final export is to increase the plot size, since you can then scale down using a good external image processing program. I also made the contours thinner using subs, since IIRC Maple 2015's contourplot didn't allow that thickness (thinner than thickness=0 !) 

This direct approach can be more efficient than using plottools:-transform to re-scale/shift the original result (after the fact).

I think that it's often easier to manage in the long run if your calls/functions are properly scaled up front, instead of fudging the tickmarks later on. (I choose forced tickmarks only as last resort, usually. It doesn't work with all later transformations, as one reason.)

By the way, I suggest exporting the plot from Maple in .PNG format. Well, almost anything except .JPG, for which the results are generally poor.

If you want advice about exporting the data then you should describe the required format in explicit and adequate detail. Merely mentioning a product's name, like "tecplot", is not adequate.

ps. Quite a bit of this code looks like bits that I'd written. Is that right? I'm curious now; where did you get it from?

Since you gave a followup example (elsewhere),
 

with(Statistics):

L1:=[2,4,6]:

ColumnGraph(L1,
            axis[1]=[tickmarks=[[.4="abe",1.4="banan",2.4="palme"],
                     rotation=Pi/4]]);

Download jestrup1.mw

This is as much as I could recover. I think it is most of it.

I left all the sections unexpanded.

prac_exam_ece4179_acc.mw

There may be a missing equation just after the line with "evaluate for the given points" in section 1, and another just after "This decision boundary will realize" in section 4.

I notice that you were using Maple 2022.2.  I suggest upgrading to Maple 2023 if available to you; it seems to have fewer occurences of this problem.

Your attempts at forming a Matrix try to use Ans[k], but your loop simply assigns (repeatedly) to just Ans. It looks like you meant to assign to Ans[j] and Ans1[j] in the loop.

In your systems of equations you have terms like Theta(eta,t), but in your attempts at forming a Matrix you have the arguments of Theta reversed, like Theta(0.5,eta). Did you mean Theta(eta,0.5) instead? The same happens for the other functions.

When you write,
   eval(diff(Theta(0.5,eta),eta),Ans[k])(0)
are you wanting instead to take from Ans[k] the derivative of Theta(eta,0.5) w.r.t. eta, and then evaluate that very close to eta=0? If so then this is essentially the same as your query in your previous Question. You are mistakenly using technique appropriate for a result from dsolve(...,numeric) rather than from pdsolve(...,numeric). Have a look at this: error_in_table_value_ac.mw

You could avoid duplication of conputation by computing the Matrix entries (involving the other terms that I omitted) in a loop.

Are you trying to get something like the following?

restart

randomize()

M := proc () local A, B, operation, str; A := RandomTools:-Generate(integer(range = -5 .. 5, exclude = {0})); B := RandomTools:-Generate(integer(range = -5 .. 5, exclude = {0, A})); operation := combinat:-randcomb([`%+`, `%-`, `%*`], 1)[]; str := sprintf("%a(%a,%a)", operation, A, B); InertForm:-Display(InertForm:-Parse(str), 'inert' = false) = value(operation(A, B)) end proc

M()

0, "%1 is not a command in the %2 package", _Hold, Typesetting

M()

0, "%1 is not a command in the %2 package", _Hold, Typesetting

M()

0, "%1 is not a command in the %2 package", _Hold, Typesetting

M()

0, "%1 is not a command in the %2 package", _Hold, Typesetting

M()

0, "%1 is not a command in the %2 package", _Hold, Typesetting

M()

0, "%1 is not a command in the %2 package", _Hold, Typesetting

M()

0, "%1 is not a command in the %2 package", _Hold, Typesetting

Download Qop2_ac.mw

Those are actually equations, and you could use or access their lhs and rhs separately.

Note that formation of the string may not be strictly necessary, compared with simply calling the operation on the arguments directly to get the inert expression. (But there seemed to be a few corner cases, where using the inert operators with prefix form helped.) Did you really need the string representation, using infix form, or is the above result from InertForm:-Display enough?

I notice that you had B set up to avoid being A. Is that because you didn't want A-B to produce 0? If so perhaps you'd also want to avoid A+B=0 when B=-A? And perhaps you'd prefer neither A nor B to be -1 or 1 when multiplying?  Qop2_ac2.mw

It sounds as if your preferences were not migrated to your new installation. (There's usually a dialogue that asks about that, during installation.)

You can set the preference by using the main menubar,

   Tools->Options->Display

and then set the drop-menu box "Input display" to "Maple Notation".  Then press the "Apply Globally" button to set it as default.

@zenterix You could use the terser,

   m::{Matrix,list(Matrix)}

instead of using `Or` in the type specification.

The LinearSolve command in the LinearAlgebra package can handle this.

Let's write out the coefficients (of x) for your polynomials, as column Vectors. Form a Matrix of the ones from S.

Then call LinearSolve.

restart;

with(LinearAlgebra,LinearSolve):

 

S:={x+4, 3*x-7}: f:=-5*x+10:

T := max(degree~(S,x))+1:

A:=Matrix(T,nops(S),(i,j)->coeff(S[j],x,i-1));

Matrix(2, 2, {(1, 1) = 4, (1, 2) = -7, (2, 1) = 1, (2, 2) = 3})

B:=Vector(T,(i)->coeff(f,x,i-1));

Vector(2, {(1) = 10, (2) = -5})

LinearSolve(A,B);

Vector(2, {(1) = -5/19, (2) = -30/19})

 

SC := {x+4, 2*x+8}:

T := max(degree~(SC,x))+1:

AC:=Matrix(T,nops(SC),(i,j)->coeff(SC[j],x,i-1));

Matrix(2, 2, {(1, 1) = 4, (1, 2) = 8, (2, 1) = 1, (2, 2) = 2})

LinearSolve(AC,B);

Error, (in LinearAlgebra:-LinearSolve) inconsistent system

 

S:={x^2+x+4, 7*x^2+3*x, x+1}: f:=-5*x+10:

T := max(degree~(S,x))+1:

A:=Matrix(T,nops(S),(i,j)->coeff(S[j],x,i-1));

Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 4, (2, 1) = 1, (2, 2) = 3, (2, 3) = 1, (3, 1) = 0, (3, 2) = 7, (3, 3) = 1})

B:=Vector(T,(i)->coeff(f,x,i-1));

Vector(3, {(1) = 10, (2) = -5, (3) = 0})

LinearSolve(A,B);

Vector(3, {(1) = -15/2, (2) = -5/8, (3) = 35/8})

Download LS_ex2.mw

note: You wrote, "corresponding linear system", which indicates that you recognize that this problem can be expressed as a linear system. Using LinearSolve might then not be unexpected. Reformulating the polynomial relationships as a linear system, programmatically, might then be useful for you.

Notice that you were using the %d format code for this item, in printf. That's for integers. But you mentioned wanting them as 1.0,1.2,...2.0, which are floats. So you could use the %2.1f format, in printf.

Now, you already have the float values you mentioned wanting, available directly via t[i] .

If you didn't already have them using t[i] then you could also get n values evenly spaced between a and b by using the formula,
   a + (b-a)*(i-1)/(n-1)
which for this example would be,
   1 + (2-1)*(i-1)/(n-1)
which can be shortened to,
   1 + (i-1)/(n-1)

restart;

actual:=<2,3.5136,5.8016,9.1136,13.7376,20>:
t:=<1,1.2,1.4,1.6,1.8,2>:
n:=6:

P:=Statistics:-LinearFit([1,x],t,actual,x):

printf("t    Actual P  Model P  Error\n");
for i from 1 to n do

   model:=subs(x=t[i],P):
   err:=actual[i]-model:

   #printf("%2.1f %7.4f% 10.4f% 9.4f\n",
   #        1+(i-1)/(n-1),actual[i],model,err);

   printf("%2.1f %7.4f% 10.4f% 9.4f\n",
          t[i],actual[i],model,err);

end do:

t    Actual P  Model P  Error
1.0  2.0000    0.1717   1.8283
1.2  3.5136    3.7141  -0.2005
1.4  5.8016    7.2565  -1.4549
1.6  9.1136   10.7989  -1.6853
1.8 13.7376   14.3413  -0.6037
2.0 20.0000   17.8837   2.1163

Download frm.mw


For future programming, you might also care to think about how the following work. These kinds of construction occur pretty often in programming. It can be a useful thing to get familiar with.

<seq(1.0..2.0,0.2)>;
n:=6:
<seq(1.0..2.0,numelems=n)>;
<seq(1.0..2.0,(2-1)/(n-1))>;
<seq(1.0+(i-1)/(n-1),i=1..n)>;
Vector(n,i->1.0+(i-1)/(n-1));

You are using module locals like Chevron2A as the keys of some of your tables.

That will prevent you from accessing table entries if you subsequently try and use (say) the global names like Chevron2A as the key, trying that access outside the module.

You could, instead, use global name :-Chevron2A as the table key when creating the entry. Then you can use that as key, for access elsewhere. [edit] I would prefer this, over a module export. Using strings is also a good possibility, as Carl has mentioned after I posted this Answer. If you use the global name as key then you ought to quote it (and protect from evaluation), in case it is also assigned some value, eg. ':-Chevon2A'.

Or you could instead declare Chevron2A as an export of the module. Then, later, you could use it as key in its long-form (fully qualified name),  calculateblahcubitblah:-Chevron2A. Or you could make the module a package, so after doing with(calculateblahcubitblah) its exports become the new bindings for reference via the short-form Chevron2A. [edit] This is not my favorite choice, and I can only think of convoluted scenarios in which it'd provide extra contextual usefulness.

The code snippets that you showed above indicate that this problem that I've described occurs in your code. I cannot tell whether you also have other issues, eg. last-name-eval of tables assigned to names. I suggest using eval(nameoftable) when putting into lists or if returning them straight from procedures.

Some of your procedures will throw an error for certains ranges of inputs alpha and delta.

The plots:-inequal command appears to get slightly confused by that situation, and in consequence can misrepresent the feasible region..

Below and use short wrappers for those three procedures, so that when failing to produce a result (throwing an error) they instead return either a large positive or large negative value. Those can be used appropriately for the inequality tests, so that a more clear/robust representation of the feasible region is attained.

Double check, for correctness.

restartNULL

with(plots); with(RealDomain)

NULL

c := 1; cr := 0.3e-1*c; u := 1; sExp := 0.6e-1*c; s := .65*c; v := 3*cNULL

NULL

FirmModelPP := proc (alpha, beta, delta) local p0, xi0, q0, Firmpf0, G01, Recpf0, Unsold0, Environ0; option remember; xi0 := 1; p0 := min(s+sqrt((v-s)*(c-s)), delta*v+sExp); q0 := u*(v-p0)/(v-s); f(N) := 1/u; F(N) := N/u; G01 := int(F(N), N = 0 .. q0); Firmpf0 := (p0-c)*q0-(p0-s)*G01; Recpf0 := (sExp-cr)*xi0*q0; Unsold0 := G01; Environ0 := q0+Unsold0; return p0, q0, Firmpf0, Recpf0, Environ0, Unsold0 end proc

NULL

NULLNULLNULL

FirmModelFC := proc (alpha, beta, delta) local p00, xi00, q00, Firmpf00, G001, G002, Recpf00, Unsold00, Environ00, pr00; option remember; xi00 := 1; p00 := s+sqrt((v-s)*(c-s)); q00 := alpha*u*(v-p00)/(v-s); f(N) := 1/u; F(N) := N/u; G001 := int(F(N), N = 0 .. q00/alpha); G002 := int(F(N), N = 0 .. beta*xi00*q00/(1-alpha)); pr00 := p00-delta*v; Firmpf00 := (p00-c)*q00-alpha*(p00-s)*G001; Recpf00 := xi00*q00*(sExp-cr)+(pr00-sExp)*(beta*xi00*q00-(1-alpha)*G002); Unsold00 := alpha*G001; Environ00 := q00+Unsold00; return p00, q00, Firmpf00, Recpf00, Environ00, Unsold00 end proc

NULLNULLNULL

NULLNULL

NULL

FirmModelHmax := proc (alpha, beta, delta) local q, p, pr, FirmpfSiS, F1, G1, G2, G3, RecpfSiS, sol, UnsoldSiS, EnvironSiS, p0, OldSoldPrim, xi, h, ps, qs, prs, prof1m, prof2m; option remember; xi := 1; prs := ps-delta*v; prof1m := (ps-c)*qs+((1/2)*beta^2*xi^2*qs^2/(u*(1-alpha))-(1/2)*(1+beta*xi)^2*qs^2/u)*(ps-s)+(prs-sExp)*(beta*xi*qs-(1/2)*beta^2*xi^2*qs^2/(u*(1-alpha))); prof2m := (ps-c)*qs-(1/2)*(ps-s)*qs^2/(alpha*u)+(prs-sExp)*(beta*xi*qs-(1/2)*beta^2*xi^2*qs^2/(u*(1-alpha))); if alpha <= 1/(1+beta*xi) then p, q := (eval([ps, qs], solve({diff(prof1m, qs) = 0, qs = alpha*u*(v-ps)/(v-s), c < ps, sExp+delta*v < ps, qs < 2*u*(1-alpha)/(beta*xi)}, [ps, qs])[1]))[]; `h&Assign;`*(p-delta*v-sExp)/(p-delta*v); FirmpfSiS := eval(prof1m, [ps = p, qs = q, prs = p-delta*v]); RecpfSiS := (sExp-cr)*xi*q; UnsoldSiS := (1/2)*(1+beta*xi)^2*q^2/u-(1/2)*beta^2*xi^2*q^2/(u*(1-alpha)); EnvironSiS := q+UnsoldSiS else p, q := (eval([ps, qs], solve({diff(prof2m, qs) = 0, qs = alpha*u*(v-ps)/(v-s), c < ps, sExp+delta*v < ps, qs < 2*u*(1-alpha)/(beta*xi)}, [ps, qs])[1]))[]; h := (p-delta*v-sExp)/(p-delta*v); FirmpfSiS := eval(prof2m, [ps = p, qs = q, prs = p-delta*v]); RecpfSiS := (sExp-cr)*xi*q; UnsoldSiS := (1/2)*q^2/(alpha*u); EnvironSiS := q+UnsoldSiS end if; return p, q, FirmpfSiS, RecpfSiS, EnvironSiS, UnsoldSiS, h, OldSoldPrim, xi end proc

NULL

NULLNULL

pltPP3A := plot('FirmModelPP(alpha, .35, .40)[3]', alpha = 0. .. 1.0, color = red, legend = "", style = pointline, labels = [alpha, "Firm Profit"], labeldirections = ["horizontal", "vertical"], symbolsize = 10, axes = boxed, symbol = box, numpoints = 10, adaptive = false, thickness = 1.0, view = [0 .. 1, 0 .. .18])

NULL

pltPP3B := plot([[0., eval('FirmModelPP(0., .35, .40)[3]', alpha = 0.)]], color = red, legend = ["PP"], style = point, symbol = box, symbolsize = 10, axes = boxed, view = [0 .. 1, 0 .. .18])

NULL

pltFC3A := plot('FirmModelFC(alpha, .35, .40)[3]', alpha = 0. .. 1, linestyle = [solid], color = black, legend = "FC", labels = [alpha, "Firm Profit"], labeldirections = ["horizontal", "vertical"], axes = boxed, adaptive = false, thickness = .7)

NULL

NULLNULLNULLNULLNULL

pltHmax3A := plot('FirmModelHmax(alpha, .35, .40)[3]', alpha = 0. .. 1.0, linestyle = [dashdot], color = brown, legend = [SiS(h__max)], labels = [alpha, "Firm Profit"], labeldirections = ["horizontal", "vertical"], symbolsize = 10, numpoints = 50, adaptive = false, thickness = 1.0, axes = boxed)

NULL

#H:=plot3d((a,d)->FirmModelHmax(a, 0.35, d)[3]-FirmModelFC(a, 0.35, d)[3],
#       0..1,0..0.5,grid=[49,49],style=surface,orientation=[-90,0,0],lightmodel=none,
#       color=((a,d)->1/3*(1+signum(FirmModelHmax(a, 0.35, d)[3]-FirmModelFC(a, 0.35, d)[3]))),
#       adaptmesh=true
#      );

FMHmax := proc (a, d, lowhigh::(identical("low", "high"))) local res; option remember; if not [a, d]::(list(numeric)) then return 'procname(args)' end if; try res := FirmModelHmax(a, .35, d)[3] catch: res := undefined end try; if res::numeric then res elif lowhigh = "low" then -199 else 199 end if end proc; FMFC := proc (a, d, lowhigh::(identical("low", "high"))) local res; option remember; if not [a, d]::(list(numeric)) then return 'procname(args)' end if; try res := FirmModelFC(a, .35, d)[3] catch: res := undefined end try; if res::numeric then res elif lowhigh = "low" then -199 else 199 end if end proc; FMPP := proc (a, d, lowhigh::(identical("low", "high"))) local res; option remember; if not [a, d]::(list(numeric)) then return 'procname(args)' end if; try res := FirmModelPP(a, .35, d)[3] catch: res := undefined end try; if res::numeric then res elif lowhigh = "low" then -199 else 199 end if end proc

 

 

P1 := plots:-inequal(FMFC(a, d, "high") <= FMHmax(a, d, "low"), a = 0 .. 1, d = 0 .. .5, optionsfeasible = [[color = "Spring 1"]])
NULL

P2 := plots:-inequal(FMFC(a, d, "low") >= FMHmax(a, d, "high"), a = 0 .. 1, d = 0 .. .5, optionsfeasible = [[color = "Spring 3"]])

plots:-display(P1, P2)

P3 := plots:-inequal(FMPP(a, d, "high") <= FMHmax(a, d, "low"), a = 0 .. 1, d = 0 .. .5, optionsfeasible = [[color = "Spring 2"]])
NULL

P4 := plots:-inequal(FMPP(a, d, "low") >= FMHmax(a, d, "high"), a = 0 .. 1, d = 0 .. .5, optionsfeasible = [[color = "Spring 4"]])

plots:-display(P3, P4)

Download ConflcitInequal_acc.mw

These results for n=2..15 are computed exactly.

restart;

str:="1/(3 n Sqrt[Pi] Gamma[2 - n] Gamma[2 + n])*2^(-7 - 4 n) (3 256^
  n Gamma[2 - n] Gamma[-(1/2) +
    n] (8 n (-3 + 5 n + 2 n^2) Hypergeometric2F1[1 - n,
      2 - n, -2 n, 3/
      4] - (-1 +
       n) (4 (-4 + 7 n + 2 n^2) Hypergeometric2F1[2 - n, 2 - n,
         1 - 2 n, 3/4] - (-10 + 3 n + n^2) Hypergeometric2F1[
         2 - n, 3 - n, 2 - 2 n, 3/4])) -
 9^n Gamma[-(1/2) - n] Gamma[
   2 + n] (8 n (5 + 11 n + 2 n^2) Hypergeometric2F1[1 + n, 2 + n,
      2 n, 3/4] -
    3 (1 + n) (4 (4 + 9 n + 2 n^2) Hypergeometric2F1[2 + n, 2 + n,
          1 + 2 n, 3/4] -
       3 (6 + 5 n + n^2) Hypergeometric2F1[2 + n, 3 + n,
         2 (1 + n), 3/4])))":

ee := unapply(simplify(MmaTranslator:-FromMma(str)),n);

proc (n) options operator, arrow; -(1/24)*(-48*2^(-4+4*n)*(n+1)*GAMMA(3/2+n)^2*cos(Pi*n)*(n-1/2)*hypergeom([1-n, 1-n], [1-2*n], 3/4)-6*2^(-4+4*n)*GAMMA(3/2+n)^2*cos(Pi*n)*(n-1)^2*hypergeom([2-n, 2-n], [2-2*n], 3/4)+((-(1/32)*3^(2+2*n)*n^2-(3/8)*9^n*(n^4+2*n^3-(1/2)*n-1/4))*hypergeom([2+n, 2+n], [2+2*n], 3/4)+9^n*(1/2+n)^2*hypergeom([n+1, n+1], [1+2*n], 3/4)*(3+n)*(n-1/2))*16^(-n)*sin(Pi*n)*n*GAMMA(n)^2)/(Pi^(1/2)*(1/2+n)*(n-1/2)*GAMMA(3/2+n)*n^2*GAMMA(n)*cos(Pi*n)) end proc

seq(simplify(ee(i)), i=2..15);

14, 106, 838, 6802, 56190, 470010, 3968310, 33747490, 288654574, 2480593546, 21400729382, 185239360178, 1607913963614, 13991107041306

evalf(limit(ee(n),n=1));

2.000000000

Download hg_ex.mw

@RaySierra 

Your worksheet's code is missing `+` as the first argument passed to Continue.

If I simply add that missing argument then your worksheet runs ok in my Maple 2019.2.

First 35 36 37 38 39 40 41 Last Page 37 of 336