Bill Page wrote:
> 
> On 28 March 2017 at 17:44, Bill Page <bill.p...@newsynthesis.org> wrote:
> >
> > On Mar 28, 2017 4:25 PM, "Waldek Hebisch" <hebi...@math.uni.wroc.pl> wrote:
> >
> > Bill Page wrote:
> >>
> >> On 28 March 2017 at 15:36, Waldek Hebisch <hebi...@math.uni.wroc.pl>
> >> wrote:
> >
> >> Natural definition of derivative give you 2 by 2 matrix.  Regardless
> >> of choice of basis this matrix does not correspond to multiplication
> >> by scalar.
> >
> > I am not familiar with this natural definition of derivative. Can you
> > provide a refetence or the actual definition?  It seems possible that
> > such a definition might be necessary in the more general case of a
> > non-commutative algebra but the assumption of commutivity is deeply
> > embed in Expression and related polynomial domains. I would like to
> > be able to prove this.
> >
> 
> I had a chance last night to think more carefully about this. Perhaps
> the matrix that you meant by "natural definition of derivative" is the
> following:
> 
>   [ D(f(x),x)                    D(f(x), conjugate(x))                  ]
>   [ D(conjugate(f(x)),x)  D(conjugate(f(x)),conjugate(x)) ]

AFAICS you are using specific basis above.  In general when
f is defined on a real vector space V, then f is differentiable
at x if there exists linarar mapping L such that

f(x + h) - Lh - f(x) 

goes to 0 when h goes to 0.  On finite dimensional real vector
space there is exactly one topology agreeing with vector
structure, so 'goes' just means convergence in this topology.
On infinite dimensional spaces there are several reasonable
topologies so notition of "differentiable" depends on
choice of topology.  In case of complex functions of one
complex variable our V above is complex numbers, that is
real vector space of dimension 2.  Once you chose basis
you get 2 by 2 matrix for each linear operator, in
particular for derivative.  Traditional choice is to use
1 and %i as basis for complex numbers.  AFAICS Wirtinger
uses sqrt(1/2) + %i*sqrt(1/2) and conjugate as a basis.

> >> Not so easy -- the whole concept of differential field is based
> >> on single derivative (or more precisely single derivative per
> >> variable).
> >
> > What is your definition of variable? I think that if x is a variable it is
> > also correct to treat conjugate(x) as a variable.
> >
> 
> It does not seem to be a problem to consider 'conjugate(f(x))' to be a
> different expression from 'f(x)' and for 'x' to be a different
> variable distinct from 'conjugate(x)'.

Maybe.  But variables can be passed to eval.  What should

eval(sqrt(x*conjugate(x)), [x = exp(t), conjugate(x) = sin(t)])

do?  Currently this is sqrt(exp(t)*sin(t)), but how this
plays with rules that you advocate? I am not saying that
anything wrong happens, but we need to check out what
are conseqences of our rules.  And Richardson theorem
means that there must be trouble _somewhere_.

We can treat complex function as real functions of two
variables, but I see to following problems:

- for special functions it may happen that we do not have
  nice expression for real part and imaginary part
  (admitedly, here using conjugate(x) as variable may
   have some edge)
- for compositions we need to treat both values and
  arguments as pairs

> >  And "interesting" symbolic capabilities
> > of FriCAS have differential fields as justification.  There
> > are limitations set by Richardson.  Admittedly, we already
> > have enough things to get into trouble (namely abs + trig
> > functions).
> 
> Yes.
> 
> > ATM we refuse to do "interesting" things with 'abs' and
> > clearly we need to be careful what we allow to do with
> > 'conjugate'.
> 
> If we also refuse to to "interesting" with 'conjugate' what other
> advantages do you have in mind for implementing 'conjugate' in FriCAS?

I hope that we will be able to _selectively_ perform some
useful transformations (maybe using eval or pattern matching).
>From correctness point of view the best choice would be to
signal error for derivative of 'conjugate', but that probably
would block too much useful functionality.  I hope that
undefined derivative will not cause trouble and allow
at least trivial computations.  More precisely, to do
transform functions containing 'conjugate' based on properties
of other functions.

> 
> >
> >> To put it differently, with 'D(conjugate(x),x) = 0' we will
> >> get a lot of expressions that are not constant, but differentiate
> >> to 0.
> >
> >> The derivative of these expressions with respect to conjugate(x)
> >> will not be 0.
> >
> 
> More correctly, the matrix above must be 0. Deciding that it is zero
> is independent of the choice of basis.
> 
> > It is not clear if all places using 'D(f(x),x)=0' to recognize
> > constants can be extended to sensibly handle 'conjugate'.
> 
> What possible problems do you foresee?

Our core algortihms work with functions of single variable,
treating other as parameters.  As I wrote above it looks fishy
to say transform x independently from 'conjugate(x)'.
It may work if we consistently double number of variables.
But then we may miss "interesting" equalities because they
hold only when x and conjugate(x) are in specific relation
(that is conjugate(x) really is conjugate x and not only
some formal play with symbols).


-- 
                              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 post to this group, send email to fricas-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to