[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-math] if-expression and variables
From: |
Stefan Karrmann |
Subject: |
Re: [Axiom-math] if-expression and variables |
Date: |
Fri, 10 Jun 2011 19:56:18 +0200 |
Dear all,
we can help ourselves in some cases by:
sign x == (abs x)/x
H x == (1 + sign x)/2
step (a,b,x) == (H(x-a)) * (H(b-x))
The drawback is that we get a 'Division by zero'.
Kind regards,
Stefan
Am Donnerstag, den 05.05.2011, 00:23 -0400 schrieb William Sit:
> Dear Stefan:
>
> You posed a legitimate problem: how should symbolic
> computation handle piecewise defined functions, and in
> particular, how to integrate such a function.
>
> Maple and Mathematica both can handle piecewise functions.
> Look up "piecewise" from Maple Help. You can easily define
> a piecewise function, and differentiate or integrate it.
> Indeed, Maple says:
>
> The piecewise function can be differentiated, integrated,
> simplified, plotted, and used in the following types of
> differential equations: constant coefficients and
> discontinuous perturbation function, general first-order
> linear, Riccati, and some other classes which are handled
> by integration or variation of parameter. See
> dsolve[piecewise] for more details. series, limit, abs,
> and signum can handle the piecewise function.
>
> As example, the desired solution the problem of
> integrating f(x) from 0 to t, where f(x) is 2x if x < 10
> and 5x^2 otherwise, should be the function g(t), defined
> as t^2 if t < 10 and -4000/3 +(5 t^3)/3 otherwise. Maple
> does exactly that. In fact, I even tried to integrate
> f(f(x)) and f(f(x+1)) and Maple does it with no problems
> with all the cases covered.
>
> Mathematica has a similar function called Piecewise to
> construct piecewise functions, and like Maple, Piecewise
> can be used in such functions as Integrate, Minimize,
> Reduce, DSolve and Simplify, as well as their numeric
> analogs.
>
> This may be an uncovered domain in Axiom. A search for
> "piecewise" shows no hits. I think piecewise functions
> have to be separately handled, particularly in case
> analysis (possibly involving semi-algebraic sets and CAD)
> if there is any indefiniteness in the answer (like an
> indefinite integral). There is some evidence that if the
> user does not use the built-in "piecewise" or "Piecewise"
> function, but uses an if-then-else construction, neither
> Maple nor Mathematica can handle subsequent mathematical
> calculations. For example, the system would not do the
> case analysis, much less the "simplification"
> automatically, but would present the result as the
> integral of If[x < 10, 2 x, 5 x^2] (in Mathematica; I did
> not try Maple). Even when the case analysis is done, it
> would still not simplify or evaluate the integrals:
>
> h[x_] := If[x < 10, Integrate[2 y, {y, 0, x}],
> Integrate[2 y, {y, 0, 10}] + Integrate[5 y^2, {y, 10,
> x}]]
>
> when h[x] is called. It will evaluate on numerical inputs.
>
> In our earlier discussions, we were "lured" into using
> "if-the-else" constructions and thus got the feeling that
> this is difficult to handle. The confusion is that we
> interpret "x < 10" as an binary relation, whereas it
> should be handled as a semi-algebraic set (in one
> dimension, this is just an interval)!
>
> However, the algorithms seem to be there, and someone
> should implement them in Axiom if it is not already done
> but hidden in some obscure packages.
>
> William
>
> On Wed, 04 May 2011 22:37:48 +0200
> Stefan Karrmann <address@hidden> wrote:
> > Dear all,
> >
> > thanks for your answers. They clears a lot.
> >
> > I actually want to integrate test1 and solve an
> >differential equation
> > with it.
> >
> > E.g.
> > test2 x == rho * test1 x
> > y = operator 'y
> > odeq := D(y x) = test2 x
> > solve(odeq, y, x)
> >
> > Obviously, the solution is "formally"
> >
> > y_sol x == integrate(test2 x,x)
> >
> > Kind regards,
> > Stefan
> >
> > Am Dienstag, den 03.05.2011, 11:21 +0200 schrieb Ralf
> >Hemmecke:
> >> Dear Stefan,
> >>
> >> as others already have pointed out, for Axiom, your
> >>question is not
> >> really well posed.
> >>
> >> In Axiom
> >>
> >> if x<10 then 2*x else 5*x^2
> >>
> >> is *not* an expression (as you might know it from other
> >>untyped CAS like
> >> Mathematica or Maple), but rather a programming language
> >>construct. In
> >> other words, if Axiom sees this, it is evaluated. So the
> >>result is
> >> either 2*x or 5*x^2 depending on the (boolean) outcome
> >>of the evaluation
> >> of x<10.
> >>
> >> I think, Bill suggested to use something like InputForm.
> >>There it would
> >> be possible to represent an if-expression unevaluated.
> >>
> >> But you should rather say what you actually want (it's
> >>not the same what
> >> you expect).
> >>
> >> In order for us to suggest you a proper way to handle
> >>your use case, you
> >> should tell us why you want a piecewise function and
> >>(more important)
> >> what you later want to do with that function.
> >>
> >> Until we have that information, everything would be just
> >>digging in the
> >> dark.
> >>
> >> Ralf
> >>
> >> On 04/30/2011 08:40 PM, Stefan Karrmann wrote:
> >> > Dear all,
> >> >
> >> > I'm new to axiom and have a problem with piecewise
> >>functions.
> >> >
> >> > test1 (x | x< 10) == 2*x
> >> > test1 (x | x >= 10) == 5*x^2
> >> > [was typo: test1 (x | x< 10) == 5*x^2]
> >> > test1
> >> > ->
> >> > test1 (x | x< 10) == 2x
> >> > test1 (x | ^ x< 10) == 5x
> >> >
> >> Type:
> >>FunctionCalled
> >> > test1 y
> >> > ->
> >> > 2
> >> > 5y
> >> >
> >> > I expected something like (if y< 10 then 2*y else
> >>5*y**2).
> >> >
> >> > How is it possible to pass a Variable to a piecewise
> >>function respecting
> >> > the pieces?
> >> >
> >> > PS: Using a block and => or explicit if-then-else
> >>does not help.
> >
> >
> > _______________________________________________
> > Axiom-math mailing list
> > address@hidden
> > https://lists.nongnu.org/mailman/listinfo/axiom-math
>
> William Sit, Professor Emeritus
> Mathematics, City College of New York
> Office: R6/291D Tel: 212-650-5179
> Home Page: http://scisun.sci.ccny.cuny.edu/~wyscc/
- Re: [Axiom-math] if-expression and variables,
Stefan Karrmann <=