Maple Problem: Prozeduren in einer Schleife erzeugen |
14.12.2012, 21:10 | Vanessa_hdr | Auf diesen Beitrag antworten » | |||||
Maple Problem: Prozeduren in einer Schleife erzeugen Hallo, Ich habe mein Programm mal auf ein kleineres heruntergebrochen, das mein Problem aber schon vollständig beschreibt. Ich möchte in meinem Maple Programm rekursive Prozeduren x1, x2, x3 erzeugen. Maple schafft es aber nicht die Rekursion auszuwerten. Das liegt wohl an der Laufvariablen j... Meine Ideen: Test:=[x1,x2,x3]; for j from 1 to nops(Test) do Test[j]:=proc(i::nonnegint) local j,k; if i=0 then return a0; elif i=1 then return a1; else return Test[j](i-1)+Test[j](i-2); end if; end proc: end do; Bei Test[1](3); kommt: Test[j](2) + Test[j](1) als Ausgabe. Kann mir jemand helfen? Ich wäre sehr dankebar für irgendwelche Ideen! Liebe Grüße, Vanessa |
|||||||
14.12.2012, 21:49 | Mystic | Auf diesen Beitrag antworten » | |||||
RE: Maple Problem: Prozeduren in einer Schleife erzeugen
Was ja auch vollkommen korrekt ist, denn j hat ja im Programm nirgendwo vorher einen Wert erhalten... |
|||||||
15.12.2012, 08:26 | Vanessa_hdr | Auf diesen Beitrag antworten » | |||||
j ist doch die Laufvariable, also hat sie doch zum Beispiel im ersten Durchlauf den Wert 1 erhalten oder nicht? |
|||||||
15.12.2012, 08:35 | Vanessa_hdr | Auf diesen Beitrag antworten » | |||||
Ah, ich hatte j fälschlicherweise zusätzlich als lokale Variable deklariert... Wenn ich das jetzt rausnehme, dann kommt als Ausgabe Error, (in Test[1]) invalid subscript selector |
|||||||
15.12.2012, 10:15 | Mystic | Auf diesen Beitrag antworten » | |||||
Kommt jetzt das heraus, was du wolltest? |
|||||||
15.12.2012, 11:46 | Vanessa_hdr | Auf diesen Beitrag antworten » | |||||
Vielen Dank für den Hinweis! Jetzt funktioniert das Programm, aber ich habe gemerkt, dass es doch nicht vollständig mein Problem erfasst hat. Ich habe es mal verändert zu:
Bei Test[1](1) kommt jetzt wieder Error, (in dummy) invalid subscript selector Das liegt, denke ich, wieder an der Laufvariablen j. Warum kann das Maple nicht?? |
|||||||
Anzeige | |||||||
|
|||||||
15.12.2012, 11:48 | Vanessa_hdr | Auf diesen Beitrag antworten » | |||||
statt Hilf(i-y) muss natürlich dummy(i-y) stehen! |
|||||||
15.12.2012, 13:34 | Mystic | Auf diesen Beitrag antworten » | |||||
Vielleicht kommen wir der Sache näher, wenn du mal sagen würdest, was denn eigentlich das zugrundeliegende Problem ist... |
|||||||
15.12.2012, 15:20 | Vanessa_hdr | Auf diesen Beitrag antworten » | |||||
Den Code, den ich heute Mittag gepostet habe, beschreibt mein eigentliches Problem. ich möchte Prozeduren in einer Schleife erzeugen, bei denen Variablen auftauchen, die von der Laufvariablen j abhängig sind, also zum Beispiel in Zeile 9 taucht "n[j]-1" auf. Ich hoffe, du verstehst, was ich meine. Ich verstehe nicht ganz, warum Maple da ein Problem hat... |
|||||||
15.12.2012, 20:53 | Vanessa_hdr | Auf diesen Beitrag antworten » | |||||
Wenn ich k:=n[j]; vorher setze und statt n[j] überall k einsetze, dann funktioniert es. Vielen Dank für die Hilfe! |
|||||||
16.12.2012, 08:56 | Mystic | Auf diesen Beitrag antworten » | |||||
Ganz blick ich leider immer noch nicht durch... Die Frage, die sich mir stellt ist, ob am Ende die Komponenten von Test nicht alle gleich sind, nämlich so wie die allerletzte in der Schleife definierte Prozedur dummy... Wenn ja, könnte man das vielleicht mit der Namensgebung cat(dummy,j) umgehen... |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|