Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Hi, 
The choice method=default (the implicit choice) gives dramatically false results as demonstrated here for the sampling of a normal r.v.
It's likely to be the case for any continuous distribution.
In a few words the tails of the distribution are not correctly sampled (far from the mean by 4 standard deviations for a normal r.v., not an extremely rare event in practical applications).

I think the attached file is sufficiently documented for you to understand the problem.


 

restart:


The problem presented here also exists with Maple 2018 and Maple 2019

interface(version)

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

(1)

with(Statistics):

X := RandomVariable(Normal(0, 1)):


Generate a sample of X of size 10^6

Here is the R code for those who would like to verify the results and the performances

 

N <- 10^6

R <- 20

Q <- c(0:5)

 

M <- matrix(nrow=R, ncol=length(Q))

 

for (r in c(1:20)) {

  S <- rnorm(N, mean=0, sd=1)

  for (q in Q) {

    M[r, q+1] <-length(S[S>q])

  }

}

 

Expected.Number.of.Outliers <- floor(N - pnorm(Q, mean=0, sd=1) * N)

Observed.Number.of.Outliers <-  round(colMeans(M))

 

Expected.Number.of.Outliers

Observed.Number.of.Outliers

 

Absolute.Differences <- M - kronecker(t(Expected.Number.of.Outliers), rep(1, R))

boxplot(differences)

Remark the loop below takes about 30 seconds to run (to be compared to the 20 minutes
it would take am I used the build-in procedure Select, and to  the 3 seconds R demands).

N := 10^6:
R := 20:

Q  := [$0..5]:
nQ := numelems(Q):
M  := Matrix(R, nQ, 0):

for r from 1 to R do
  S := Sample(X, N):
  for q in Q do
    M[r, q+1] := add(Heaviside~(S -~ q)):
  end do:
end do:

Expected_Number_Of_Outliers := Vector[row](nQ, i -> Probability(X > Q[i], numeric)*N);

Expected_Number_Of_Outliers := Vector[row](6, {(1) = HFloat(500000.0), (2) = HFloat(158655.25393145697), (3) = HFloat(22750.13194817921), (4) = HFloat(1349.8980316301036), (5) = HFloat(31.67124183311998), (6) = HFloat(0.2866515719235352)})

(2)

Observed_Number_Of_Outliers := Mean(M);

Observed_Number_Of_Outliers := Vector[row](6, {(1) = 500291.4, (2) = 158782.3, (3) = 22761.35, (4) = 1349.5, (5) = 51.6, (6) = 1.9}, datatype = float[8])

(3)


While the values of  the Observed_Number_of_Outliers seem to be reasonably correct for q =0, 1, 2 and 3
there are highly suspicious for q = 4 and likely for q = 5 (but N is too small to be categorical)

So let's examine more closely rhe results for q = 4

`q=4`:= convert(M[..,5], list);
 min(`q=4`)

[HFloat(49.0), HFloat(63.0), HFloat(42.0), HFloat(47.0), HFloat(44.0), HFloat(68.0), HFloat(46.0), HFloat(51.0), HFloat(58.0), HFloat(55.0), HFloat(50.0), HFloat(51.0), HFloat(68.0), HFloat(45.0), HFloat(58.0), HFloat(44.0), HFloat(59.0), HFloat(49.0), HFloat(47.0), HFloat(38.0)]

 

HFloat(38.0)

(4)


This means we obtained 20 estimations out of 20 of the probability that X exceeds q=4.
There are only about on chance out of 1 million to get such a result (roughly (1/2)^20 ).

Here is the result R returned for the same quantile q=4

 M[,5]

 [1] 24 37 23 38 30 43 23 30 25 39 25 29 29 36 39 41 35 37 36 34

(9 values out of 20 are less than the expected value of 31.67)

A very simple test based on the Binomial distribution will prove, without any doubt, that the
distribution of the 20 numbers of outliers for q = 4 implies the sampling algorithm is of
is of very poor quality.



