block Befehl in Programm Maxima |
21.05.2012, 19:08 | DieKleinste | Auf diesen Beitrag antworten » | ||||||||||
block Befehl in Programm Maxima ich hab ein kleines Programmierungsproblem und komm einfach nicht drauf. Ich muss einen Vortrag über das Programm Maxima machen und dazu den block-Befehl zeigen. Jetzt dachte ich mir, dass das mit dem Newton-Verfahren sehr schön wäre. Aber jetzt bekomme ich dauernd eine Fehlermeldung und weiß nicht warum. Laut Hilfe hab ich alles richtig eingegeben. Ich schreib jetzt mal was ich gemacht hab, vielleicht kann mir jemand helfen, das wär echt super! f(x)=x^4-2*x^3+3*x-7; f1(x)=diff(f(x),x); xn:1$ newton(n):=block(for i:1 thru n do xn:xn-f(xn)/f1(xn),return(xn)); newton(5); normal müsste das so passen, die ersten zwei Funktionen spukt er mir auch brav aus, doch nach dem block kommt die Meldung: (%o53) newton(n):=block(for i thru n do xn:xn-f(xn)/f1(xn),return(xn)) diff: second argument must be a variable; found 1 #0: f1(x=1) #1: newton(n=5) -- an error. To debug this try: debugmode(true); Vielen lieben Dank bis dahin |
||||||||||||
02.06.2012, 12:34 | hawe | Auf diesen Beitrag antworten » | ||||||||||
Hallo, erstmal guckst Du http://www.lemitec.de/maxima.html Dann Funktionszuweisungen haben einen Doppelpunkt f(x):=x^4-2*x^3+3*x-7 zur Vermeidung von Simplifikationsproblemen (zu welchem Zeitpunkt wird die Funktion ausgewertet) verwendest Du grundsätzlich besser define, also define(f(x),x^4-2*x^3+3*x-7); Für diesen Anwendungsfall würde ich aber alles in dem Newton-Block reinpacken, also etwa
besser wäre eine Schleifenterminierung für die gewüschte Genauigkeit und Startwert, etwa
|
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
|
Die Neuesten » |
|