tomleslie

5162 Reputation

15 Badges

9 years, 243 days

MaplePrimes Activity


These are replies submitted by tomleslie

@9009134 

You have already obtained a plot of U[1,6] in your original worksheet using the deprecated command cylinderplot().

This should (really) be replaced by plot3d(...., coords = cylindrical) unless you are using Maple 8 (or an earlier version), which was supereded in 2003. The two commands give the same result - see the attached.

You have already obtained these plots. What is wrong with them???

The most common mistake people make when using these commands is to assume that they are producing a plot of h(r, theta) in cylindrical coordinates (r, theta, z), when in fact they produce a plot of r(theta, z)

So, for example

cylinderplot( 1,
                theta = 0..2*Pi,
                x = 0..0.5
              );

will plot a cylinder of radius 1, where the 'height' coordinate varies from 0 to 0.5. Similarly

cylinderplot( 0.5*x,
                theta = 0..2*Pi,
                x = 0..0.5
              );

will produce a "cone", since the radius is computed radius is proportional to the height.

These are illustrated in the attached

the attached, in which I have modified the function so that it returns "FAIL" if t<1.

restart;
f:= t-> `if`(t>=1, combine(int(1/x, x = 1 .. t)), FAIL);
f(10);
f(10.0);
f(1);
f(1.0);
f(0.1);

proc (t) options operator, arrow; `if`(1 <= t, combine(int(1/x, x = 1 .. t)), FAIL) end proc

 

ln(10)

 

2.302585093

 

0

 

0.

 

FAIL

(1)

 


 

Download doInt.mw

Throughout your expression, you use the '^' character to denote exponentiation, except in the last line where you use '**'. Is the latter usage deliberate or a typo?

That the results "look" better if one uses "thicker" lines: suggest changing the doContour() procedure in my previous post to the following

doContour:= proc( nsteps::posint)
                    local j;
                    uses plots, ColorTools:
                    return display
                           ( [ seq
                               ( implicitplot
                                 ( sin(x*y)=-1+2*(j-1)/nsteps,
                                   x = -2 .. 2,
                                   y = -2 .. 2,
                                   axes = framed,
                                   color = WavelengthToColor
                                           ( 450+(j-1)*(625-450)/nsteps,
                                             method="linear"
                                           ),
                                   if   type(j, odd)
                                   then legend=(-1+2*(j-1)/nsteps)
                                   else NULL
                                   fi,
                                   thickness=4,
                                   scaling=constrained,
                                   size=[800,800]
                                 ),
                                 j = 1..nsteps+1
                               )
                             ]
                           );
              end proc:

 

@ogunmiloro 

I have fixed many of these in the attached - but I doubt if I caught them all.

Please read the comments in the attached very very carefully


 

restart:

#
# Statement not terminated in the following - fixed it
#
  B[0]:= 1.7e8:  C[0]:=0:  P[0]:=400: E[0]:=20:
#
# Why does this (commented) Digits command exist?
#
#Digits:=10:

#
# OP never uses 'gamma' in this worksheet - why the
# hell unprotect an inbuilt variable for no purpose???
#
unprotect('gamma'):


 A__h := 10:
 beta__1 := 0.34e-1:
 psi__o := 0.25e-1:
 mu := 0.4e-3:
 theta := .7902:
 alpha := .11:
 k := 0.136e-3:
 z := 0.5e-1:
 delta := .7:
 eta := .134:
 xi := .12:
 beta := 0.1e-1:
 Q1 := 1:
 Q2 := 1:
 h := .1:
#
# The variables 'tau' and 'kappa' are used in the following,
# but neither of these is defined. Gave them a "random"
# values here just to assist debug
#
  tau:=1.0;
  kappa:=2.0
;

1.0

 

2.0

(1)

#Step 1
n:=100:
#
# Fixed the names of all of the following for some kind
# of consistency
#
lambda1[n] := 0: lambda2[n] := 0: lambda3[n] := 0: lambda4[n] := 0: u0[0] := 0:

for i from 0 to n-1 do

     B[i+1] := h*(theta*E[i]+A__h+B[i])/(1+ psi__o*h*P[i])/(P[i]+xi)+mu+u0[i]+beta*C[i];
#
# Following statement is a recursive assignment.
# It was a recursive assignment the last time the
# OP posted some code, and it is still a recursive
# assignment now!!!!
#
# Let's see if I can make this explanation simple enough
# for the brain-dead.
#
# C[i+1] is undefined. Therefore, assigning C[i+1] in
# terms of C[i+1] is doomed to failure.
#
# Changing C[i+1] to C[i] on the rhs is *may* be incorrect
# but at least the statement can now be evaluated!!
#
#     C[i+1] := h*B[i+1](beta*C[i]-psi[o]*P[i])/(P[i]+xi)-(alpha+mu+k)*C[i+1];
#
# I'm also assumin that psi[o] ought to be psi__o, so
# I made this change
#
     C[i+1] := h*B[i+1](beta*C[i]-psi__o*P[i])/(P[i]+xi)-(alpha+mu+k)*C[i];
     P[i+1] := h*z*C[i+1]/(1+delta+eta);
     E[i+1] := h*(alpha*C[i+1]+B[i+1]*u0[i]+E[i])/(1+theta+mu);

#
# The following statement has one more oopening parenthesis (ie '(')
# than closing parenthesis - again basic syntax
#
# I randomly added a closing parenthesis, just to make it syntactically
# correct, but the odds that I got this closing parenthesis in the
# desired location are almost nil!!!!!
#
#   lambda1[n-i-1] := -h*(Q1+(beta*C[i]+(psi__o*P[i]/(P[i]+xi)))*lambda2[n-i]-lambda1[n-i]-mu+u0[i]/(1+beta*C        [i]+P[i]/(P[i]+xi));
#
  lambda1[n-i-1] := -h*(Q1+(beta*C[i]+(psi__o*P[i]/(P[i]+xi)))*lambda2[n-i]-lambda1[n-i]-mu+u0[i])/(1+beta*C[i]+P[i]/(P[i]+xi));
#
# The variable 'kappa' in the following is undefined
#
  lambda2[n-i-1] := -h*(-beta*B[i+1]*lambda1[n-i-1]+Q2-alpha-mu-kappa+z*lambda3[n-i]+alpha*lambda4[n-i]-lambda2[n-i])/(-beta*B[i+1]+1);

  lambda3[n-i-1] := h*((psi__o*B[i+1]*P[i+1]/(P[i+1]+xi)^2+theta)*lambda1[n-i-1]-lambda2[n-i-1]*psi__o*B[i+1]*P[i+1]/(P[i+1]+xi)^2-lambda3[n-i])/(1+delta+eta);

  lambda4[n-i-1] := h*lambda4[n-i]/(1-theta-mu);
#
# The variable 'tau' was undefined, so (obviously) the
# following cannot be fully evaluated
#

     R1:= (lambda1[n-i-1]-lambda4[n-i-1])*B[i+1]/tau;
#
# Since R1 has not been fully evaluated, u0[i+1] cannot
# be fully evaluated either - and so the chaos continues!
#
    
      u0[i+1] := min(1, max(R1, 0));    
    end do:

#
# These two command are assigned to nothing. They are
# are never used for anything - why do they exist??
#
seq(i,i=0..30):
seq(B[i],i=0..30):

with(plots):

with(DEtools):

#
# The quantity 'h', was earlier defined to be 0.1
# Thus h(t)=0.1, h(0)=0.1 and so on. Probably not
# what the OP desired. Even funnier is when the
# OP uses initial conditions such as h(0)=400,
# which of course will evaluate to 0.1=400. This
# is a whole new level of misunderstanding
#
# Obviously this mean that the definition of these
# ODEs is completely incorrect - so it is a complete\
# waste of time trying to solve them!
#