Is it possible to obtain correct results with Maple ?


(simulations done below for the case q=4 only)

N := 10^6:
R := 20:

Menv := Vector[column](R, 0):

for r from 1 to R do
  S := Sample(X, N, method=envelope):
  Menv[r] := add(Heaviside~(S -~ 4)):
end do:

`q=4`:= convert(Menv, list);
Mean(Menv);
Variance(Menv);

[HFloat(26.0), HFloat(26.0), HFloat(35.0), HFloat(34.0), HFloat(30.0), HFloat(30.0), HFloat(28.0), HFloat(24.0), HFloat(27.0), HFloat(31.0), HFloat(28.0), HFloat(21.0), HFloat(34.0), HFloat(33.0), HFloat(29.0), HFloat(38.0), HFloat(38.0), HFloat(33.0), HFloat(39.0), HFloat(25.0)]

 

HFloat(30.45)

 

HFloat(24.892105263157895)

(5)



Conclusion, the "default" sampling strategy suffers strong flaw.

Remark: it's well known that one of the best method to sample normal random variables
is Box-Mueller's: why it has not been programmed by default ?

 

 


 

Download Bug_Normal_Sampler.mw


 

I have to do a homework on the euler explicite and when I am trying to test it I get an erreor can someone help me please :)

restart;
eulerexp := proc (fin, condin, h, tmax)

local i, n, j, tab, N; N := tmax/h;

for j to 5 do

tab[1, j] := condin[1, j]

end do;

for n from 2 to N do

tab[n, 1] := tab[n-1, 1]+h;

tab[n, 2] = tab[n-1, 2]+h*fin[1](tab[n-1, 1], tab[n-1, 2], tab[n-1, 3], tab[n-1, 4], tab[n-1, 5]);

tab[n, 3] = tab[n-1, 3]+h*fin[2](tab[n-1, 1], tab[n-1, 2], tab[n-1, 3], tab[n-1, 4], tab[n-1, 5]);

tab[n, 4] = tab[n-1, 4]+h*fin[3](tab[n-1, 1], tab[n-1, 2], tab[n-1, 3], tab[n-1, 4], tab[n-1, 5]);

tab[n, 5] = tab[n-1, 5]+h*fin[4](tab[n-1, 1], tab[n-1, 2], tab[n-1, 3], tab[n-1, 4], tab[n-1, 5]);

end do;

return tab end proc;

condin := [25, 1, 2, 3, 4];
                        [25, 1, 2, 3, 4]


fin := proc (t, w, x, y, z) options operator, arrow; [2*t-4*w+5*x-6*y-z, x, z, t] end proc;
(t, w, x, y, z) -> [2 t - 4 w + 5 x - 6 y - z, x, z, t]

h := .1;
                              0.1
tmax := 20;
                               20


eulerexp(fin, condin, h, tmax);
Error, (in eulerexp) invalid subscript selector


 

I've always had this issue. 1. Double click to highlight term to get help on. 2. Hit F1 3. Help pops up and I have to type in that term and find the info.

 

Why can't maple just combine all these steps? I've tried F2, various alt's, ctrl's, and shift combos and nothing... Surely something as basic as this has a hot key? And ideally I'd like to assign F1 to it!

 

The  plots help page contains an entry for ternaryplot. But it is empty (Maple 2018&2019) and there is no such command.
Does somebody know about it?

