mmcdara

852 Reputation

13 Badges

3 years, 228 days

MaplePrimes Activity


These are questions asked by mmcdara

Hi, 

 

In help page DocumentTools:-Layout:-Font, there is an example which shows how to inser a hyperlink in a Layout.

F := Font( "Some text", size=16, color=blue, style=:-Hyperlink ):
InsertContent(Worksheet(Group(Input(Textfield( F ))))):

 

When this id done, how can we activate this hyperlink ?
5I'm presently working with Maple 2015.2 under Mac OS Mojave)

Thanks in advance

 

Hi, 

Moving the sliders clean the plot.
Does any one can show me how to fix this (PS: this piece of code is a part of a procedure whose arguments are RV and SliderRanges and I need this unusual coding to make the procedure generic ... at least I guess so)

Thanks in advance


 

restart:

interface(version);

`Standard Worksheet Interface, Maple 2015.2, Mac OS X, December 21 2015 Build ID 1097895`

(1)

with(Statistics):

RV   := RandomVariable(Normal(a, b)):
law  := [attributes(RV)][3]:
pars := law:-Parameters;

[a, b]

(2)

SliderRanges := [-5.0..5.0, 1.0..3.0]:
[seq(pars[k]=SliderRanges[k], k=1..numelems(pars))]

[a = -5.0 .. 5.0, b = 1.0 .. 3.0]

(3)

f := PDF(RV, x);
# Explore(plot(f, x=-3..3), parameters=[seq(pars[k]=SliderRanges[k], k=1..numelems(pars))]);

(1/2)*2^(1/2)*exp(-(1/2)*(x-a)^2/b^2)/(Pi^(1/2)*b)

(4)

 


 

Download Explore_Problem.mw

Hi,

Why extracting the features of the events doesn't return the good results when executed within a loop (see the pink test) ?

Thanks in advance.

PS: please, spare me  replies of the type "you can solve this equation formally"

 

restart;

interface(version);

`Standard Worksheet Interface, Maple 2015.2, Mac OS X, December 21 2015 Build ID 1097895`

(1)

sys := { diff(x(t), t) = 1, x(0) = 0 }:
evs := [ [x(t)-0.1, none],  [x(t)-0.3, none], [x(t)-0.5, none] ]:
sol := dsolve(sys, numeric, events=evs):

plots:-odeplot(sol, [t, x(t)], t=0..0.5, gridlines=true);

 

# times that fired the events

sol(1): # initialization

sol(eventfired=[1]);
sol(eventfired=[2]);
sol(eventfired=[3]);
 

[HFloat(0.1)]

 

[HFloat(0.3)]

 

[HFloat(0.49999999999999994)]

(2)

# Same times computed  within a loop

for i from 1 to 3 do
  te := op(sol(eventfired=[i]));
end do;

HFloat(0.1)

 

HFloat(0.3)

 

HFloat(0.49999999999999994)

(3)

# Values of x(t) computed  within a loop
#
# Why are calues for events 2 and 3 wrong ?
for i from 1 to 3 do
  te := op(sol(eventfired=[i]));
# xe := sol(te);             # this doesn't return the correct result,
# xe := subs(sol(te), x(t)); # this doesn't work neither
  xe := eval(x(t), sol(te)); # this doesn't work neither
end do;

HFloat(0.1)

 

HFloat(0.1)

 

HFloat(0.0)

 

HFloat(0.0)

 

HFloat(0.0)

 

HFloat(0.0)

(4)

 


 

Download Incomprehensible.mw

 

Hi, 

This is a question more or less related to this one Is it possible to define variables with unusual na... but I think it's better to open a new thread. If some think otherwise, please feel free to displace it to the link above.

I want to relabel the vertices of a graph by using special characters.
It happens that this works perfectly if I do not impose the style of the drawing but that it doesn't if I set, for instance, spring=style.
In the attached file you will see that the subsitution of the old vertex names by the new ones doesn't work if apply it directly on the many operators of the PLOT command contains.

Is this behaviour fixed in more recent versions of Maple or it's still present?


Strange-Behaviour-with-SpringStyle.mw

Hi, 

