MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

making a function linear

  • To: mathgroup at
  • Subject: [mg25473] making a function linear
  • From: Murray Eisenberg <murray at>
  • Date: Mon, 2 Oct 2000 22:26:53 -0400 (EDT)
  • Organization: Mathematics & Statistics, Univ. of Mass./Amherst
  • Sender: owner-wri-mathgroup at

For a function T not yet having any "definition by formula" (T[x_] :=
..... ), I want to specify the linearity rules:

  T[x_?VectorQ + y_?VectorQ] := T[x] + T[y]

  T[c_ x_?VectorQ] := c T[x]

Then, merely by specifying, say,

  a = {1, 2}; T[a] = {3, 4};
  b = {5, 6}; T[b] = {7, 8};


  T[2 a]
  T[a + b]

would return results:

  {6, 8}
  {10, 12}

The trouble is, of course, that Mathematica first evaluates 2 a and a +
b when a and b have actual numeric values, so the two linearity rules
never get used.

What is a SIMPLE way (if there is one) to accomplish this -- preferably
some way to do it that does not explicitly require using some Hold
variant?  (I need to be able to explain how to do it early in a linear
algebra course where Mathematica is being introduced, and Hold, etc., I
consider a definitely advanced topic.)

Murray Eisenberg                     murray at
Mathematics & Statistics Dept.       phone 413 549-1020 (H)
Univ. of Massachusetts                     413 545-2859 (W)
Amherst, MA 01003-4515

  • Prev by Date: Why relatively slow on Apple G4?
  • Next by Date: Re: List element manipulation
  • Previous by thread: Re: Why relatively slow on Apple G4?
  • Next by thread: Re: making a function linear