## Why doesn't "plot" display the graph?...

Do you have any idea why the graph of function f (see the attached file) is not displayed?
How can I plot it without using the

`plot([seq([t, f], t in [seq](0.9..1.12, 0.002))]);`

command ?

 > restart:
 > kernelopts(version)
 (1)
 > f := 4.185692792*10^2172*t^2499*exp(-5000.000000*sqrt(t)); # Here is a plot of f plot([seq([t, f], t in [seq](0.9..1.12, 0.002))]);
 > # How can I plot f using simply: plot(f, t=0.9..1.12);  #no graph
 > # As numelems([seq](0.9..1.12, 0.002)) = 111, I assume # that forcing numpoints to a number that at least equal # to this one could give a non null display? plot(f, t=0.9..1.12, numpoints=1000):  #no graph
 > # adaptive=true option doesn't help plot(f, t=0.9..1.12, adaptive=true):  #no graph
 > # Last attempt by forcing a list of points where f has to be evaluated. plot(f, t=0.9..1.12, sample=[seq](0.9..1.12, 0.002))
 >

## Why doesn't `if` recognize three arguments and why...

Here is a chunk of a more complex code

```# syntax 1

decisions := "accept", "reject":

T := 2:
# The true test is `if`(t > T, ...) where t comes from some computation.
# In order to focus on the issue I assumed t was equal to 1.
`if`(1 > T, decisions[1], decisions[2]);
"reject"
```

To get a more concise writing, I did the following

```# syntax 2

decisions := "accept", "reject":
T := 2:
`if`(1 > T, decisions);
```

and received this error

`Error, invalid input: `if` expects 3 arguments, but received 2`

Why doesn't `if` recognizes that decisions is a two parameters sequence?
Is there a way to force `if` to understand syntax 2 ?

I tried replacing `if` by piecewise: while getting no error I can't understand why I got si strange results:

```piecewise(1 > T, decisions);
piecewise(3 > T, decisions);
0
"accept", "reject"
```

What mechanism does piecewise use to return these values?

If_and_piecewise.mw

## Why does isolate fail to isolate?...

In a recent answer I posted, I had a relation of the form

`I*Int(f(x), x) = something - 2*I*Int(f(x), x)`

and I wanted to isolate the term Int(f(x), x).
The function isolate failed to do it and I was forced to use some workaround to do the "isolation".

Trying to understand what happened here, it seems that isolate fails when the term to isolate is multiplied by the imaginary unit
Here are a few examples

 > expr := I*(Int(x^2*ln(-x+sqrt(x^2-1)), x)) = g(x) -(2*I)*(Int(x^2*ln(-x+sqrt(x^2-1)), x))
 (1)
 > # no isolation isolate(expr, lhs(expr))
 (2)
 > # isolation expr_1 := expand(expr / I) isolate(expr_1, lhs(expr_1))
 (3)
 > # no isolation neither, so the problem is not related to "Int" expr := I*diff(h(x), x) = g(x) -2*I*diff(h(x), x): isolate(expr, lhs(expr))
 (4)
 > # no isolation neither, so the problem comes from "I" expr := I*A = g(x) -2*I*A: isolate(expr, lhs(expr))
 (5)
 > # isolation (of course) expr := c*A = g(x) -2*c*A: isolate(expr, lhs(expr))
 (6)
 >

I guess this is a known behavior, but why it is so?
Is there a way to force the "isolation" without using a trick like in result (3)

## From fortran to Maple (the instruction go to)...

Hi!

I want to implement to attached fortran program in Maple 2015 (the procudure starts at the end of the first page).

localmin.pdf

The code does not seem dificult, but I don't know how to interpret the instructions "go to" of fortran. Reading Maple's doc about the "goto" instruction, I don't understand how to implement it.

Can somebody help with this code, please?

## How to use the type ':-RandomVariable' in the para...

Hi,
I met a an unexpected behaviour of a procedure when the parameter sequence contains the type ':-RandomVariable':

```restart:
with(Statistics):
f1 := proc(A::':-RandomVariable')
Mean(A)
end proc:

Z := RandomVariable(Normal(mu, sigma)):
hastype(Z, ':-RandomVariable');
f1(Z)
true
Error, invalid input: f1 expects its 1st argument, A, to be of type 'RandomVariable', but received _R
# Another attempt
f2 := proc(A)
if hastype(A, ':-RandomVariable') then Mean(A) end if;
end proc:

f2(Z)
mu
```

Why does f1 generate this error?

Type_RandomVariable.mw

## The vertical axis is logarithmic even if it is not...

Version used MAPLE 2015.2

I use dualaxisplot and want a logarithmic horizontal axis.
I can get the expected graphic using either of these two methods

