Wie gebe ich das bei WolframAlpha richtig ein?

4 Antworten

Vom Beitragsersteller 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


DepravedGirl 
Beitragsersteller
 08.02.2016, 17:57

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.

Woher ich das weiß:Hobby – Hobby, Studium, gebe Nachhilfe

DepravedGirl 
Beitragsersteller
 08.02.2016, 16:38

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



DepravedGirl 
Beitragsersteller
 08.02.2016, 16:38

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
Willy1729  08.02.2016, 16:41
@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
DepravedGirl 
Beitragsersteller
 08.02.2016, 16:45
@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

Von 20 bis 1? Kein Wunder, dass dort die 0 rauskommt. Du müsstest schon sagen von 1 bis 20.

http://www.wolframalpha.com/input/?i=sum+(300+*+(1%2B3%2F100)+%5E+k)+with+k+from+1+to+20


DepravedGirl 
Beitragsersteller
 08.02.2016, 16:36

Vielen Dank für deine Antwort !

Ist es nicht erlaubt Summen von einer größeren Zahl zu einer niedrigeren laufen zu lassen ?, und falls es erlaubt ist, wie sage ich es WolframAlpha dann ?

0
poseidon42  08.02.2016, 16:43
@DepravedGirl

Es geht einfach nicht, bzw ist nicht zulässig. Du erhöhst ja in dem jedem Schritt die Zählvariable um 1, daher würde im es im Falle, dass deine "Abbruchbedingung" kleiner ist als dein "Startwert", nie zu dem Fall kommen, dass deine Zählvariable die Abbruchbedingung erfüllt. Das Summensymbol stehts ja symbolisch für folgende Handlung:

"Addiere solange den Ausdruck innerhalb der Summe, bei jedem Schritt mit um +1 erhöhter Zählvariable, solange wie gilt k <= Abbruchbedingung."

Damit ist im Falle Startwert > Abbruchbedingung die Bedingung zum Abbruch stets erfüllt und damit addierst du erst gar nicht und erhälst dadurch die 0.

1