DMUG-Archiv 2011

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: NIntegrate mit einer compelierten Funktion

Hallo Peter,

Es wäre besser, wenn diese Schieber unbeweglich wären.
Das habe ich nicht hingebracht.

Dabei ist es simple. Nur muss man \[Mu], \[Nu] mit dem
String (Namen) der Veränderlichen des Schiebers vergleichen,
nicht mit deren Wert:

In[55]:= Remove[drawIt, enableIt];
drawIt[\[Mu]_String, \[Nu]_String, a1_, x1_, b1_, y1_, l1_, H1_,
  M1_] :=
 Block[{Hmin = 10^(-6), Hmax = 7, a2, x2, b2, y2, l2, H2, M2, r, s,
   t},
  If[\[Mu] === \[Nu],
   CreateDialog[
    "Wählen Sie zwei verschiedene Parameter für Plot3D[], bitte \
sehr!"];
   Return[$Failed]
   ];
  s = Select[{a2 -> a1, x2 -> x1, b2 -> b1, y2 -> y1, l2 -> l1,
     H2 -> H1,
     M2 -> M1}, ((ToString[First[#]] =!= \[Mu] <> "2") && (ToString[
          First[#]] =!= \[Nu] <> "2")) &];
  r = Select[{{a2, -1, 1}, {x2, -5, 5}, {b2, -3, 3}, {y2, -6,
      6}, {l2, -4, 4}, {H2, Hmin, Hmax}, {M2, Hmin/2,
      Hmax - Hmin}}, ((ToString[First[#]] === \[Mu] <>
          "2") || (ToString[First[#]] === \[Nu] <> "2")) &];
  t = If[Position[
       ToString /@ {a2, x2, b2, y2, l2, l2, H2, M2}, \[Mu] <> "2"][[1,
       1]] < Position[
       ToString /@ {a2, x2, b2, y2, l2, l2, H2, M2}, \[Nu] <> "2"][[1,
       1]], {\[Mu], \[Nu]}, {\[Nu], \[Mu]}];
  Plot3D[Evaluate[
    Erf[(a2 (2 x2 - b2))/Sqrt[2 (H2/M2 - 1)], (a2 (2 x2 + b2))/Sqrt[
       2 (H2/M2 - 1)]] Erf[(a2 (2 y2 - l))/Sqrt[2 (H2/M2 - 1)], (
        a2 (2 y2 + l))/Sqrt[
        2 (H2/M2 - 1)]]/(4 (1 - Exp[-2 M2^2 (H2/M2 - 1)])) //. s],
   Evaluate[Sequence @@ r],
   AxesLabel -> t]
  ]
enableIt[\[Mu]_String, \[Nu]_String,
  x_String] := (\[Mu] =!= x && \[Nu] =!= x)

In[58]:= Manipulate[
 Hmin = 10^(-6); Hmax = 7;
 Dynamic[drawIt[\[Mu], \[Nu], a, x, b, y, l, H, M]],
 Column[
  {Row[{"Parameter für Plot3D[]:"}],
   RadioButtonBar[Dynamic[\[Mu]], {"a", "x", "b", "y", "l", "H", "M"}],
   RadioButtonBar[Dynamic[\[Nu]], {"a", "x", "b", "y", "l", "H", "M"}],
   Row[{"Parameter für die eigenhändige Untersuchung:"}],
   (* Slider has Exclusions -> {} as option *)
   Row[{"a\t",
     Slider[Dynamic[a], {-1, 1},
      Enabled -> Dynamic[enableIt[\[Mu], \[Nu], "a"]],
      Appearance -> "Labeled"]}],
   Row[{"x\t",
     Slider[Dynamic[x], {-5, 5},
      Enabled -> Dynamic[enableIt[\[Mu], \[Nu], "x" ]],
      Appearance -> "Labeled"]}],
   Row[{"b\t",
     Slider[Dynamic[b], {-3, 3},
      Enabled -> Dynamic[enableIt[\[Mu], \[Nu], "b"]],
      Appearance -> "Labeled"]}],
   Row[{"y\t",
     Slider[Dynamic[y], {-6, 6},
      Enabled -> Dynamic[enableIt[\[Mu], \[Nu], "y"]],
      Appearance -> "Labeled"]}],
   Row[{"l\t",
     Slider[Dynamic[l], {-4, 4},
      Enabled -> Dynamic[enableIt[\[Mu], \[Nu], "l"]],
      Appearance -> "Labeled"]}],
   Row[{"H\t",
     Slider[Dynamic[H], {Hmin, Hmax},
      Enabled -> Dynamic[enableIt[\[Mu], \[Nu], "H"]],
      Appearance -> "Labeled"]}],
   Row[{"M\t",
     Slider[Dynamic[M], {Hmin/2, Hmax - Hmin},
      Enabled -> Dynamic[enableIt[\[Mu], \[Nu], "M"]],
      Appearance -> "Labeled"]}]
   }, Spacings -> 1
  ],
 FrameLabel -> "Peter's Huffy Function"
 ]

Gruss
Udo.



Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html