```restart:
with(plots):
dualaxisplot(
plot(x, x=0..1, color=blue, axis[1]=[mode="log"]),
plot(1-x, x=0..1, color=red, axis[1]=[mode="log"]),
gridlines=true
):

dualaxisplot(
semilogplot(x, x=0..1, color=blue),
semilogplot(1-x, x=0..1, color=red),
gridlines=true
):
```

This worksheet contains my true code
(pink lines correspond to < plot + axis[1]=[mode="log"] > and blue lines to < semilogplot >).
You will see that the vertical axis for the plot declared in second position is logarithmic, whatever the way the logarithmic x-axis is defined.
DecisionProb.mw

I am unable to find out if I made a mistake (which is likely) or if it is a bug?
Could you please have a look at this code and give me an answer?

## A problem in selecting elements from set...

I get a problem while selecting elements from sets.

I have a list of two sets apparently ordered in the same order.
When I pick this, for instance, first set from each of these two samples I get the first one from the first set, and the second one from the second set.

 > restart:
 > DF := [ {diff(Theta(x), x), diff(Theta(x), x, x)}, {diff(g(x), x), diff(g(x), x, x)} ]
 (1)
 > # Why are the elements of DF[2] not returned in their correct order? i := 1; DF[i], DF[i][1], DF[i][2]; print(): i := 2; DF[i], DF[i][1], DF[i][2];
 (2)
 > # I suppose we must not trust what is displayed and that lprint is more # trustworthy? lprint(DF)
 [{diff(Theta(x), x), diff(diff(Theta(x), x), x)}, {diff(diff(g(x), x), x), diff(g(x), x)}]
 > # I expected that converting each element of DF into a list would fix this # problem. but anothr does appear: # "Why does the conversion into list change the order of the elements?" # I had never seen that before LDF := convert~(DF, list)
 (3)
 >

Running this command

`map(sort, LDF)`

displays LDF, which suggests that LDF is already sorted according to some order.
What is this order which makes diff(Theta(x), x\$2) the successor of diff(Theta(x), x)  but diff(g(x), x) the successor of diff(g(x), x\$2)  ?

## How to extract dat file from contour plot...

Dear Users,

I hope everyone here is fine. I want to extract dat file from the attached contour plot file. Please help me to resolve this issue. Many thanks in advance

Dat_file.mw

## Is there a command to get errors from fit paramete...

Hi everyone, I'm studying physics at college and we have to do lab reports. Of course we have to fit data sets. They only taught us how to calculate errors of the parameters of lineaer distributions.

Unforutnately I have to fit points that follow these functions:

First of all, which command do I use to fit for the second function? (Its the formula of  in function of the frequence in RC circuits)

I know for the first one there's the PowerFit command.

Also, is there a command that returns the errors for the variaous fit parameters? (i.e. a,b,c,d)

Or at least, someone knows the methods and formulas to find them?

## Ploting in pdsolve numerically...

Dear Users,
I hope you are doing well. The following is the code to solve a nonlinear PD equation numerically and I plotted the graphs for T(y,t) sucessfully.

restart; with(plots); PDE1 := Pr*(diff(T(y, t), t)-Ree*(diff(T(y, t), y))) = (1+Nr*(T(y, t)+1)^3)*(diff(T(y, t), y, y))+3*Nr*(T(y, t)+1)^2*(diff(T(y, t), y))^2; ICandBC := {T(1, t) = 1, T(y, 0) = 1, (D[1](T))(0, t) = T(0, t)}; Ree := .1; Pr := 6.2; HA1 := [0, 1, 10]; AA := [red, green, blue, cyan, purple, black];
printlevel := 2; for i to nops(HA1) do Nr := op(i, HA1); print("Nr = ", %); PDE[i] := {PDE1}; pds[i] := pdsolve(PDE[i], ICandBC, numeric, spacestep = 1/200, timestep = 1/100); PlotsT[i] := pds[i]:-plot[display](T(y, t), t = 1, linestyle = "solid", labels = ["y", "u"], color = op(i, AA), numpoints = 800) end do;
display([`\$`(PlotsT[j], j = 1 .. nops(HA1))], size = [1000, 600], axes = boxed, labels = [x, (convert("T", symbol))(x, T)], labelfont = ["Times", 14, Bold], labeldirections = [horizontal, vertical], axesfont = ["Arial", 14, Bold], thickness = 3)

I want to plot the graphs for (1+Nr*(T(y, t)+1)^3)*(diff(T(y, t), y)), at t = 1. Also want to plot diff(T(y, t), y) at y = 0 and y = 1 against Nr. Kindly help me in this matter.

## Factorization and ascending order of an expression...

Dear Users!
I hope are fine here. I got the following expression after a lot of computations

