DMUG-Archiv 2003

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

Re: Funktionen mehrerer Parameter

Hallo,

oh Gott, das Grauen hat ja so viele Gesichter.

Du willst eine Funktion phi[] definieren, die als Argument
eine Liste hat, und die Teile dieser Liste in einen Ausdruck
einsetzen. Also

phi[param_List]:= (* ist schon mal die Funktion mit der Liste als
Argument *)
  param[[1]] + (1 + param[[4]])*(Cos[param[[3]]] Cos[param[[2]]])

und param[[i]] extrahiert die Teile (Part[])


Ansonsten ist ein Funktionsaufruf phi[] etwas ganz ganz anderes, als ein
indizierter Zugriff param[[i]], es sei den man kann bloss FORTRAN
und hat einen alten Lochkarten-Stanzer.
Selbst dann sollte man aber den semantischen Unterschied kennen ...

Ausserdem w"are

phi[param_List]:=Module[{p1,p2,p3,p4},
                    {p1,p2,p3,p3}=param;
                    p1 + (1 + p4)*(Cos[p3] Cos[p2])
                   ]

viel leichter zu lesen, weil f"ur n<4 phi[] eh nicht funktioniert
von

phi[p1_,p2_,p3_,p4_]:=p1 + (1 + p4)*(Cos[p3] Cos[p2])
phi[param_List] /; Length[param]===4 :=phi @@ param

mal ganz zu schweigen.

Gruss
  Jens



Dirk Eling wrote:
> 
> Guten Tag allerseits,
> 
> ich versuche Funktionen zu definieren, die von n Parametern abhängen,
> wobei n die Anzahl von Elementem einer Liste beschreibt. Wende ich die
> Funktion auf einen allgemein definierten Array an, liefert Mathematica
> das gewünschte Ergebnis. Wende ich die Funktion hingegen auf eine Liste
> von Zahlen an, nicht (siehe angehängtes notebook). Kann mir vielleicht
> jemand den richtigen Hinweis geben?
> 
> Vielen Dank schon mal.
> gruss
> dirk
> 
>   ------------------------------------------------------------------------
>                    Name: parameter.nb
>    parameter.nb    Type: application/mathematica
>                Encoding: base64


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

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