DE1 := diff(a(t),t) = A__h-beta__1*a(t)*g(t)-psi__o*a(t)*h(t)/(h(t)+xi)-mu*a(t)+theta*m(t);
DE2 := diff(g(t),t) = beta__1*a(t)*g(t)-psi__o*a(t)*h(t)/(h(t)+xi)-(alpha+mu+k)*g(t);
DE3 := diff(h(t),t) = z*g(t)-(delta+eta)*h(t);
DE4 := diff(m(t),t) = alpha*g(t)-(theta+mu)*m(t);

SIRsys := [DE1, DE2, DE3, DE4];
#
# The commands DE1plot(), DE2plot(), DE3plot() DE4plot()
# do not exist in Maple so the following will never
# evaluate. OP (probably??) means DEplot(). However with
# the incorrect use of the name 'h' described above,
# even a syntactically correct command will not
# produce anything meaningful. Correct command with
# crap arguments will still fail!!
#

aplot := DE1plot(SIRsys, [a(t), g(t), h(t), m(t)], t = 0 .. 100, a = 0.167e9 .. 0.17e9, [[a(0) = 0.17e9, g(0) = 0, h(0) = 400, m(0) = 20]], scene = [t, a(t)], thickness = 2, linecolor = red, stepsize = .1);

gplot := DE2plot(SIRsys, [a(t), g(t), h(t), m(t)], t = 0 .. 100, g = 0 .. 400, [[a(0) = 0.17e9, g(0) = 0, h(0) = 400, m(0) = 20]], scene = [t, g(t)], thickness = 2, linecolor = red, stepsize = .1):

hplot := DE3plot(SIRsys, [a(t), g(t), h(t), m(t)], t = 0 .. 100, h = 0 .. 0.1e4, [[a(0) = 0.17e9, g(0) = 0, h(0) = 400, m(0) = 20]], scene = [t, h(t)], thickness = 2, linecolor = red, stepsize = .1):

mplot := DE4plot(SIRsys, [a(t), g(t), h(t), m(t)], t = 0 .. 100, m = 0 .. 0.1e4, [[a(0) = 0.17e9, g(0) = 0, h(0) = 400, m(0) = 20]], scene = [t, m(t)], thickness = 2, linecolor = red, stepsize = .1):

#
# Did no syntax checking beyond this point becuase I got
# really, REALLY BORED
#

L:=<<seq(i,i=0..100)>|<seq(B[i],i=0..100)>>:
#points:= {seq(B[i],i=0..100)};
 

diff(a(t), t) = 10-0.34e-1*a(t)*g(t)-0.1176363636e-1*a(t)+.7902*m(t)

 

diff(g(t), t) = 0.34e-1*a(t)*g(t)-0.1136363636e-1*a(t)-.110536*g(t)

 

0 = 0.5e-1*g(t)-0.834e-1

 

diff(m(t), t) = .11*g(t)-.7906*m(t)

 

[diff(a(t), t) = 10-0.34e-1*a(t)*g(t)-0.1176363636e-1*a(t)+.7902*m(t), diff(g(t), t) = 0.34e-1*a(t)*g(t)-0.1136363636e-1*a(t)-.110536*g(t), 0 = 0.5e-1*g(t)-0.834e-1, diff(m(t), t) = .11*g(t)-.7906*m(t)]

 

Error, (in DEtools/DEplot) vars must be declared as a list, e.g. [x(t),y(t),...]

 

SIRsys; a(0);g(0);h(0);

dsolve([SIRsys[], a(0) = 0.17e9, g(0) = 0, h(0) = 400, m(0) = 20]);

[diff(a(t), t) = 10-0.34e-1*a(t)*g(t)-0.1176363636e-1*a(t)+.7902*m(t), diff(g(t), t) = 0.34e-1*a(t)*g(t)-0.1136363636e-1*a(t)-.110536*g(t), 0 = 0.5e-1*g(t)-0.834e-1, diff(m(t), t) = .11*g(t)-.7906*m(t)]

 

a(0)

 

g(0)

 

.1

 

Error, (in dsolve) found the following equations not depending on the unknowns of the input system: {1/10 = 400}

 

p1:=pointplot(L, color=blue, symbol=diamond):
display([p1,aplot]);

Error, (in plots:-pointplot) points cannot be converted to floating-point values

 

Error, (in plots:-display) expecting plot structures but received: [p1]

 

J := `<|>`(`<,>`(seq(i, i = 0 .. 100)), `<,>`(seq(C[i], i = 0 .. 100))); p2 := pointplot(J, color = blue, symbol = soliddiamond); display([p2, gplot])

J := Vector(4, {(1) = ` 101 x 2 `*Matrix, (2) = `Data Type: `*anything, (3) = `Storage: `*rectangular, (4) = `Order: `*Fortran_order})

 

Error, (in plots:-pointplot) points cannot be converted to floating-point values

 

Error, (in plots:-display) expecting plot structures but received: [p2]

 

NULL


 

Download corrections2.mw

@saemi123 

the following code will get a lot closer to an answer

Rb:=13;
X:=x->(Rb+s[0](x))*cos(x)-Ds[0]*sin(x);

Y:=x->(Rb+s[0](x))*sin(x)+Ds[0]*cos(x);

t:=evalf(Pi);

seq(X(phi_0),phi_0=0..t,0.1);
seq(Y(phi_0),phi_0=0..t,0.1);

It wont produce complete answers, because the functions X() and Y() which you desire require calculation of the (indexed?) function s[0]() which is undefined, and the (indexed?) variable Ds[0], which is also undefined

 

 

 

@Rouben Rostamian  

The OP's solution is as given in the attached.

My comment about the boundary conditions arose mainly because of the first column in the output matrix, which corresponds to u(x=0..20, t=0), where u(0,0) is 1, and all other values are Float(undefined).

Since this first column corresponds to u(x,0), and there is a supplied boundary condition u(x,0)=0, I rather expected Maple's numerical solution to agree with the boundary condition along this boundary. Strangely (for me) a defined value (ie 1) is obtained at u(0,0). To me this seems odd, since the supplied boundary conditions mean that u(x,0) is "well-defined" when x>0 and "ill-defined" when x=0. So I'm stil a little nervous about this solution

  restart:
  interface(rtablesize=10);

[10, 10]

(1)

#
# Define pde, and bcs/ics, then solve it
#
  eq1:= diff(u(x,t),t)=-4 *diff(u(x,t),x):
  cond:= {u(0,t)=sin(.5*Pi), u(x,0)=0}: # conds are inconsistent
                                        # what is u(0,0)???
  sol:= pdsolve(eq1,cond, numeric, time=t, range=0..20);NULL

_m707119744

(2)

#
# Generate a 3D plot of the solution
#
  pp:=sol:-plot3d(t=0..20, x=0..20);

 

#
# Generate a 21x21 matrix of results.
# Columns correspond to t=0..20 in steps of 1
# Rows correspond to x=0..20 in steps of 1
# So, for example
#
#   opM[3,3]= u(2,2)
#
  opM:= Matrix
        ( 21,
          21,
          (i,j)-> rhs~(sol:-value(u(x,t))(i-1,j-1))[3]
        );
#
# Export results matrix to a file. OP will need to change
# file path/name to something appropriate for his/her
# installation/OS
#
  ExportMatrix("C:/Users/TomLeslie/Desktop/opRes.dat", opM);

_rtable[18446744074373019398]

 

8514

(3)

 

NULL

Download pdeSol2.mw

@nm 

The Laplacian of a time-dependent function in cylindrical polars (with no theta-dependence) can be simply obtained with no "substitutions" required, which is probably how I would prefer to do it.

See the attached

restart;
pde:=diff(u(r,z,t),t)= expand(VectorCalculus:-Laplacian(f(r, z, t), cylindrical[r, theta,z]));

diff(u(r, z, t), t) = (diff(f(r, z, t), r))/r+diff(diff(f(r, z, t), r), r)+diff(diff(f(r, z, t), z), z)

(1)

 

Download lapl.mw