((1/2)*r*(r-1)+(1/6)*r*(r-1)*(r-2))*`&Delta;y`[-1]^3+(1/2)*r*(r-1)*`&Delta;y`[-1]^2+(1/120)*r*(r-1)*(r-2)*(r-3)*(r-4)*`&Delta;y`[-2]^7+((1/6)*r*(r-1)*(r-2)+(1/12)*r*(r-1)*(r-2)*(r-3)+(1/120)*r*(r-1)*(r-2)*(r-3)*(r-4))*`&Delta;y`[-2]^5+((1/6)*r*(r-1)*(r-2)+(1/24)*r*(r-1)*(r-2)*(r-3))*`&Delta;y`[-2]^4+((1/24)*r*(r-1)*(r-2)*(r-3)+(1/60)*r*(r-1)*(r-2)*(r-3)*(r-4))*`&Delta;y`[-3]^7+((1/24)*r*(r-1)*(r-2)*(r-3)+(1/60)*r*(r-1)*(r-2)*(r-3)*(r-4))*`&Delta;y`[-3]^6+r*`&Delta;y`[0]+y[0]

Actually, for the above, I want the factorization of each coefficient of `&Delta;y`[0], `&Delta;y`[-1], `&Delta;y`[-2] etc and the above expression shoud be in descending order given as:

y[0]+r*`&Delta;y`[0]+(1/2)*r*(r-1)*`&Delta;y`[-1]^2+(1/6)*r*(r-1)*(1+r)*`&Delta;y`[-1]^3+(1/24)*r*(r-1)*(r-2)*(1+r)*`&Delta;y`[-2]^4+(1/120)*r*(r-1)*(r-2)*(r+2)*(1+r)*`&Delta;y`[-2]^5+(1/120)*r*(r-1)*(r-2)*(r-3)*(r-4)*`&Delta;y`[-2]^7+(1/120)*r*(r-1)*(r-2)*(r-3)*(-3+2*r)*`&Delta;y`[-3]^6+(1/120)*r*(r-1)*(r-2)*(r-3)*(-3+2*r)*`&Delta;y`[-3]^7

I am waiting for your positive response. Thanks

## Difficulties to compute a definite integral....

Does anyone have any idea why Maple can obtain a closed form of

`Int(f, t=1..3);`

but doesn't for

`Int(g, t=1..3);`

?

The Int forms are quite close and I don't understand what makes Maple's task that difficult in the second case (the issue seems to come from the conditions in the piecewise function).
Can we force Maple to perform the second integration ?

TIA

 > restart:
 > interface(Version)
 (1)
 > f := piecewise(z/t < 0, 0, z/t < 1, 630*z^8/t^8-2520*z^7/t^7+3780*z^6/t^6-2520*z^5/t^5+630*z^4/t^4, 0)/t: Int(f, t=1..3); value(%);  # returns a closed form of the integral
 > g := piecewise(z/t < 1, 0, z/t < 2, 10080-60480*z/t+156240*z^2/t^2-226800*z^3/t^3+202230*z^4/t^4-113400*z^5/t^5+39060*z^6/t^6-7560*z^7/t^7+630*z^8/t^8, 0)/t: Int(g, t=1..3); value(%): # unable to return a closed form of the integral

## Why does "discont" give this result...

I'm working on finding the analytic expression of the PDF of a sum of abstract Uniform Random Variables URV).
Here "abstract" means that the supports are not numeric but litteral.

Maple is capable to find such a PDF for numeric supports but unable to determine the PDF of U1+U2 where

```U1 := RandomVariable(Uniform(a1, b1)):
U2 := RandomVariable(Uniform(a2, b2)):
```

A way to deal with abstract URV is to complute explicitely the convolution product of th PDFs.
Ir seems that this fails (MAPLE 2015.2) for these PDF are piecewise functions.
A workaround is to convert them first into Heaviside(s).

One done the explicit expression of the convolution product can be obtained for a sum of 2 abstract URVs, but not for a sum of a larger number of abstract URVs.

Thus the second workaround which consists in using direct and inverse Fourier transform.

The question is :
obviously, the PDF f(t ; a1...aN, b1...bN) of  U1 + ... + UN is a continuous function of t: why does discont(f(t ; ...), t) returns the non empty set of the values where the Heaviside functions are undefined ?

Here is a very simple result

```u1 := RandomVariable(Uniform(-1, 1)):
u2 := RandomVariable(Uniform(-1, 1)):
p := PDF(u1+u2, t):
discont(p, t);

print("-------------------------------------");

f1 := convert(PDF(u1, t), Heaviside):
f2 := convert(PDF(u2, t), Heaviside):
g1 := fourier(f1, t, xi):
g2 := fourier(f2, t, xi):
g  := g1*g2:
f  := invfourier(g, xi, t):
discont(f, t);

{}
"-------------------------------------"
{-2, 0, 2}
```

