On 6 August 2014 21:13, Waldek Hebisch <[email protected]> wrote: > Bill Page wrote: >> ... >> limit(sign(x),x=0,"left") = limit(sign(x),x=0,"right") = 0 > > Hmm, I define 'sign' so that for x > 0 it is equal to 1, so > limit from the right is 1. Similarly limit from the left is -1. > Value is 0. Of course, 'sign' is discontinuous at 0, > so fact that value is different from limits is no > surprise. >
You are right. The limits are OK. This is my error. I guess the only reason I can give to prefer signum over sign is my desire to define signum(x) = x/abs(x) It might be inconvenient if sign were given exactly by this definition. E.g. signum of a complex number z = r*exp(%i*theta) is undefined for z=0, otherwise exp(%i*theta) >> ... >> I think that >> >> abs(x)/x ~= x/abs(x) >> >> If D(abs(x),x) = x/abs(x) then D(abs(x),[x,x]) = (abs(x)^2 - x^2 ) / >> abs(x)^3. >> This is zero only for x is real. > > But what D(abs(x),x) mean for non-real x? 'abs' considered > as function of complex variable is not differentiable. AFAICS > one reasonable interpretation of D(abs(x),x) is that it > automatically forces x to be real. Yes, D(abs(x),x) is not complex-differentiable. But D(abs(x),x) = x/abs(x) is nonetheless a derivative in the direction of the real axis. My thinking is this: If we can "define" signum(x) as x/abs(x) then perhaps we can also "define" diracDelta(x) as (abs(x)^2 - x^2 ) / abs(x)^3 / 2 ? To do this the derivative D(abs(x),[x,x]) must not be zero. Of course these expressions are not actual distributions but perhaps we can also define integration of expressions involving abs so that we may use them to represent distributions in a consistent way. > As a distribution (in one real variable) we have > > D(abs(x),[x, x]) = 2*diracDelta(x) > > In particular this means D(abs(x),[x, x]) = 0 for x not equal > to 0. > Yes. I would like to represent diracDelta by a suitable non-zero expression which reduces to 0 over the real numbers. I guess the domain of computation we need is something like x + i dy for x real and dy arbitrarily small. Consider real( (abs(x+%i*y)^2 - (x+%i*y)^2 ) / abs(x+%i*y)^3) in the limit as y approaches 0. For non-zero y we may evaluate the definite integral x=%minusInfinity..%plusInfinity. This represents diracDelta as a sequence of functions as y approaches 0. It seems very convenient to me that we can obtain this function from D(abs(x),[x, x]). See http://axiom-wiki.newsynthesis.org/SandBoxDiracDelta > ... >> >> Maybe. Note that both Maple and Mathematica give >> >> D(abs(x),x) = x/abs(x) >> ... >> Perhaps you are right. To use and extend Shirokov's idea might not be easy. >> > ... > Note that you give different derivatives for the "same" function > x/abs(x) depending on domain. So you have > > D(f::GE, x) != D(f, x)::GE > > where f = x/abs(x) and GE is GeneralizedExpression(Integer). > This means that '::GE' can not be a differential homomorphism. > OK. > ... > Note that similar relation hold between PrimeField(p) and Integer. > Only mapping from bigger domain to smaller is called 'coerce' and > mapping from smaller to bigger 'convert'. This seems backward. We 'coerce' Integer to Fraction(Integer) and retract Fraction(Integer) to Integer. Fraction(Integer) is "bigger" domain than Integer, right? Coercion to Fraction(Integer) preserves addition, multiplication etc. )set mess bot on x:Integer := 7 y:Integer := 9 z:Integer := x+y z:Integer := retract(coerce(x)$Fraction(Integer)+coerce(y)$Fraction(Integer)) The model GeneralizedExpression I had in mind is more like this: f:FRAC INT := 1/3 g:FRAC INT := 1/4 h:FRAC INT := f+g h1:=coerce(h)$Float h2:=coerce(f)$Float+coerce(g)$Float test(h1=h2) h3:FRAC INT := retract(coerce(f)$Float+coerce(g)$Float) test(h=h3) Note: Based on the above I expected to see the result true for both of the following commands: test((1/3 + 1/4)::Float ~= (1/3)::Float + (1/4)::Float) test((1/3 + 1/4) = retract((1/3)::Float + (1/4)::Float)) but the latter seems to produce an unexpected error message: >> Error detected within library code: Not an integer I am not sure what is happening on here. > ... >> My admittedly limited understanding of the available approaches to the >> theory of distributions and generalized functions is that we may >> choose between non-commutative or non-associative algebras. > > For Schwartz distributions I see no way to avoid non-associativity. > The example is: > > (1/x*x)*diracDelta(x) = 1*diracDelta(x) = diracDelta(x) > 1/x*(x*diracDelta(x)) = 1/x*0 = 0 > > However, going beyond Schwartz distributions we drop > relation x*diracDelta(x) = 0. Shirokov is doing this by > introducing non-commutativity. But we can drop this > relation in purely commutative setting. In particular > we can consider x and diracDelta(x) as independent > transcendentals. Yes. > Of course, relation > > x*diracDelta(x) + diracDelta(x)*x = 0 > > has some appeal, but clearly we can not use it in > commutative setting. > I don't think that is not exactly what Shirokov had in mind, but OK. >> I think >> non-commutative is likely to be more useful. I guess that the subset >> that can be consistently expressed in a purely commutative function >> space is (mostly) trivial but I am not against a consistent >> implementation of this subset. Maybe I will change my mind about this. I agree that implementing as much as possible without resorting to generalized functions theory is a good idea. As a speculation I wonder if the non-commutativity of Shirokov's generalized functions could be represented with quaternion-valued expressions t + i dx + i dy + j dz, for real t, and arbitrarily small dx, dy, and dz? If so, the value of this is not immediately clear to me. >> Could you give an example of a >> non-trivial computation that you would like to be able to perform >> in this manner? In particular I am interested in extending this >> to integration. > > We should be able to compute things like > > integrate(diracDelta(x^2+y^2), x) What value do you expect? Did you mean? integrate(diracDelta(x^2+y^2), x=%minusInfinity..%plusInfinity) > > In general, we should be able to compute integrals of > expressions linear in diracDelta and its derivatives. > During integration we will use relation 'y*diracDelta(y) = 0' > for y depending on integration variable. Since in general we > can not move factors depending on integration variable from > integral to outside we will get no contradiction. > Can we do this even in indefinite integration? Cheers, Bill Page. -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.
