rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

diff(realpart) bogus #3055

Closed rtoy closed 3 months ago

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 12:39:45 Created by macrakis on 2004-04-19 20:00:47 Original: https://sourceforge.net/p/maxima/bugs/559


declare(z,complex)$ diff(realpart(z),z) => realpart(1) ?!?!

Realpart is nowhere differentiable!

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 12:39:47 Created by robert_dodier on 2006-07-29 06:14:39 Original: https://sourceforge.net/p/maxima/bugs/559/#4f8a


rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 12:39:51 Created by robert_dodier on 2006-07-29 06:14:39 Original: https://sourceforge.net/p/maxima/bugs/559/#4989


Logged In: YES user_id=501686

Observed in 5.9.3cvs.

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 12:39:54 Created by crategus on 2009-05-10 14:00:13 Original: https://sourceforge.net/p/maxima/bugs/559/#19fe


In the routine sdiff the following code is implemented:

((member (caar e) '(%realpart %imagpart) :test #'eq) (list (cons (caar e) nil) (sdiff (cadr e) x)))

That is

diff(realpart(f(x)),x) --> realpart(diff (f(x),x)) and diff(imagpart(f(x),x)) --> imagpart(diff(f(x),x)).

Both rules are wrong. The code should be simply cut out. The testsuite has no problems and does not depend on this code.

These are some results, when we cut out the code:

(%i1) declare(z,complex)$

A noun form for a complex symbol:

(%i2) diff(realpart(z),z); (%o2) 'diff('realpart(z),z,1) (%i3) diff(imagpart(z),z); (%o3) 'diff('imagpart(z),z,1)

For a real symbol realpart and imagpart simplify and we get:

(%i4) diff(realpart(x),x); (%o4) 1 (%i5) diff(imagpart(x),x); (%o5) 0

An unknown function does not simplify and we get again the noun forms:

(%i6) diff(realpart(f(x)),x); (%o6) 'diff('realpart(f(x)),x,1) (%i7) diff(imagpart(f(x)),x); (%o7) 'diff('imagpart(f(x)),x,1)

Maxima knows how to simplify the sin function and we get:

(%i8) diff(realpart(sin(x)),x); (%o8) cos(x) (%i9) diff(imagpart(sin(x)),x); (%o9) 0

I think we should cut out the above code.

Dieter Kaiser

rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 12:39:57 Created by crategus on 2009-05-10 14:00:13 Original: https://sourceforge.net/p/maxima/bugs/559/#1c11


rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 12:40:01 Created by crategus on 2009-06-04 19:42:41 Original: https://sourceforge.net/p/maxima/bugs/559/#f907


rtoy commented 3 months ago

Imported from SourceForge on 2024-07-07 12:40:04 Created by crategus on 2009-06-04 19:42:41 Original: https://sourceforge.net/p/maxima/bugs/559/#0bec


The rule for differentiating realpart and imagpart has been removed as suggested.

Closing this bug report as fixed.

Dieter Kaiser