Wie gebe ich das bei WolframAlpha richtig ein?

...komplette Frage anzeigen

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Bei diesem Beispiel ist die Reihenfolge unproblematisch: einfach

sum (300 * (1+3/100) ^ k) ,k=1...20

Bei rekursiven Funktionen mit nichtlinearem Anteil ist die Reihenfolge aber wichtig, und da sollte man sich schon daran gewöhnen, die Laufvariable 

(beim Iterationsrechner Index i; wichtig ab i=0, da Anzeige mit Zeile 0)

immer vorwärts mit Schrittweite (STEP) 1

und die gewünschte Schrittweite und Richtung als Formel mit in die Gesamtformel:

sum (300 * (1+3/100) ^(21-k)) ,k=1...20

Ein Variablenfeld (Array) beginnt normalerweise immer bei 0, also:

sum (300 * (1+3/100) ^(20-k)) ,k=0...19

und so kann man Summen, Produkte, Iterationen auch besser 

- vergleichen

- verbinden 

- konvertieren (z.B. in Integrale)

Selbst beim superschnellen PureBasic (echter 64 Bit Compiler) beginnen die Arrays bei 0 analog zu allen schnellen Sprachen.

Warum bei WolframAlpha & Iterationsrechner 0 herauskommt:

weil Abbruchbedingung schon erfüllt

until Laufvariable >=EndeKonstante

Recht herzlichen Dank für deine ausführliche Antwort !

Und das rafft WolframAlpha sogar ;-)) !

0

sum 300 * 1 3/100 ^ k with k from 20 down to 1

liefert ein anderes Ergebnis.

Wenn du dir das Summenzeichen bei der Eingabeinterpretation ansiehst, siehst du, dass dort unten k=20 und oben k=1 steht.

Offensichtlich interpretiert WolframAlphas Mathematica das wie eine Schleife beim Programmieren, wenn es aus dem Web kommt. Und da für k = 20 k schon größer als 1 ist, wird die Summe sofort verlassen.

(Ich würde ja erwarten, dass

sum for k from 20 to 1 of ...

dasselbe ergibt wie

-sum for k from 2 to 19 of ...

 - dies gibt die konsistentesten Ergebnisse für Summen von Summen.)

Ich hab die Summengrenzen mal an den Anfang gestellt und vertauscht:

sum for k from 1 to 20 of ...

 Von welchem Ausdruck du nun die Summe berechnen willst, musst du selbst wissen und die Klammern entsprechend setzen.

Recht herzlichen Dank für deine Antwort !

1

Hallo,

Du hast die größere Zahl für k vor der kleineren genannt. Du mußt das Ganze für k=1 bis 20 eingeben, nicht von 20 bis 1.

Wenn Du die Aufgabe mit den Zinsen beantworten möchtest, gehe ich davon aus, daß sich der Zinssatz auf ein ganzes Jahr, nicht auf einen Monat bezieht. Dann müßte die Summe lauten: k=1 bis 20 für 300*1,0025^k.

Herzliche Grüße,

Willy


Recht herzlichen Dank für deine Antwort Willy !

Genau das hatte ich ursprünglich vor, aber ich werde diese Frage jetzt nicht mehr beantworten.

Ist es verboten Summen von einer größeren Zahl zu einer niedrigen Zahl laufen zu lassen ?

2
@DepravedGirl

Ja, das geht nicht. Wenn Du das bei einem Taschenrechner versuchst, bekommst Du eine Fehlermeldung. Der Index läuft immer von der kleineren bis zur größeren Zahl. Für die Rechnung macht es wegen des Kommutativgesetzes ohnehin keinen Unterschied, ob Du mit den höheren oder mit den niedrigeren Summanden beginnst.

Liebe Grüße,

Willy

1
@Willy1729

Vielen Dank für deine Info !

Ich bin wohl zu viele Programmiersprachen gewöhnt, wo dies möglich ist.

Ich wusste nicht, dass dies mathematisch gesehen pfui ist ;-))

2

Was möchtest Du wissen?