This thread is more or less related to a previous one about the Statistics:-Sample procedure.
(see https://www.mapleprimes.com/questions/228421-A-Serious-Problem-With-StatisticsSample )
I've just implemented two variant of the Box-Muller procedure to sample normal rvs.
The source is "The art of computer programming", Donald E. Knuth, 2nd edition, p117 (aka "algorithm P").

The first implementation (BoxMuller_1) is basically what D.E. Knuth writes, except that I "vectorize" some operations in order to avoid using an if.. then..else structure (as a minor consequence I generate a little bit more numbers than required).
This procedure uses the build-in Maple's procedure select (please see the link above and acer's and carl love's replies).
It appears to be relatively slow.
More of this CodeTools:-Usage(BoxMuller_1(10^6)) generates a "conenction to kernel lost" for some unknown reason.

The variant named BoxMuller_2 uses sort and ListTools:-BinaryPlace instead of select.
Ir appears to be around 3 times faster than BoxMuller_1, but remains 10 time slower than Statistics:-Sample(..., method=envelope) (here again, see the link above to understand why method=envelope is needed).

I wonder how it could be possible to speed up this procedure. In particular acer showed in one of his reply (again see the link above) how using hfloats can improve the efficiency of a procedure, but I'm very incompetent on this point.
Does anyone have any idea?

Thanks in advance.

PS: this file has been written with Maple 2015.2


 

restart:

BoxMuller_1 := proc(N)
  local V, S, T, L, X1, X2:
  V  := Statistics:-Sample(Uniform(-1, 1), [ceil(2*N/3), 2]):
  S  := V[..,1]^~2 +~ V[..,2]^~2;
  T  := < subs(NULL=infinity, select(`<`, S, 1)) | V >;
  T[.., 1]  := (-2 *~ log~(T[.., 1]) /~ T[.., 1])^~(0.5);
  X1 := select[flatten](type, T[.., 1] *~  T[..,2], 'float');
  X2 := select[flatten](type, T[.., 1] *~  T[..,3], 'float');
  return <X1 , X2>:
end proc:


BoxMuller_2 := proc(N)
  local V1, V2, S, W, u, r, T, X1, X2:
  V1 := Statistics:-Sample(Uniform(-1, 1), ceil(2*N/3)):
  V2 := Statistics:-Sample(Uniform(-1, 1), ceil(2*N/3)):
  S  := V1^~2 +~ V2^~2;
  W  := sort(S, output = [sorted, permutation]):
  u  := ListTools:-BinaryPlace(W[1], 1);
  r  := [$1..u]:
  T  := (-2 *~ log~(W[1][r]) /~ W[1][r])^~(0.5);
  X1 := T *~ V1[W[2][r]];
  X2 := T *~ V2[W[2][r]];
  return <X1 | X2>^+:
end proc:  

CodeTools:-Usage(Statistics:-Sample(Uniform(-1, 1), 10^5)):
CodeTools:-Usage(Statistics:-Sample(Uniform(-1, 1), 10^5, method=envelope)):
# CodeTools:-Usage(BoxMuller_1(10^6)): # generates a "connection to kernel lost" error msg
CodeTools:-Usage(BoxMuller_2(10^6)):

print():
CodeTools:-Usage(BoxMuller_1(10^5)):
CodeTools:-Usage(BoxMuller_2(10^5)):
print():

S1 := BoxMuller_1(10^5):
S2 := BoxMuller_2(10^5):

memory used=1.17MiB, alloc change=0 bytes, cpu time=12.00ms, real time=12.00ms, gc time=0ns
memory used=3.32MiB, alloc change=32.00MiB, cpu time=64.00ms, real time=64.00ms, gc time=0ns

memory used=148.17MiB, alloc change=119.93MiB, cpu time=706.00ms, real time=637.00ms, gc time=14.63ms

 

 

memory used=67.43MiB, alloc change=186.80MiB, cpu time=946.00ms, real time=762.00ms, gc time=285.14ms
memory used=14.81MiB, alloc change=0 bytes, cpu time=67.00ms, real time=62.00ms, gc time=0ns

 

(1)

if false then
DocumentTools:-Tabulate(
  [
    plots:-display(
      Statistics:-Histogram(S1),
      plot(Statistics:-PDF(Normal(0, 1), x), x=-4..4, color=red,thickness=3)
    ),
    plots:-display(
      Statistics:-Histogram(S2),
      plot(Statistics:-PDF(Normal(0, 1), x), x=-4..4, color=red,thickness=3)
    )
  ], width=60
)
end if:
  

# carl love's procedure with slight modifications t

SampleCheck := proc(X, f, N::posint)
uses St= Statistics;
  local S, M, O, E:
  S:= f(N):
  M:= numelems(S):
  O:= <St:-TallyInto(S, <[$(floor@min-1..ceil@max)(S)]>)>:
  E:= St:-Probability~(X <~ (rhs@lhs)~(O), 'numeric') * M:
  <rhs~(O)[2..] | E[2..] - E[..-2]>
end proc:
 

interface(rtablesize=20):
SampleCheck(Statistics:-RandomVariable(Normal(0,1)), 'BoxMuller_1', 10^5),
SampleCheck(Statistics:-RandomVariable(Normal(0,1)), 'BoxMuller_2', 10^5);

Matrix(11, 2, {(1, 1) = 1, (1, 2) = HFloat(0.029943974977392658), (2, 1) = 5, (2, 2) = HFloat(3.28979552036377), (3, 1) = 121, (3, 2) = HFloat(138.1791685600983), (4, 1) = 2276, (4, 2) = HFloat(2243.2153196005097), (5, 1) = 14488, (5, 2) = HFloat(14245.846696531142), (6, 1) = 35630, (6, 2) = HFloat(35780.43897239682), (7, 1) = 35886, (7, 2) = HFloat(35780.43897239682), (8, 1) = 14071, (8, 2) = HFloat(14245.846696531138), (9, 1) = 2212, (9, 2) = HFloat(2243.2153196005092), (10, 1) = 130, (10, 2) = HFloat(138.1791685601056), (11, 1) = 2, (11, 2) = HFloat(3.2897955203516176)}), Matrix(10, 2, {(1, 1) = 1, (1, 2) = HFloat(3.293310594473029), (2, 1) = 127, (2, 2) = HFloat(138.32680996055558), (3, 1) = 2241, (3, 2) = HFloat(2245.6121457991635), (4, 1) = 14226, (4, 2) = HFloat(14261.068070193269), (5, 1) = 35632, (5, 2) = HFloat(35818.66958395649), (6, 1) = 35864, (6, 2) = HFloat(35818.66958395649), (7, 1) = 14451, (7, 2) = HFloat(14261.068070193272), (8, 1) = 2266, (8, 2) = HFloat(2245.6121457991685), (9, 1) = 125, (9, 2) = HFloat(138.32680996054842), (10, 1) = 1, (10, 2) = HFloat(3.293310594468494)})

(2)

 


 

Download Box-Muller.mw

1 2 3 4 5 6 7 Last Page 2 of 13