DMUG-Archiv 2003

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

Re: Re:_Sums,_Products:_Einfügen_weiterer_Underscripts

> Gebe ich per Copy & Paste untiges ein,
> bekomme ich Fehlermeldungen "SetDelayed: "Tag Factor in (Factor[x_, 
> {i_}]) is Protected."" (benutze Mathematica 4.2 auf Mac OS X-> könnte zu
> unterschiedlichen Ascii Ausgaben führen). Die Schreibweise habe ich zwar
> schonmal gesehen, bringe sie aber mit der Mathematica Programmierung in
> Verbindung, was auch falsch sein kann, 

Groß-/Kleinschreibung ist in Mma wichtig.
Ich habe factor nicht umsonst mit kleinem f geschrieben.

> einfacher ist es vielleicht, wenn
> Du mir dein entsprechendes Mathematica Notebook zugänglich machen 
> könntest

Notebook kann ich Dir keins schicken, weil ich nie eins benutze
(arbeite praktisch ausschließlich im Kernel).  Ein einfacher
Cut-&-Paste aus der Shell tut's bei mir.

> > factor[x_, {i_}] := (x - #)/(X[[i]] - #) &
> > 
> > p[x_] := Plus@@ MapIndexed[ #1 Times@@ factor[x, #2]/@ Drop[X, #2] &, Y ]

> deswegen verstehe ich nicht ganz, wie ich Deine Lösung lesen
> soll bzw. weiterverarbeiten kann... 

factor ist natürlich der innerste Faktor, (x - xk)/(xi - xk).
Man hätte die Definition auch als

factor[x_, {i_}][xk_] := (x - xk)/(X[[i]] - xk)

schreiben können.

Dieses factor wird nun auf die Liste X angewandt, aus der das i-te
Element entfernt ist (Drop[X, #2]).  Das Ergebnis ist die Liste der
Terme im Produkt, darauf Times angewandt gibt das Produkt.

Außen wird mit MapIndexed die Liste der Terme der Summe zusammengebaut.
MapIndexed funktioniert wie Map, gibt jedoch als zweites Argument die
Position mit, d.h. #1 = y_i, #2 = {i}.  Auf diese Weise habe ich f_i,
den i-ten Funktionswert, und weiß gleichzeitig, welches Element ich aus
X entfernen muß.

Gruß,

Thomas Hahn


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

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