## 6024 Reputation

7 years, 269 days

## Does IntegrationTools:-Combine handle +/...

Maple

Here is an example where IntegrationTools:-Combine does not seem capable to combine two integrals whose lower bounds are -infinity (same situation holds where upper bounds equal to +infinity).

Is there a way to Combine(J1) without using the J3 workaround?
Is there any mathematical reason why Combine(J1) does not work or it is due to the way Maple handles infinity?

IntegrationTools_Combine.mw

## Of types and properties...

Maple

1. The first one means the type real doesn't exist, which can be easily verified by looking to the help(type) page,
2. Given the definition of '::' ( from help(coloncolon`) 'The  "::" operator serves several purposes in Maple, all related to types.') the second one suggests that real is a known type (for there is no error returned).
```restart
f := x -> `if`(x::real, x, I*x):
f(3)
Error, (in f) type `real` does not exist
g := x -> is(x::real);
g(3), g(3*I)
true, false
```

Does assuming transforming "real" into a property in function g explains why it returns true?

(
Bulk questions:

Why doesn't real type exist, whereas complex type does?
From help(complex):
General complex numbers are numbers of the form x + I*y, where x and y are integers, rationals, or floats. In the general complex number case, if either x or y is a floating-point number, then an automatic conversion takes place, coercing both x and y into type float.
seems to mean that the complex is built upon floats and not reals.
But the dictionnary says
complex: adj. 1. of, involving, or of the form of a complex number, consisting of a real and an imaginary part, either of which may be zero. 2.- n. another term for a simplicial complex. Sometimes, however, less is required of a complex than of a simplicial complex. 3. (Group theory) an archaic term for a subset of a group.
real: adj.  1. involving or consisting of real numbers alone, having no imaginary part, or imaginary part equal to zero.  2. (as substantive) a real number.
The dictionnary doesn't mention floating point number but real ones, whereas the help pages do the opposite.

Why some numbers are considered as types whereas others are properties?
For instance, help(property) says that property rational is related to parent property real, but rational is also a type.
)

## How can I go from the lhs to the rhs in ...

Maple

Assuming u and v are both real, I want to prove this equality.

```int(Dirac(u-v), [u, v])  = min(u, v)
```

To be clear, I don't want to verify is this equality is true, but I want (I would like) to do is to get its rhs by using ad hoc transformations of its lhs.

Under the same assumptions, how can I do the same thing for this equality?

`int(Dirac(u+v-1), [u, v]) = max(u+v-1, 0)`

## A question about inverse functions...

Maple

I am presently working on bivariate functions defined this way

```C := (u, v) -> (phi@@(-1))(phi(u)+phi(v));
```

phi is a function of specific expression named the "generator". Both u and v are assumed to be in the closed interval [0,1].

Here is an example:

```restart
phi := u -> (u^(-theta)-1)/theta:
C := (u, v) -> (phi@@(-1))(phi(u)+phi(v)):
C(u, v)
/ (-theta)        (-theta)    \
| u         - 1   v         - 1|
@@(phi, -1)| ------------- + -------------|
\    theta           theta    /
```

This definition of C is correct providing that  theta in [-1, +infinity) \ {0}.
As you can see, the display of C(u, v) contains the inverse function phi@@(-1) which Maple doesn't seem to know what to do with.

What I would like is to get rid of  phi@@(-1) and get

```C(u, v);
(-1+u^(-theta)+v^(-theta))^(-1/theta)```

The only way I found to get this is to do that:

```restart
phi := u -> (u^(-theta)-1)/theta:
(phi@@(-1)) := u -> solve(phi(x)=u, x): # explicit definition of (phi@@(-1))
C := (u, v) -> simplify((phi@@(-1))(phi(u)+phi(v))) assuming theta >= -1, theta <> 0:
C(u, v);
/    1  \
|- -----|
\  theta/
/      (-theta)    (-theta)\
\-1 + u         + v        /

```

As you see I have been forced to tell Maple what the inverse function of phi was.
Is there another way do get this result without writting the bold red line?

Maple knows several inverse functions (trigonometric functions for instance), but how does it know that?
As Maple does not seem to use a (f@@(-1)) := u -> solve(f(x)=u, x) like definition, does it uses a correspondence table between functions and their inverse?
If it is so can we augment it?

PS: the ultimate goal is to do something like this Download CAC.mw  for different generators.

For the moment I have defined my own table generator <--> inverse function  as I did above with the bold red line: this works but it is not very elegant.

## How can I evaluate procedure J2?...

Maple

Why does the execution of procedure J2 in the attached file fire an error?
it looked to me as if I had built it the same way as J1.

 > restart:
 > # Basically I want do do something like that, J1 := proc()   local z:   z := proc(u) fsolve(sqrt(x)=u, x) end proc:   evalf(Int(''z''(u), u=0..1)) end proc: J1();
 (1)
 > # but when z is more complex finction of two arguments. # # Unfortunately a direct transposition of what worked above no longer works. J2 := proc()   local z:    z := proc(q1, q2)      exp(        2*(          fsolve(1/2+(1/2)*erf((1/2)*x*sqrt(2)) = q1, x)          *          fsolve(1/2+(1/2)*erf((1/2)*x*sqrt(2)) = q2, x)        )        -        fsolve(1/2+(1/2)*erf((1/2)*x*sqrt(2)) = sqrt(q1), x)^2        -        fsolve(1/2+(1/2)*erf((1/2)*x*sqrt(2)) = sqrt(q2), x)^2     )   end proc:   evalf(Int(''z''(q1, q2), q1=0..1, q2=0..1)) end proc: J2();
 >