The whole t>0, t>=0 thing.

When debugging Maple errors, I think it is good practice to remove any potential ambiguities or inconsistencies from the code generating the error. In this case, removing the inconsistency didn't affect the error, but as a general technique, I think this approach is still worthwhile.

 

 

I still suspect that your initial condition

ic:=u(r,z,0) = f(r,z)

where f(r,z) is undefined is going to cause all sorts of weird problems - because it isn't really a meaningful inital condition: it provides no useful information

As I stated in my first post, removing this initial condition makes the Error go away and a solution is obtained

You use the initial condition

ic:=u(r,z,0) = f(r,z);

and the assumption

 assuming t>0

These are contradictory - is t=0 within the domain of the solution or not?

If t=0 is within the domain of the solution, then the assumption is wrong. If t=0 is not in the domain of the solution, then the initial condition is (at best) superfluous. So I'm confused! (And maybe Maple is as well?).

So for simple logical consistency, once should have something like

restart;
#infolevel[pdsolve]:=10;
unassign('z,t,r,u');
lap:=diff(u(r,z,t),r$2)+ 1/r*diff(u(r,z,t),r)+diff(u(r,z,t),z$2);
bc:=u(r,0,t)=0,u(r,1,t)=0, u(1,z,t)=0;
ic:=u(r,z,0) = f(r,z);
pdsolve([diff(u(r,z,t),t) = lap,bc,ic],u(r,z,t)) assuming t>=0

