Next: Exercise 17. Up: Exercises Previous: Exercise 15.

Exercise 16.

Design a data structure for representing a piecewise function. The representation for the piecewise cubic spline above does not interface with other facilities in Maple. Let us represent a piecewise function as an unevaluated function instead as follows. Let

mean

E.g. your procedures should result in the following behaviour.


> IF( x<0, sin(x), cos(x) );

                           IF(x < 0, sin(x), cos(x))
> diff(",x);
                          IF(x < 0, cos(x), - sin(x))

> IF( Pi/3<0, sin(Pi/3), cos(Pi/3) );
                                             1/2
                         IF(1/3 Pi < 0, 1/2 3   , 1/2)
> evalf(");
                                  .5000000000

Modify your IF procedure to simplify nested IF expressions, and to handle constant conditions like the example above. E.g. your IF procedure should result in the following behaviour.


> IF( x<0, 0, IF( x<1, x^2, IF(x>2, 0, 1-x^2) ) );

                                        2                 2
                   IF(x < 0, 0, x < 1, x , 2 < x, 0, 1 - x )

> IF( Pi/3<0, sin(Pi/3), cos(Pi/3) );

                                      1/2


bondaren@thsun1.jinr.ru