The problem is (IMO) that discont(f, t) should return { }, but that some function (does it exists) should say that d is undefined at points t=-2, t=0, t=2.
The output of discont(f, t) doesn't seem consistent with the definition of the continuity

```limit(f, t=-2, left);
limit(f, t=-2, right);
eval(f, t=-2)
0
0
undefined
```
 > restart:
 > with(inttrans); with(Statistics):
 (1)
 > N := 3: for n from 1 to N do   U||n := RandomVariable(Uniform(a__||n, b__||n)): end do;
 (2)
 > # Maple fails to compute the PDF of a sum of abstract (meaning with symbolic support) uniform RVS # PDF(U1+U2, t)
 > # For N <=3 the computation of the convolution product is possible. # # For N > 4 (Maple 2015) it seems this is no longer the case. The trick used here is based on # the fact that Fourier(Conv(f, g)) : Fourier(f)*Fourier(g) # Thus PDF(U1+U2) = conv(PDF(U1), PDF(U2)) = invFourier(Fourier(PDF(U1)).Fourier(PDF(U1))) for n from 1 to N do   f||n := convert(PDF(U||n, t), Heaviside): end do: for n from 1 to N do   g||n := fourier(f||n, t, xi): end do: g := mul(g||n, n=1..N): hyp := seq(b__||n > a__||n, n=1..N); f   := invfourier(g, xi, t) assuming hyp;
 (3)
 > # f is obviously a continuous function of t, but I get this strange result discont(f, t);
 (4)
 > # note that this "error" also appears if the a__n's and b__n's are numeric r := rand(0. .. 1.): P := convert(indets(g, name) minus{xi}, list): E := NULL: for n from 1 to N do   a := r():   b := a + r():   E := E, a__||n = a, b__||n = b end do: E := [E]; G := eval(g, E): f := invfourier(G, xi, t); discont(f, t);
 (5)
 > u1 := RandomVariable(Uniform(-1, 1)): u2 := RandomVariable(Uniform(-1, 1)): p := PDF(u1+u2, t): discont(p, t); print("-------------------------------------"); f1 := convert(PDF(u1, t), Heaviside): f2 := convert(PDF(u2, t), Heaviside): g1 := fourier(f1, t, xi): g2 := fourier(f2, t, xi): g  := g1*g2: f  := invfourier(g, xi, t): discont(f, t);
 (6)
 > limit(f, t=-2, left); limit(f, t=-2, right); eval(f, t=-2); print("-------------------------------------"); limit(f, t=0, left); limit(f, t=0, right); eval(f, t=0)
 (7)
 >

## How to remove the unit?...

Consider this piece of program

```restart:
interface(version)
Standard Worksheet Interface, Maple 2015.2, Mac OS X, December 21 2015 Build ID 1097895
with(Units):
a := 3*Unit('m');
3 Units:-Unit('m')
```

I would like to define a new quantity b which is the dimensionless variant of a.
I browsed the Units package to look for a function that would "remove" the dimension of a dimensional quantity like a above (that is to get '3' alone).

As I couldn't find such a function I use to use this workaround.

```b := remove(has, a, Unit);
3
```

Is this a robust strategy?
What would you propose to "remove" the dimension of a?

## Why are the level curves wrong when axis mode is ...

Using plot3d(..., style=surfacecontour, ...) or contourplot3d(...) displays wrong level curves when some axis are switched to a log mode.

Example:

 > restart:
 > interface(version)
 (1)
 > X := (0.4000000000e-4*(-R+80.00))/(R*(0.4e-1+M__a)):
 > plot3d(X, R=0..10, M__a=10^0..10^4, style=surfacecontour, color=gold)
 > plot3d(X, R=0..10, M__a=10^0..10^4, axis[2]=[mode=log], axis[3]=[mode=log], style=surfacecontour, color=gold)
 > plots:-display(   plots:-contourplot3d(X, R=0..10, M__a=10^0..10^4, axis[2]=[mode=log], axis[3]=[mode=log], color=red),   plot3d(X, R=0..10, M__a=10^0..10^4, style=surface, color=gold) )
 >

The problem is not dramatic because there is a workaround.

 > restart:
 > interface(version)
 (1)
 > X := (0.4000000000e-4*(-R+80.00))/(R*(0.4e-1+M__a)):
 > fig := plot3d(X, R=0..10, M__a=10^0..10^4, style=surfacecontour, color=gold): Tr  := plottools:-transform((x, y, z) -> [x, log[10](y), log[10](z)]): plots:-display(Tr(fig), axis[2]=[tickmarks=[seq(i=10^i, i=0..4)]], axis[3]=[tickmarks=[seq(i=nprintf("%1.0e", 10.^i), i=-7..-1)]])
 >