restart;
Digits:=4:
n:=11:
M := 2:
Le := 5:
Lb := 2:
L:= 1:
l := 0.5:
Pr := 1:
Pe := 2:
Nt := 0.5:
Nb := 0.8:
F[0]:=0:
F[1]:=l*F[2]:
F[2]:=a:
T[0]:=1:
T[1]:=b:
d:=k->piecewise(k<>0,0,k=0,1):
for k from 0 to n do F[k+3]:=-1/(d(k)+(k+1)*(k+2)*F(k+2))*((sum(F[k-m]*(m+1)*(m+2)*F[m+2],m=0..k))-(sum((k-m+1)*(m+1)*F[k-m+1]*F[m+1],m=0..k))-M*(k+1)*F[k+1])*(factorial(k)/factorial(k+3));
T[k+2]:=-1*(Pr/(k+1)*(k+2))*((sum(F[k-m]*(m+1)*T[m+1],m=0..k))+Nt*(sum((k-m+1)*(m+1)*T[k-m+1]*T[m+1],m=0..k))+Nb*(sum((k-m+1)*(m+1)*T[k+1]*F[k-m+1],m=0..k))) end do: 
f:=sum(F[k]*y^k,k=0..n); 
t:=sum(T[k]*y^k,k=0..n); 
with(numapprox):
pade(diff(f,y),y,[4,4]):
pade(t,y,[4,4]):
solve({limit(pade(diff(f,y),y,[4,4]),y=infinity)=0.,limit(pade(t,y,[4,4]),y=infinity)=0.,[a,b]);

I'm new to using Maple and am trying to create the procedure above. My code so far:

with(combinat):
g:=proc(n)
 local x; local setG; local setG2;
    for x from 1 to n do
        setG:={seq(x+1,x=1..n-1)}; setG2:=choose(setG,3); nops(setG2);
    end do;
end proc; 

Although this doesn't seem to work even though

setG:={seq(x+1,x=1..5)}; setG2:=choose(setG,3); nops(setG2);

Any help would be greatly appreciated!! 

 

I am studying the motion of a beam coupled to piezoelectric strips. This continuous system is modelled by two DE:

YI*diff(w(x,t), x$4)-N[0]*cos(2*omega*t)*diff(w(x,t), x$2)+c*diff(w(x,t), t)+`&rho;A`*diff(w(x,t), t$2)+C[em,m]*v(t) = 0;

And:

C[p]*diff(v(t), t)+1/R[l]*v(t) = C[em,e]*(D[1,2](w)(0,t)-D[1,2](w)(ell,t));
 

where "w(x,t)" stands for the beam's vibration and "v(t)" means the electric voltage, which is constant throught the beam. I would like to numerically solve both DE simultaneosly, but maple will not let me do it. I would like to know why. I am getting the following error:

Error, (in pdsolve/numeric/process_PDEs) number of dependent variables and number of PDE must be the same
 

I suppose it is because "w(x,t)" depends on "x" and "t", while "v(t)" depends solely on time, but I am not sure. Could someone help me out? Here is my current code:

restart:
with(PDEtools):
declare(w(x,t), v(t)):

YI*diff(w(x,t), x$4)-N[0]*cos(2*omega*t)*diff(w(x,t), x$2)+c*diff(w(x,t), t)+`&rho;A`*diff(w(x,t), t$2)+C[em,m]*v(t) = 0;
pde1:= subs([YI = 1e4, N[0] = 5e3, c = 300, omega = 3.2233993, C[em,m] = 1], %):
ibc1:= w(0,t) = 0, D[1,1](w)(0,t) = 0, w(ell,t) = 0, D[1,1](w)(ell,t) = 0, D[2](w)(x,0) = 0, w(x,0) = sin(Pi*x/ell):

C[p]*diff(v(t), t)+1/R[l]*v(t) = C[em,e]*(D[1,2](w)(0,t)-D[1,2](w)(ell,t));
pde2:= subs([C[p] = 10, R[l] = 1000, C[em,e] = 1, ell = 5], %):
ibc2:= v(0) = 0:

pdsolve({pde1, pde2}, {ibc1, ibc2}, numeric);

Thanks.

Hello everyone!

I'm interesting in "zcoloring" funciton in colorscheme option.

I wrote simple programm which compares two results: spectrogram of signal drawn with "colormap" list and spectrogram which was plotted with zcoloring function. I use red, green, blue functions to construct JET-colormap: list and expressions in "zcoloring".

My result:

As I understand, when I use:

colorscheme = ["zcoloring", [z-> Red color function(z), z-> Green color function(z), z-> Blue color function(z)], colorspace = "RGB"]

Maple plots z-value with color RGB color coordinates defined from "zcoloring". For example, if "zcoloring" is

colorscheme = ["zcoloring", [z-> 5*z, z-> 3*z, z-> 2*z], colorspace = "RGB"]

and z value is 10, then 10 value will correspond [50,30,20]-RGB color.

My test program:

Spectrogram_zcoloring.mw

Spectrogram of my test signal:

list_test.txt

with(LinearAlgebra); A := `

D[1,2](1/x);

 

what does this mean?

How do I find where 𝑓(π‘₯) = (2*π‘₯ ^2) tan(2*π‘₯), is discontinuous in the interval [0,2πœ‹], and find the discontinuities. I know you need ot use the commands: discount(f(x),x), iscont(f(x),x=a..b,’open’), iscont(f(x),x=a..b,’close’) and fdiscont(f(x),x=a..b, resolution) which will help me find the list of ranges, each of width resolution, in which there appears to be a discontinuity in the function or its first derivative.However, what is next ?

Solve the following ODE for given initial conditions both analytically and numerically. Use the odeadvisor in DEtools package to classify the equations. Plot the explicit and numerical solutions in the range [0,20] using plot and odeplot commands. 𝑦 ′′(𝑑) + 16𝑦(𝑑) = 3 sin(πœ” 𝑑), for πœ” ∈ {1,4,5,8}, 𝑦(0) = 𝑦 ′ (0) = 0

 

I started by:

 

ode := diff(y(t), t, t) + 16*y(t) = 3*sin(w*t);
                  /  2      \                       
                  | d       |                       
           ode := |---- y(t)| + 16 y(t) = 3 sin(w t)
                  |   2     |                       
                  \ dt      /                       
odeadvisor(ode, y(t));
            [[_2nd_order, _linear, _nonhomogeneous]]
I undertsnad how to plot 

but how do I odeplot and how do I contribute πœ” ∈ {1,4,5,8

. Let 𝑔(π‘₯) = cos2 (π‘₯ 2+1) (sinπ‘₯+1) 2 and 𝑓(π‘₯) = (2π‘₯ 2 − 1) 3√π‘₯ + 2.

Write a procedure to return the tangent line of the function 𝑓(π‘₯) at the given point π‘₯ ∈ 𝐷𝑓.

 

I started by writing a regular Proc template 

such as 

tangent line:=proc(y);

however i am unsure if I shpuld go forwrad with using an if loop or not?

 

 

What is the correct way to specify region where solution of a PDE is needed? For example, I am trying to verify my hand solution to this HW problem: Solve Poisson PDE in 2D 

The above is the only information given in the textbook. So it is only in the upper half plane. If I type this

interface(showassumed=0);
pde := VectorCalculus:-Laplacian(u(x,y),[x,y])=-1/(1+y);
bc:=u(x,0)=0;
pdsolve([pde,bc],u(x,y)) assuming y>0

Maple gives 

But I get by hand using method of images is

So not exactly the same. I think I made mistake in my solution. But I am also not sure that just saying "assuming y>0" is doing what I think it is supposed to do. For example, suppose we want to solve the same PDE say in the first quadrant. Typing

pdsolve([pde,bc],u(x,y)) assuming y>0,x>0

Gives same solution. But the solution should be different. And typing

pdsolve([pde,bc],u(x,y)) 

Gives same answer as well.

So I think I need another way to tell Maple the region of the solution. i.e. I need to tell Maple to use the Laplacian for the upper half plane only and not the Laplacian in the whole 2D space.

Any suggestions what to do and how to handle such problems?

Thank you

First 614 615 616 617 618 619 620 Last Page 616 of 2224
ο»Ώ