There are two or three bugs here, I think. First, diff is not computing the derivative of conjugate(s), when s is complex, correctly.
Second, it appears that the nonscalar declaration is trumping the real declaration, so conjugate(z) is not simplified to z. This leads to the derivative of conjugate(z) being incorrectly computed.
(%i2)declare(s,complex); (%i3) diff(s);
(%o3) del(s)
(%i4) diff(conjugate(s));
(%o4) 'diff(conjugate(s),s,1)*del(s) <-----incorrect, should be conjugate(del(s))
(%i5) declare(z,nonscalar);
(%i6) diff(z);
(%o6) del(z)
(%i7) diff(conjugate(z));
(%o7) 'diff(conjugate(z),z,1)*del(z) <------- it seems that diff has treated nonscalar == complex
(%i8) declare(z,real);
(%o8) done
(%i9) diff(conjugate(z));
(%o9) 'diff(conjugate(z),z,1)*del(z) <------ should be del(z),
I think the differentiation of the conjugate function can not be defined for other than real values. For real values conjugate(x) simplifies to x and the derivative can be defined to be (see e.g. http://functions.wolfram.com/ComplexComponents/Conjugate/20/01/\)
(%i7) diff(conjugate(x),x);
(%o7) 1
For any symbol declared to be complex or nonscalar Maxima returns a noun form:
(%i13) diff(conjugate(z),z);
(%o13) 'diff(conjugate(z),z,1)
(%i14) diff(conjugate(a),a);
(%o14) 'diff(conjugate(a),a,1)
This is consistent with the total differential returned by Maxima:
(%i15) diff(conjugate(z));
(%o15) 'diff(conjugate(z),z,1)*del(z)
(%i16) diff(conjugate(a));
(%o16) 'diff(conjugate(a),a,1)*del(a)
I do not see a problem. The derivative for complex or nonscalar values is not defined for the conjugate function.
Setting the status to pending and the resolution to invalid.
Dieter Kaiser
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).