This still produces the same error :-(

However, the above correction required some thought about how "meaningful" the initial condition actually is. After all if one has a function u(r,z,t), then the function u(r,z,0) is (formally) a function of the two arguments 'r' and 'z' - so writing u(r, z, 0)=f(r, z) is really rather pointless. It contains no useful information. Interestingly, if one removes this meaingless(?) initial condition from your code, then it executes with no error. So the code

restart;
unassign('z,t,r,u');
lap:=diff(u(r,z,t),r$2)+ 1/r*diff(u(r,z,t),r)+diff(u(r,z,t),z$2);
bc:=u(r,0,t)=0,u(r,1,t)=0, u(1,z,t)=0;
ic:=u(r,z,0) = f(r,z);
pdsolve([diff(u(r,z,t),t) = lap,bc],u(r,z,t)) assuming t>=0

will return u(r, z, t) = 0 !

 

This site has a wonderful invention which allows users to upload executable code, rather than some mixture of (non-executable) code+comments

This invention is the big green up-arrow in the Mapleprimes toolbar

I suggest you use it

@Rouben Rostamian  

Read your post with interest and tried to figure out why your solution was "numerically stable" and the one I originally posted was not.

I note that you made the same (possibly unjustified??) assumptions about boundary conditions which I did. As far as I can tell, the only "significant" difference between our solutions is that you removed the 'spacestep=1" option from the pdsolve() command.

On reflection, looking at the Curvefit() of the function A(x), this seems like a very sensible strategy and I can't think why I didn't do it. Mea Culpa etc.

Can you confirm that the significant difference between our solutions is removal of the "spacestep" option? (Removing the "timestep=0.005" command doesn't seem to make much difference either way).

Reposting my original showing the impact of keeping/removing the "spacestep" option.

restart

with(plots)

with(CurveFitting)

pts := [Vector[row](99, {(1) = 0, (2) = 3.016315859, (3) = 5.753536424, (4) = 8.489713643, (5) = 11.22797756, (6) = 13.96519812, (7) = 16.09414745, (8) = 18.83136802, (9) = 21.26445296, (10) = 24.00167353, (11) = 26.73889409, (12) = 29.47611466, (13) = 31.60506399, (14) = 34.34228455, (15) = 37.07950512, (16) = 39.51259007, (17) = 41.6415394, (18) = 44.37875996, (19) = 46.81184491, (20) = 49.54906547, (21) = 51.6780148, (22) = 54.11109975, (23) = 56.84832032, (24) = 58.97726964, (25) = 62.32276145, (26) = 64.45171078, (27) = 66.88479572, (28) = 69.01374505, (29) = 71.44578665, (30) = 74.1814422, (31) = 76.91814109, (32) = 79.0455254, (33) = 81.47704533, (34) = 84.21165752, (35) = 86.33695514, (36) = 88.76691004, (37) = 90.89116431, (38) = 93.3195542, (39) = 96.04894966, (40) = 98.17059556, (41) = 100.5958554, (42) = 103.3231642, (43) = 105.4432451, (44) = 107.8679832, (45) = 110.5947703, (46) = 113.3236441, (47) = 116.0514746, (48) = 118.1746855, (49) = 120.9066893, (50) = 125.4640285, (51) = 127.8960701, (52) = 130.634334, (53) = 132.763805, (54) = 135.1994984, (55) = 137.9382839, (56) = 140.06932, (57) = 142.5034483, (58) = 145.2411905, (59) = 147.976846, (60) = 150.7119799, (61) = 153.4450271, (62) = 156.1770309, (63) = 158.9069481, (64) = 161.9399575, (65) = 164.6693529, (66) = 167.0951345, (67) = 169.2178237, (68) = 171.9472192, (69) = 174.3756091, (70) = 176.4998633, (71) = 179.2334322, (72) = 181.9680444, (73) = 184.4011293, (74) = 186.531122, (75) = 189.2719943, (76) = 192.0149532, (77) = 194.4542983, (78) = 197.2014306, (79) = 201.7822452, (80) = 203.921628, (81) = 207.5889923, (82) = 210.3397763, (83) = 213.699875, (84) = 217.3651526, (85) = 220.1133283, (86) = 222.859939, (87) = 224.9961918, (88) = 227.7412375, (89) = 230.1795391, (90) = 232.3131835, (91) = 234.7504419, (92) = 237.4913141, (93) = 240.5368437, (94) = 242.9720153, (95) = 245.7108009, (96) = 247.8313153, (97) = 247.8413153, (98) = 247.8513153, (99) = 250}), Vector[row](99, {(1) = -0.41150436e-1, (2) = -0.41150436e-1, (3) = -0.4113729e-1, (4) = -0.38722776e-1, (5) = -0.41110998e-1, (6) = -0.41097851e-1, (7) = -0.41087627e-1, (8) = -0.4107448e-1, (9) = -0.41062795e-1, (10) = -0.41049649e-1, (11) = -0.41036503e-1, (12) = -0.41023356e-1, (13) = -0.41013132e-1, (14) = -0.40999985e-1, (15) = -0.40986839e-1, (16) = -0.40975154e-1, (17) = -0.40964929e-1, (18) = -0.40951783e-1, (19) = -0.40940097e-1, (20) = -0.40926951e-1, (21) = -0.40916726e-1, (22) = -0.40905041e-1, (23) = -0.40891895e-1, (24) = -0.4088167e-1, (25) = -0.40865602e-1, (26) = -0.40855378e-1, (27) = -0.40843692e-1, (28) = -0.40833467e-1, (29) = -0.38420415e-1, (30) = -0.34805218e-1, (31) = -0.33591388e-1, (32) = -0.29979112e-1, (33) = -0.26365376e-1, (34) = -0.20348812e-1, (35) = -0.11933802e-1, (36) = -0.4718015e-2, (37) = 0.6098363e-2, (38) = 0.169162e-1, (39) = 0.34939601e-1, (40) = 0.51759396e-1, (41) = 0.69781335e-1, (42) = 0.9260747e-1, (43) = .113029316, (44) = .132251939, (45) = .156278757, (46) = .175502841, (47) = .197128292, (48) = .210346036, (49) = .222366019, (50) = .233194081, (51) = .235607134, (52) = .233218913, (53) = .232028454, (54) = .226036722, (55) = .222447817, (56) = .217655307, (57) = .215265626, (58) = .214078088, (59) = .217693285, (60) = .222509166, (61) = .232127781, (62) = .244147763, (63) = .26097048, (64) = .280196024, (65) = .298219424, (66) = .31504068, (67) = .329459108, (68) = .347482508, (69) = .358300346, (70) = .369116723, (71) = .377534655, (72) = .383551219, (73) = .383562904, (74) = .381171762, (75) = .372780123, (76) = .35958575, (77) = .345189232, (78) = .32238939, (79) = .27918669, (80) = .255183243, (81) = .214377529, (82) = .183172901, (83) = .149569828, (84) = .113566848, (85) = 0.88365639e-1, (86) = 0.6676648e-1, (87) = 0.49967135e-1, (88) = 0.31970027e-1, (89) = 0.19974876e-1, (90) = 0.9178949e-2, (91) = -0.414835e-3, (92) = -0.8806474e-2, (93) = -0.18397336e-1, (94) = -0.23188385e-1, (95) = -0.26777289e-1, (96) = -0.30369115e-1, (97) = -0.30369115e-1, (98) = -0.30369115e-1, (99) = -0.30369115e-1})]

A := unapply(Spline(pts[1], pts[2], x, degree = 3), x)

PDE := diff(C(x, t), t) = diff(C(x, t), x, x)-(diff(C(x, t), x))+5*(diff(C(x, t), x, x, x, x))

IBC := C(x, 0) = A(x), (D[1](C))(0, t) = 0, (D[1](C))(250, t) = 0, (D[2](C))(0, t) = 0, (D[2](C))(250, t) = 0

pds := pdsolve(PDE, [IBC], numeric, time = t, range = 0 .. 250, timestep = 0.5e-2, spacestep = 1)

Error, (in pdsolve/numeric/process_IBCs) initial/boundary conditions can only contain derivatives which are normal to the boundary, got (D[2](C))(0, t)

 

IBC := C(x, 0) = A(x), (D[1](C))(0, t) = 0, (D[1](C))(250, t) = 0, (D[1, 1](C))(0, t) = 0, (D[1, 1](C))(250, t) = 0; pds1 := pdsolve(PDE, [IBC], numeric, time = t, range = 0 .. 250, timestep = 0.5e-2, spacestep = 1)
pds2 := pdsolve(PDE, [IBC], numeric)

pds3 := pdsolve(PDE, [IBC], time = t, range = 0 .. 250, timestep = 0.5e-2, numeric)

 

_m701306208

 

_m723501856

 

_m744194144

(1)

sol1 := pds1:-value(x = 125, t = 0 .. 1)
sol1(.1)
sol1(.2)
sol1(.3)
sol1(.4)

sol1(.5); pds1:-plot3d(x = 0 .. 250, t = 0 .. 100)

proc (x_pde) local res, solnproc, outpoint, ndsol, stype, i; option `Copyright (c) 2001 by Waterloo Maple Inc. All rights reserved.`; Digits := trunc(evalhf(Digits)); outpoint := evalf(x_pde); solnproc := proc (outpoint) local indepvals, depvals, vary, ndep, i; option `Copyright (c) 2001 by Waterloo Maple Inc. All rights reserved.`; table( [( "soln_procedures" ) = array( 0 .. 0, [( 0 ) = (18446744074333658470)  ] ) ] ) indepvals := Vector(201, {(1) = .0, (2) = 0.50e-2, (3) = 0.1e-1, (4) = 0.15e-1, (5) = 0.2e-1, (6) = 0.25e-1, (7) = 0.3e-1, (8) = 0.35e-1, (9) = 0.4e-1, (10) = 0.45e-1, (11) = 0.5e-1, (12) = 0.55e-1, (13) = 0.6e-1, (14) = 0.65e-1, (15) = 0.7e-1, (16) = 0.75e-1, (17) = 0.8e-1, (18) = 0.85e-1, (19) = 0.9e-1, (20) = 0.95e-1, (21) = .1, (22) = .105, (23) = .11, (24) = .115, (25) = .12, (26) = .125, (27) = .13, (28) = .135, (29) = .14, (30) = .145, (31) = .15, (32) = .155, (33) = .16, (34) = .165, (35) = .17, (36) = .175, (37) = .18, (38) = .185, (39) = .19, (40) = .195, (41) = .2, (42) = .205, (43) = .21, (44) = .215, (45) = .22, (46) = .225, (47) = .23, (48) = .235, (49) = .24, (50) = .245, (51) = .25, (52) = .255, (53) = .26, (54) = .265, (55) = .27, (56) = .275, (57) = .28, (58) = .285, (59) = .29, (60) = .295, (61) = .3, (62) = .305, (63) = .31, (64) = .315, (65) = .32, (66) = .325, (67) = .33, (68) = .335, (69) = .34, (70) = .345, (71) = .35, (72) = .355, (73) = .36, (74) = .365, (75) = .37, (76) = .375, (77) = .38, (78) = .385, (79) = .39, (80) = .395, (81) = .4, (82) = .405, (83) = .41, (84) = .415, (85) = .42, (86) = .425, (87) = .43, (88) = .435, (89) = .44, (90) = .445, (91) = .45, (92) = .455, (93) = .46, (94) = .465, (95) = .47, (96) = .475, (97) = .48, (98) = .485, (99) = .49, (100) = .495, (101) = .5, (102) = .505, (103) = .51, (104) = .515, (105) = .52, (106) = .525, (107) = .53, (108) = .535, (109) = .54, (110) = .545, (111) = .55, (112) = .555, (113) = .56, (114) = .565, (115) = .57, (116) = .575, (117) = .58, (118) = .585, (119) = .59, (120) = .595, (121) = .6, (122) = .605, (123) = .61, (124) = .615, (125) = .62, (126) = .625, (127) = .63, (128) = .635, (129) = .64, (130) = .645, (131) = .65, (132) = .655, (133) = .66, (134) = .665, (135) = .67, (136) = .675, (137) = .68, (138) = .685, (139) = .69, (140) = .695, (141) = .7, (142) = .705, (143) = .71, (144) = .715, (145) = .72, (146) = .725, (147) = .73, (148) = .735, (149) = .74, (150) = .745, (151) = .75, (152) = .755, (153) = .76, (154) = .765, (155) = .77, (156) = .775, (157) = .78, (158) = .785, (159) = .79, (160) = .795, (161) = .8, (162) = .805, (163) = .81, (164) = .815, (165) = .82, (166) = .825, (167) = .83, (168) = .835, (169) = .84, (170) = .845, (171) = .85, (172) = .855, (173) = .86, (174) = .865, (175) = .87, (176) = .875, (177) = .88, (178) = .885, (179) = .89, (180) = .895, (181) = .9, (182) = .905, (183) = .91, (184) = .915, (185) = .92, (186) = .925, (187) = .93, (188) = .935, (189) = .94, (190) = .945, (191) = .95, (192) = .955, (193) = .96, (194) = .965, (195) = .97, (196) = .975, (197) = .98, (198) = .985, (199) = .99, (200) = .995, (201) = 1.0}, datatype = float[8]); if outpoint = "left" then return indepvals[1] elif outpoint = "right" then return indepvals[201] elif outpoint = "start" then return 0. elif not type(outpoint, 'numeric') then error "non-numeric input" end if; if outpoint < indepvals[1] or indepvals[201] < outpoint then error "requested %1 value must be in the range %2..%3", t, indepvals[1], indepvals[201] end if; depvals := Matrix(201, 1, {(1, 1) = .232413246628474, (2, 1) = .23239616646961464, (3, 1) = .23237892149561945, (4, 1) = .23236141490948167, (5, 1) = .2323434897931939, (6, 1) = .23232489790992714, (7, 1) = .23230525303085492, (8, 1) = .2322839612653557, (9, 1) = .23226011726920248, (10, 1) = .23223234989185657, (11, 1) = .23219859299622303, (12, 1) = .2321557456601578, (13, 1) = .2320991690132882, (14, 1) = .2320219420284306, (15, 1) = .23191376193707158, (16, 1) = .23175932109117015, (17, 1) = .23153591300916146, (18, 1) = .23120990423354942, (19, 1) = .23073153820732553, (20, 1) = .2300272873116472, (21, 1) = .22898860236580862, (22, 1) = .22745537085778184, (23, 1) = .2251916062173643, (24, 1) = .2218497337485686, (25, 1) = .2169181432744511, (26, 1) = .20964419344587107, (27, 1) = .19892121087706968, (28, 1) = .1831226910920823, (29, 1) = .159859090275643, (30, 1) = .12562114400159666, (31, 1) = 0.7525687322983228e-1, (32, 1) = 0.12048672257636854e-2, (33, 1) = -.1076295508104513, (34, 1) = -.26752136365844975, (35, 1) = -.5023393514500708, (36, 1) = -.8470822500842374, (37, 1) = -1.3530591829803609, (38, 1) = -2.095478090879571, (39, 1) = -3.1845603000066034, (40, 1) = -4.781818129398978, (41, 1) = -7.12389169840764, (42, 1) = -10.557452275826186, (43, 1) = -15.59030561957488, (44, 1) = -22.96620825198311, (45, 1) = -33.77439132275213, (46, 1) = -49.60988085600682, (47, 1) = -72.80815602744363, (48, 1) = -106.78859011313051, (49, 1) = -156.55706806286457, (50, 1) = -229.4415044451341, (51, 1) = -336.1681089648402, (52, 1) = -492.43615455279945, (53, 1) = -721.2219920248788, (54, 1) = -1056.1497935929094, (55, 1) = -1546.4225910400494, (56, 1) = -2264.0354020114896, (57, 1) = -3314.3259361260116, (58, 1) = -4851.406254205843, (59, 1) = -7100.732017405288, (60, 1) = -10392.10866662953, (61, 1) = -15207.958091640898, (62, 1) = -22253.897321405224, (63, 1) = -32561.93724658056, (64, 1) = -47641.36890750351, (65, 1) = -69699.3608112794, (66, 1) = -101963.4561341752, (67, 1) = -149153.01359209075, (68, 1) = -218168.34250177347, (69, 1) = -319097.9998957051, (70, 1) = -466691.0598252868, (71, 1) = -682508.8724608892, (72, 1) = -998069.74851753, (73, 1) = -1459444.5128234343, (74, 1) = -2133971.9718518686, (75, 1) = -3120071.707069492, (76, 1) = -4561582.034637951, (77, 1) = -6668708.879653955, (78, 1) = -9748632.228128573, (79, 1) = -14250220.236218752, (80, 1) = -20829350.67995919, (81, 1) = -30444332.626956508, (82, 1) = -44495292.23948388, (83, 1) = -65027769.467461646, (84, 1) = -95030092.66599123, (85, 1) = -138867707.18261558, (86, 1) = -202917504.4328947, (87, 1) = -296494209.74511987, (88, 1) = -433203244.1939546, (89, 1) = -632916314.2805808, (90, 1) = -924656261.0146995, (91, 1) = -1350809491.2018933, (92, 1) = -1973276701.9784503, (93, 1) = -2882453448.1263504, (94, 1) = -4210342042.5680957, (95, 1) = -6149694654.252813, (96, 1) = -8981960863.284027, (97, 1) = -13118087717.81392, (98, 1) = -19158080925.650814, (99, 1) = -27977951325.649986, (100, 1) = -40856633942.19292, (101, 1) = -59661250810.27815, (102, 1) = -87117529615.9517, (103, 1) = -127204508263.99371, (104, 1) = -185730631271.21918, (105, 1) = -271174575364.423, (106, 1) = -395912419512.31616, (107, 1) = -578008629658.7682, (108, 1) = -843829830278.0294, (109, 1) = -1231859257139.5845, (110, 1) = -1798263305722.7815, (111, 1) = -2625014768434.3804, (112, 1) = -3831746752987.8916, (113, 1) = -5593050233888.452, (114, 1) = -8163714524917.53, (115, 1) = -11915557194394.293, (116, 1) = -17391163684647.662, (117, 1) = -25382298731266.78, (118, 1) = -37044314030459.68, (119, 1) = -54063073575022.8, (120, 1) = -78898499607603.4, (121, 1) = -115139902167155.5, (122, 1) = -168024389458858.94, (123, 1) = -245193192407149.5, (124, 1) = -357795069992212.56, (125, 1) = -522096044739715.25, (126, 1) = -761827773722029.8, (127, 1) = -1111613426122815.5, (128, 1) = -1621965382171542.8, (129, 1) = -2366575805863003., (130, 1) = -3452951869937000.5, (131, 1) = -5037929812363038., (132, 1) = -7350305630466803., (133, 1) = -10723846513023158., (134, 1) = -15645444023256538., (135, 1) = -22825353360197104., (136, 1) = -33299647454728544., (137, 1) = -0.485796591927218e17, (138, 1) = -0.7086995911354716e17, (139, 1) = -103386295796726416., (140, 1) = -150819335655406272., (141, 1) = -220011054523291168., (142, 1) = -0.32094128362963859e18, (143, 1) = -0.46816661382867475e18, (144, 1) = -0.68291905520500314e18, (145, 1) = -0.99616692758229901e18, (146, 1) = -0.145307911952420608e19, (147, 1) = -0.211953607618466381e19, (148, 1) = -0.30916257929399265e19, (149, 1) = -0.45094931874709509e19, (150, 1) = -0.65775384546794076e19, (151, 1) = -0.9593874728212689e19, (152, 1) = -0.13993289338661493e20, (153, 1) = -0.20409898314084835e20, (154, 1) = -0.2976852071013085e20, (155, 1) = -0.4341793648670631e20, (156, 1) = -0.6332522481430088e20, (157, 1) = -0.9235917779374206e20, (158, 1) = -0.13470361467581542e21, (159, 1) = -0.19646013145967038e21, (160, 1) = -0.28652710459022495e21, (161, 1) = -0.4178815543499227e21, (162, 1) = -0.6094484927735468e21, (163, 1) = -0.8888269870863149e21, (164, 1) = -0.12962655454894534e22, (165, 1) = -0.18904593424536497e22, (166, 1) = -0.275700415018555e22, (167, 1) = -0.402072440554644e22, (168, 1) = -0.5863650698849213e22, (169, 1) = -0.8551235441314812e22, (170, 1) = -0.1247058167028118e23, (171, 1) = -0.18186189664696205e23, (172, 1) = -0.26521248292440736e23, (173, 1) = -0.3867617591359053e23, (174, 1) = -0.5640147870305979e23, (175, 1) = -0.822498144999205e23, (176, 1) = -0.11994355352909485e24, (177, 1) = -0.17491075513956936e24, (178, 1) = -0.25506672569657314e24, (179, 1) = -0.3719536772027066e24, (180, 1) = -0.5424025583569227e24, (181, 1) = -0.7909563003856047e24, (182, 1) = -0.11534033295613543e25, (183, 1) = -0.16819300244432607e25, (184, 1) = -0.245263384414934e25, (185, 1) = -0.35764786693182256e25, (186, 1) = -0.5215269392171449e25, (187, 1) = -0.7604945285926214e25, (188, 1) = -0.1108954516862426e26, (189, 1) = -0.16170733483518643e26, (190, 1) = -0.23580016241709754e26, (191, 1) = -0.3438404169059098e26, (192, 1) = -0.5013814264278816e26, (193, 1) = -0.7311022101615126e26, (194, 1) = -0.10660719966176913e27, (195, 1) = -0.1554510291617615e27, (196, 1) = -0.22667276264437233e27, (197, 1) = -0.33052459776593336e27, (198, 1) = -0.4819555489637077e27, (199, 1) = -0.7027631412283057e27, (200, 1) = -0.10247308124056785e28, (201, 1) = -0.14942025769915007e28}, datatype = float[8], order = C_order); vary := Array(1..2, {(1) = .0, (2) = -0.50e-2}, datatype = float[8]); ndep := 1; if vary[ndep+1]-outpoint <> 0. then `pdsolve/interp1dto0d`(201, indepvals, 1, depvals, true, outpoint, vary); vary[ndep+1] := outpoint end if; [seq(vary[i], i = 1 .. ndep)] end proc; if not type(outpoint, 'numeric') then if member(outpoint, ["start", "left", "right"]) then return solnproc(x_pde) elif outpoint = "solnprocedure" then return eval(solnproc) elif procname <> unknown then return ('procname')(x_pde) else ndsol := pointto(solnproc("soln_procedures")[0]); return ('ndsol')(x_pde) end if end if; stype := "2nd"; try res := solnproc(outpoint); if stype = "1st" then [x = outpoint, t = 125., seq([C(x, t)][i] = res[i], i = 1 .. 1)] else [x = 125., t = outpoint, seq([C(x, t)][i] = res[i], i = 1 .. 1)] end if catch: error  end try end proc

 

[x = 125., t = .1, C(x, t) = HFloat(0.22898860236580862)]

 

[x = 125., t = .2, C(x, t) = HFloat(-7.12389169840764)]

 

[x = 125., t = .3, C(x, t) = HFloat(-15207.958091640898)]

 

[x = 125., t = .4, C(x, t) = HFloat(-3.0444332626956508e7)]

 

[x = 125., t = .5, C(x, t) = HFloat(-5.966125081027815e10)]

 

Error, (in pdsolve/numeric/plot3d) unable to compute solution for t>HFloat(9.505000000000086):
solution becomes undefined, problem may be ill posed or method may be ill suited to solution

 

sol1 := pds2:-value(x = 125, t = 0 .. 1)
sol1(.1)
sol1(.2)
sol1(.3)
sol1(.4)

sol1(.5); pds2:-plot3d(x = 0 .. 250, t = 0 .. 100)
``

proc (x_pde) local res, solnproc, outpoint, ndsol, stype, i; option `Copyright (c) 2001 by Waterloo Maple Inc. All rights reserved.`; Digits := trunc(evalhf(Digits)); outpoint := evalf(x_pde); solnproc := proc (outpoint) local indepvals, depvals, vary, ndep, i; option `Copyright (c) 2001 by Waterloo Maple Inc. All rights reserved.`; table( [( "soln_procedures" ) = array( 0 .. 0, [( 0 ) = (18446744074396932070)  ] ) ] ) indepvals := Vector(3, {(1) = .0, (2) = .5, (3) = 1.0}, datatype = float[8]); if outpoint = "left" then return indepvals[1] elif outpoint = "right" then return indepvals[3] elif outpoint = "start" then return 0. elif not type(outpoint, 'numeric') then error "non-numeric input" end if; if outpoint < indepvals[1] or indepvals[3] < outpoint then error "requested %1 value must be in the range %2..%3", t, indepvals[1], indepvals[3] end if; depvals := Matrix(3, 1, {(1, 1) = .232413246628474, (2, 1) = .23078973318736035, (3, 1) = .22910978610217173}, datatype = float[8], order = C_order); vary := Array(1..2, {(1) = .0, (2) = -.5}, datatype = float[8]); ndep := 1; if vary[ndep+1]-outpoint <> 0. then `pdsolve/interp1dto0d`(3, indepvals, 1, depvals, true, outpoint, vary); vary[ndep+1] := outpoint end if; [seq(vary[i], i = 1 .. ndep)] end proc; if not type(outpoint, 'numeric') then if member(outpoint, ["start", "left", "right"]) then return solnproc(x_pde) elif outpoint = "solnprocedure" then return eval(solnproc) elif procname <> unknown then return ('procname')(x_pde) else ndsol := pointto(solnproc("soln_procedures")[0]); return ('ndsol')(x_pde) end if end if; stype := "2nd"; try res := solnproc(outpoint); if stype = "1st" then [x = outpoint, t = 125., seq([C(x, t)][i] = res[i], i = 1 .. 1)] else [x = 125., t = outpoint, seq([C(x, t)][i] = res[i], i = 1 .. 1)] end if catch: error  end try end proc

 

[x = 125., t = .1, C(x, t) = HFloat(0.23209305863177732)]

 

[x = 125., t = .2, C(x, t) = HFloat(0.23177061328931758)]

 

[x = 125., t = .3, C(x, t) = HFloat(0.23144591060109476)]

 

[x = 125., t = .4, C(x, t) = HFloat(0.23111895056710904)]

 

[x = 125., t = .5, C(x, t) = HFloat(0.23078973318736035)]

 

 

sol1 := pds3:-value(x = 125, t = 0 .. 1)
sol1(.1)
sol1(.2)
sol1(.3)
sol1(.4)

sol1(.5); pds3:-plot3d(x = 0 .. 250, t = 0 .. 100)

proc (x_pde) local res, solnproc, outpoint, ndsol, stype, i; option `Copyright (c) 2001 by Waterloo Maple Inc. All rights reserved.`; Digits := trunc(evalhf(Digits)); outpoint := evalf(x_pde); solnproc := proc (outpoint) local indepvals, depvals, vary, ndep, i; option `Copyright (c) 2001 by Waterloo Maple Inc. All rights reserved.`; table( [( "soln_procedures" ) = array( 0 .. 0, [( 0 ) = (18446744074366550718)  ] ) ] ) indepvals := Vector(201, {(1) = .0, (2) = 0.50e-2, (3) = 0.1e-1, (4) = 0.15e-1, (5) = 0.2e-1, (6) = 0.25e-1, (7) = 0.3e-1, (8) = 0.35e-1, (9) = 0.4e-1, (10) = 0.45e-1, (11) = 0.5e-1, (12) = 0.55e-1, (13) = 0.6e-1, (14) = 0.65e-1, (15) = 0.7e-1, (16) = 0.75e-1, (17) = 0.8e-1, (18) = 0.85e-1, (19) = 0.9e-1, (20) = 0.95e-1, (21) = .1, (22) = .105, (23) = .11, (24) = .115, (25) = .12, (26) = .125, (27) = .13, (28) = .135, (29) = .14, (30) = .145, (31) = .15, (32) = .155, (33) = .16, (34) = .165, (35) = .17, (36) = .175, (37) = .18, (38) = .185, (39) = .19, (40) = .195, (41) = .2, (42) = .205, (43) = .21, (44) = .215, (45) = .22, (46) = .225, (47) = .23, (48) = .235, (49) = .24, (50) = .245, (51) = .25, (52) = .255, (53) = .26, (54) = .265, (55) = .27, (56) = .275, (57) = .28, (58) = .285, (59) = .29, (60) = .295, (61) = .3, (62) = .305, (63) = .31, (64) = .315, (65) = .32, (66) = .325, (67) = .33, (68) = .335, (69) = .34, (70) = .345, (71) = .35, (72) = .355, (73) = .36, (74) = .365, (75) = .37, (76) = .375, (77) = .38, (78) = .385, (79) = .39, (80) = .395, (81) = .4, (82) = .405, (83) = .41, (84) = .415, (85) = .42, (86) = .425, (87) = .43, (88) = .435, (89) = .44, (90) = .445, (91) = .45, (92) = .455, (93) = .46, (94) = .465, (95) = .47, (96) = .475, (97) = .48, (98) = .485, (99) = .49, (100) = .495, (101) = .5, (102) = .505, (103) = .51, (104) = .515, (105) = .52, (106) = .525, (107) = .53, (108) = .535, (109) = .54, (110) = .545, (111) = .55, (112) = .555, (113) = .56, (114) = .565, (115) = .57, (116) = .575, (117) = .58, (118) = .585, (119) = .59, (120) = .595, (121) = .6, (122) = .605, (123) = .61, (124) = .615, (125) = .62, (126) = .625, (127) = .63, (128) = .635, (129) = .64, (130) = .645, (131) = .65, (132) = .655, (133) = .66, (134) = .665, (135) = .67, (136) = .675, (137) = .68, (138) = .685, (139) = .69, (140) = .695, (141) = .7, (142) = .705, (143) = .71, (144) = .715, (145) = .72, (146) = .725, (147) = .73, (148) = .735, (149) = .74, (150) = .745, (151) = .75, (152) = .755, (153) = .76, (154) = .765, (155) = .77, (156) = .775, (157) = .78, (158) = .785, (159) = .79, (160) = .795, (161) = .8, (162) = .805, (163) = .81, (164) = .815, (165) = .82, (166) = .825, (167) = .83, (168) = .835, (169) = .84, (170) = .845, (171) = .85, (172) = .855, (173) = .86, (174) = .865, (175) = .87, (176) = .875, (177) = .88, (178) = .885, (179) = .89, (180) = .895, (181) = .9, (182) = .905, (183) = .91, (184) = .915, (185) = .92, (186) = .925, (187) = .93, (188) = .935, (189) = .94, (190) = .945, (191) = .95, (192) = .955, (193) = .96, (194) = .965, (195) = .97, (196) = .975, (197) = .98, (198) = .985, (199) = .99, (200) = .995, (201) = 1.0}, datatype = float[8]); if outpoint = "left" then return indepvals[1] elif outpoint = "right" then return indepvals[201] elif outpoint = "start" then return 0. elif not type(outpoint, 'numeric') then error "non-numeric input" end if; if outpoint < indepvals[1] or indepvals[201] < outpoint then error "requested %1 value must be in the range %2..%3", t, indepvals[1], indepvals[201] end if; depvals := Matrix(201, 1, {(1, 1) = .232413246628474, (2, 1) = .23240169999738933, (3, 1) = .23239014193510255, (4, 1) = .23237857244133753, (5, 1) = .23236699151582044, (6, 1) = .23235539915827993, (7, 1) = .23234379536844701, (8, 1) = .23233218014605508, (9, 1) = .23232055349084013, (10, 1) = .23230891540254042, (11, 1) = .2322972658808966, (12, 1) = .23228560492565192, (13, 1) = .2322739325365518, (14, 1) = .23226224871334433, (15, 1) = .23225055345577975, (16, 1) = .23223884676361103, (17, 1) = .23222712863659328, (18, 1) = .2322153990744842, (19, 1) = .23220365807704388, (20, 1) = .23219190564403472, (21, 1) = .23218014177522162, (22, 1) = .23216836647037176, (23, 1) = .23215657972925505, (24, 1) = .2321447815516436, (25, 1) = .23213297193731183, (26, 1) = .23212115088603688, (27, 1) = .23210931839759805, (28, 1) = .2320974744717771, (29, 1) = .23208561910835826, (30, 1) = .23207375230712815, (31, 1) = .23206187406787573, (32, 1) = .2320499843903925, (33, 1) = .23203808327447237, (34, 1) = .23202617071991155, (35, 1) = .23201424672650875, (36, 1) = .2320023112940651, (37, 1) = .231990364422384, (38, 1) = .23197840611127146, (39, 1) = .2319664363605358, (40, 1) = .23195445516998772, (41, 1) = .23194246253944042, (42, 1) = .2319304584687094, (43, 1) = .23191844295761269, (44, 1) = .23190641600597062, (45, 1) = .23189437761360604, (46, 1) = .23188232778034412, (47, 1) = .2318702665060124, (48, 1) = .231858193790441, (49, 1) = .2318461096334623, (50, 1) = .2318340140349111, (51, 1) = .23182190699462468, (52, 1) = .2318097885124427, (53, 1) = .23179765858820717, (54, 1) = .23178551722176258, (55, 1) = .2317733644129558, (56, 1) = .23176120016163612, (57, 1) = .23174902446765522, (58, 1) = .23173683733086714, (59, 1) = .23172463875112842, (60, 1) = .23171242872829792, (61, 1) = .23170020726223695, (62, 1) = .2316879743528092, (63, 1) = .2316757299998808, (64, 1) = .23166347420332029, (65, 1) = .23165120696299857, (66, 1) = .231638928278789, (67, 1) = .23162663815056725, (68, 1) = .23161433657821145, (69, 1) = .2316020235616022, (70, 1) = .23158969910062233, (71, 1) = .2315773631951572, (72, 1) = .23156501584509465, (73, 1) = .23155265705032474, (74, 1) = .23154028681074, (75, 1) = .23152790512623536, (76, 1) = .23151551199670817, (77, 1) = .23150310742205818, (78, 1) = .23149069140218753, (79, 1) = .23147826393700077, (80, 1) = .23146582502640484, (81, 1) = .2314533746703091, (82, 1) = .23144091286862517, (83, 1) = .23142843962126727, (84, 1) = .23141595492815198, (85, 1) = .23140345878919824, (86, 1) = .2313909512043273, (87, 1) = .23137843217346293, (88, 1) = .2313659016965312, (89, 1) = .2313533597734607, (90, 1) = .23134080640418228, (91, 1) = .23132824158862936, (92, 1) = .23131566532673747, (93, 1) = .23130307761844485, (94, 1) = .23129047846369202, (95, 1) = .2312778678624218, (96, 1) = .2312652458145795, (97, 1) = .2312526123201128, (98, 1) = .23123996737897176, (99, 1) = .23122731099110888, (100, 1) = .23121464315647897, (101, 1) = .23120196387503933, (102, 1) = .23118927314674959, (103, 1) = .23117657097157185, (104, 1) = .23116385734947048, (105, 1) = .23115113228041237, (106, 1) = .23113839576436665, (107, 1) = .23112564780130498, (108, 1) = .23111288839120134, (109, 1) = .23110011753403215, (110, 1) = .23108733522977615, (111, 1) = .23107454147841455, (112, 1) = .23106173627993085, (113, 1) = .23104891963431104, (114, 1) = .23103609154154342, (115, 1) = .23102325200161872, (116, 1) = .2310104010145301, (117, 1) = .23099753858027308, (118, 1) = .23098466469884546, (119, 1) = .23097177937024754, (120, 1) = .23095888259448205, (121, 1) = .23094597437155398, (122, 1) = .2309330547014708, (123, 1) = .23092012358424222, (124, 1) = .23090718101988061, (125, 1) = .2308942270084005, (126, 1) = .23088126154981886, (127, 1) = .23086828464415504, (128, 1) = .23085529629143084, (129, 1) = .23084229649167035, (130, 1) = .2308292852449001, (131, 1) = .2308162625511489, (132, 1) = .2308032284104482, (133, 1) = .2307901828228316, (134, 1) = .23077712578833512, (135, 1) = .2307640573069972, (136, 1) = .23075097737885866, (137, 1) = .23073788600396272, (138, 1) = .23072478318235495, (139, 1) = .23071166891408323, (140, 1) = .230698543199198, (141, 1) = .2306854060377519, (142, 1) = .23067225742980005, (143, 1) = .23065909737539994, (144, 1) = .2306459258746114, (145, 1) = .23063274292749675, (146, 1) = .2306195485341205, (147, 1) = .23060634269454972, (148, 1) = .2305931254088537, (149, 1) = .23057989667710432, (150, 1) = .2305666564993755, (151, 1) = .2305534048757439, (152, 1) = .23054014180628835, (153, 1) = .23052686729109012, (154, 1) = .23051358133023284, (155, 1) = .23050028392380253, (156, 1) = .2304869750718875, (157, 1) = .23047365477457862, (158, 1) = .23046032303196898, (159, 1) = .23044697984415405, (160, 1) = .23043362521123173, (161, 1) = .23042025913330225, (162, 1) = .23040688161046827, (163, 1) = .23039349264283474, (164, 1) = .23038009223050912, (165, 1) = .2303666803736011, (166, 1) = .23035325707222282, (167, 1) = .23033982232648875, (168, 1) = .23032637613651574, (169, 1) = .23031291850242305, (170, 1) = .23029944942433225, (171, 1) = .23028596890236736, (172, 1) = .23027247693665465, (173, 1) = .2302589735273229, (174, 1) = .23024545867450316, (175, 1) = .23023193237832892, (176, 1) = .23021839463893595, (177, 1) = .2302048454564625, (178, 1) = .230191284831049, (179, 1) = .23017771276283847, (180, 1) = .23016412925197613, (181, 1) = .2301505342986097, (182, 1) = .23013692790288917, (183, 1) = .23012331006496697, (184, 1) = .2301096807849978, (185, 1) = .2300960400631388, (186, 1) = .23008238789954946, (187, 1) = .23006872429439168, (188, 1) = .23005504924782957, (189, 1) = .2300413627600297, (190, 1) = .2300276648311611, (191, 1) = .23001395546139508, (192, 1) = .23000023465090527, (193, 1) = .22998650239986773, (194, 1) = .2299727587084608, (195, 1) = .22995900357686522, (196, 1) = .22994523700526417, (197, 1) = .22993145899384315, (198, 1) = .22991766954278994, (199, 1) = .22990386865229476, (200, 1) = .2298900563225501, (201, 1) = .22987623255375098}, datatype = float[8], order = C_order); vary := Array(1..2, {(1) = .0, (2) = -0.50e-2}, datatype = float[8]); ndep := 1; if vary[ndep+1]-outpoint <> 0. then `pdsolve/interp1dto0d`(201, indepvals, 1, depvals, true, outpoint, vary); vary[ndep+1] := outpoint end if; [seq(vary[i], i = 1 .. ndep)] end proc; if not type(outpoint, 'numeric') then if member(outpoint, ["start", "left", "right"]) then return solnproc(x_pde) elif outpoint = "solnprocedure" then return eval(solnproc) elif procname <> unknown then return ('procname')(x_pde) else ndsol := pointto(solnproc("soln_procedures")[0]); return ('ndsol')(x_pde) end if end if; stype := "2nd"; try res := solnproc(outpoint); if stype = "1st" then [x = outpoint, t = 125., seq([C(x, t)][i] = res[i], i = 1 .. 1)] else [x = 125., t = outpoint, seq([C(x, t)][i] = res[i], i = 1 .. 1)] end if catch: error  end try end proc

 

[x = 125., t = .1, C(x, t) = HFloat(0.23218014177522162)]

 

[x = 125., t = .2, C(x, t) = HFloat(0.23194246253944042)]

 

[x = 125., t = .3, C(x, t) = HFloat(0.23170020726223695)]

 

[x = 125., t = .4, C(x, t) = HFloat(0.2314533746703091)]

 

[x = 125., t = .5, C(x, t) = HFloat(0.23120196387503933)]

 

 

 

Download pdeProb2.mw

@mmcdara 

I checked the same worksheet in Maple 18, Maple 2015, Maple 2016, Maple 2017, Maple 2018 and Maple 2019

Only Maple 2015 showed the problem

@mmcdara 

which may (or may not !) create some enlightenment

Stage1

I could reproduce an "anomaly" on your worksheet dodgy0.mw. The commands

sol1 := dsolve(sys, numeric, method=rkf45);
sol2 := dsolve(sys, numeric, method=ck45);
sol3 := dsolve(sys, numeric, method=rosenbrock);

*ought* to produce the outputs

                sol1:=proc(x_rkf45) ... end proc
                sol2:=proc(x_ck45) ... end proc
                sol3:=proc(x_rosenbrock) ... end proc

but in fact they produce nothing. This is weird! Note that I am running Maple2015.2 on 64-bit Windows 7. So the anomaly is not OS-related

Stage2

Somehow you have some weird (non-printing?) character in your worksheet. So I started with a clean workesheet and retyped the "minimal" example shown in the attached. So this contains no possibility of random non-printing characters.

Even on this minimal woksheet - no output from the command

sol1:=dsolve(sys, numeric);

restart;

interface(version);

`Standard Worksheet Interface, Maple 2015.2, Windows 7, December 21 2015 Build ID 1097895`

(1)

sys:={ diff(x(t), t)=(2+3*I)*x(t)-(1-I)*t, x(0)=1 };

{diff(x(t), t) = (2+3*I)*x(t)+(-1+I)*t, x(0) = 1}

(2)

sol1:=dsolve(sys, numeric);

 

Download maple2015Stage2.mw

Stage3

Quick check on the *same* worksheet loaded in the immediately preceding and succeeding Maple versions, ie Maple 18 and Maple 2016

restart;

interface(version);

`Standard Worksheet Interface, Maple 18.02, Windows 7, October 20 2014 Build ID 991181`

(1)

sys:={ diff(x(t), t)=(2+3*I)*x(t)-(1-I)*t, x(0)=1 };

{diff(x(t), t) = (2+3*I)*x(t)+(-1+I)*t, x(0) = 1}

(2)

sol1:=dsolve(sys, numeric);

"sol1:=proc(x_rkf45) ... end proc"

(3)

 

Download Maple18Stage3.mw

restart;

interface(version);

`Standard Worksheet Interface, Maple 2016.2, Windows 7, January 13 2017 Build ID 1194701`

(1)

sys:={ diff(x(t), t)=(2+3*I)*x(t)-(1-I)*t, x(0)=1 };

{diff(x(t), t) = (2+3*I)*x(t)+(-1+I)*t, x(0) = 1}

(2)

sol1:=dsolve(sys, numeric);

`Non-fatal error while reading data from kernel.`

(3)

 

 

Download Maple2016Stage3.mw

 

So at this point we have established that the anomaly is not OS-related and it it is specific to Maple 2015.

At this point further diagnosis gets a bit "random", so don't ask why I'm doing any of this, it is just random stuff I tried

Stage4

Remove the assignment on the dsolve() command and the anomaly disappears! I mean WTF!. And at this stage this site will not display the contents of the following, but take my word for it, just replacing

sol1:=dsolve(sys, numeric);

with

dsolve(sys, numeric);

and as if by magic

proc(x_rkf45) ... end proc

appears

Download maple2015Stage4.mw

Stage5

I also concur with your observation that replacing 'I' with pretty much anything else in the definition of the ODE also makes this anomaly go away

 

Conclusions

  1. The anomaly is not OS-related
  2. The anomaly is specific to Maple 2015
  3. The anomaly is somehow related to the occurrence of 'I' in the ODE definition
  4. The anomaly is somehow related to whether or not the output of the dsolve() command is assigned to anything
  5. The anomaly is much too subtle for me to work out WTF is going on - sorry:-(

If I download your file, Maple2015.2 can read/execute/save it with no problems, aside from the (presumably expected) error message

Error, (in dsolve/numeric) 'events' can only be used with real valued IVP/DAE problems

I am doing this on 64-bit Windows 7.

A pretty random suggestion - you had some kind of save error previously. Depending on how you subsequently managed to achieve the save and what you did with filenames afterwards, you may have left a "dodgy" .bak file in your working directory. (These .bak files are produced by Maple's autosave operation). If your current file (events.mw) has the same name as a possibly-corrupted .bak file, this *may* be the source of your problem

If I am honest I always thought that Logic:-Satisfy() was only really suitable for "small" problems - such as the sort of examples which are given on its help page.

I only began to grasp the possibilities of this command a couple of months ago when I came across this solution to the "worls's hardest Sudoku problem"

https://www.maplesoft.com/applications/view.aspx?SID=154483

I had written my own "heuristic-based" Sudoku solver in Maple, but it failed on this example. So, like your code, this solution impressed the hell out of me.

Until I saw the Sudoku example (and now yours), I would have discounted the viability of programmatically generating hundreds (thousands?, more?) of logical conditions and expecting Satisfy() to come with a solution.

I still have no real notion of how "big" one could go but like I said - it is "underadvertised"

4 5 6 7 8 9 10 Last Page 6 of 147