MathGroup Archive 2003

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

Search the Archive

Trying to use Table to iterate a Part specification

  • To: mathgroup at smc.vnet.net
  • Subject: [mg42542] Trying to use Table to iterate a Part specification
  • From: pi314159 at hotmail.com (pi314159)
  • Date: Mon, 14 Jul 2003 05:42:11 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I'm trying to write a small program that will identify critical points
of functions with two independent variables.  I'm using the
discriminant test to generate a list of the value of the discriminant
at each point; since If isn't listable (I think), and I couldn't get
Map to cooperate, I'm using Table to run the if-loop over each item in
the list of discriminant values ("signs").  However, I have to use a
Part specification to tell If which element in the list I want it to
use, and Part doesn't like Table's iterations.  Is there a way around
this?

Thanks!

pi314159

---

criticalpoints[expr_] := Solve[{D[expr, x] == 0, D[expr, y] == 0}, {x,
y}];

discriminant[expr_] := D[expr, x, x]*D[expr, y, y] - D[expr, x, y]^2;

identifycriticalpoints[expr_] :=
  Module[{signs, length1, points, points2},
    signs = discriminant[expr] /. criticalpoints[expr];
    length1 = Length[signs];
    points = criticalpoints[expr];
    points2 = 
      Partition[DeleteCases[Flatten[List @@@ Flatten[points]],
_Symbol], 2]
        Table[
          If[Positive[Part[signs, i]] == True, 
            If[D[expr, x, x] > 0, Print["Minimum", Part[points2, i]], 
              Print["Maximum", Part[points2, i]]], 
            Print["Saddle point", Part[points2, i]
              ],
            {i, 1, length1}]
          ];
    ]


  • Prev by Date: Re: Need for (FindFit, Refine) ?
  • Next by Date: RE: Contour plots for irregular data
  • Previous by thread: Re: Mathematica Programming Problem
  • Next by thread: Re: Trying to use Table to iterate a Part specification