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