I see that related to that you asked a question.  Since currently
I can not post to newsgroups I comment here.

1) Expression -2*ln(2*x) + ln(x^2) corresponds to multivalued
function in the complex plane having coutably many analytic
branches.  As mutivalued analytic function it is equal to
-log(4), that is each branch is constant and gives one of
possible values of -log(4).  So in fact -log(4)*x is a
"perfect" answer, valid everywhere and faithfully representing
multivalued structure of the input.

2) Of course, antiderivative is defined at best where integrand
is defined.  However, if you more or less artifically restrict
domain of definition of a function a CAS has no way to know
this.  And I think that returning expression which gives valid
answer where integrand is defined, but without domain restricion
is fine.  That is answering quiestion like "where is this function
real" is quite different than integration and not part of
indefinite integration.

3) The example above is quite easy and regular.  In general branching
structure of a function may be quite complicated.  One can imagine
CAS which would give try to give list all possible results and
conditions which result to select.  It is probaly possible for
large class of functions, but it is not clear to me if this is
useful.  I expect that user has concrete choice of branches
in mind and want result for this specific choice.

4) There are folks who insist that symbolic results should
agree with numeric ones.  My opinion is that burden here
should be on numeric software.  Namely naively plugging in
formulas into numeric software can give results which are
mathematically incorrect, but more careful numeric approach
can produce correct value.  As an example, expression 'log(Gamma(x))'
defines multivalued complex function with logarithmic singularities
at 0 and negative integers.  If you cut complex plane along
negative half axis, you remove all singularities.  Additionaly
if you take real branch along posive half axis, you get nice
single valued functions on cut complex plane.  But computing
it as 'log(Gamma(x))' does not work, it is easy to see that
one gets spurious jumps.  FriCAS (and many other systems)
have 'logGamma' function which is doing right thing.  In
fact FriCAS code is using 'log' of 'Gamma(x)' is area that
naively would give spurious jumps.  But FriCAS computes correction
leading to correct choice of branch of logarithm.

-- 
                              Waldek Hebisch

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/20230510185940.qzkv7lkhn3i3ewrk%40fricas.math.uni.wroc.pl.
  • [fricas-devel] fyi... 'Nasser M. Abbasi' via FriCAS - computer algebra system
    • Re: [fricas-d... Waldek Hebisch

Reply via email to