Problem/Handling for PDEtools[dpolyform] and dsolve

Axel Vogt's picture
For t := x^(1-I), f := arcsin(t) + arcsin(1/t) i have problems with

  dd:= PDEtools[dpolyform](y(z)=f,no_Fn);

                           d
                    dd := [-- y(x) = 0] &where []
                           dx

and using dsolve after that

The imaginary part of f is zero (for x in 0 ... 1, for which I could
not convince Maple 12 to tell it) and the the real part is piecewise
constant (plot it, zooming closer towards 0).

So the answer is correct.

However dsolve for such an differential equation would return only
the trivial solution. Of course.

Is there a 'reasonable' way to use 'dpolyform' in such ugly cases
and to continue with dsolve?

Comments

alec's picture

with x instead of z

Perhaps, I didn't understand the question, but it gives something different with x instead of z,

dd:= PDEtools[dpolyform](y(x)=f,no_Fn);

Alec

Axel Vogt's picture

sorry, typo corrected

Sorry for the sloppy typo, should not have edited, so again (using Maple 12):

  f := x -> arctan(x^(1-I))+arctan(x^(-1+I));

  #f(x); plot([Re(%),Im(%)],x=0..0.3, color=[red,blue]);

  dd := PDEtools[dpolyform]( y(x) = f(x) , no_Fn);

                           d
                    dd := [-- y(x) = 0] &where []
                           dx

And the question remains: how to deal such piecewise functions
using dpolyform?

for these piecewise functions

I doubt that it could work.

Such functions could be expressed in terms of a sum of Heaviside terms, one for each discontinuity point, xi say, with jump Ci. Hence it satisfies an ODE in the sense of distributions, with inhomogeneity as a sum of terms Ci* Dirac(x-xi).

To produce such ODE, or something equivalent, somehow  'dpolyform' should locate these xi, and find their Ci.

PS Apparently, 'discont' works here to locate the xi:

discont(f(x),x);

{0, -exp(1/2*Pi*(1+2*_Z4)), -exp(1/2*Pi*(1+2*_Z8)), 
exp(1/2*Pi*(1+2*_Z1)), exp(1/2*Pi*(1+2*_Z5))}
JacquesC's picture

Simpler example

Already the call PDEtools[dpolyform](y(x) = ln(x) + ln(1/x),no_Fn); produces this same problem.   This is inherent in the use of 'differential algebra' and 'differential polynomials', which is an over-simplification of the underlying analytic problem.

Note that gfun[holexprtodiffeq] has the same problem.

Axel Vogt's picture

analytic

Thx for the replies, I will try to restrict to cases, where the function is analytic

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
}