Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

[Phys-l] definition of function



On 08/09/2007 01:17 PM, Bernard Cleyet wrote:

the context of magnetic hysteresis, it is OK to say we are plotting
B versus H, but strictly speaking B is not a function of H (nor vice
versa).
http://www.irm.umn.edu/hg2m/hg2m_b/Image10.gif

-

please explain.

Since you asked:

A function, by definition, is a set of ordered pairs such that
for each abscissa, there is only one ordinate.

That's the definition. The term is often abused, but that doesn't
change the definition. I do /not/ think we should be open-minded
about mutant definitions of this important term.

Example: The set {(1,1) (2,2) (3,1)} is a function.

Counterexample: {(1,1) (2,2) (1,3)} is not a function, because the
abscissa (1) is associated with two different ordinates (1) and (3).

Example: The set of all (x,y) such that y=2x is a function.

Counterexample: the set of all (x,y) such that x^2 + y^2 = 1 is
not a function.

Counterexample: The hysteresis curve is not a function. Same
reason: multiple ordinates per abscissa.

Counterexample: the random-number generator library routine.
You can call it a library routine, or a subroutine, or a procedure,
but you must not call it a function, because returns a result
(ordinate) that is not uniquely determined by its argument
(abscissa).

==============

While we're on the subject of terminology: I use "abscissa"
to mean the first element of an ordered pair, and "ordinate"
to mean the second element. In lisp, these are called car
and cadr respectively. See code below.

Note that in my world, abscissa doesn't necessarily mean x or
horizontal, and ordinate doesn't necessarily mean y or vertical.



Here's the lisp code. Note that lisp is particularly relevant
in this context, because of its central role in /functional/
programming:
http://en.wikipedia.org/wiki/Functional_programming



? (setq abscissa car)
= ::DX:car
? (setq ordinate cadr)
= ::DX:cadr
?
? (setq p '(foo bar))
= (foo bar)
?
?
?
? p
= (foo bar)
? (abscissa p)
= foo
? (ordinate p)
= bar