Iteration in Maple < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:53 Mo 20.10.2008 | Autor: | kessyde |
Aufgabe | restart:
Borquin:=proc(n)
local sk,ak,k,s0,a0;
s0:= 5*(sqrt(5)-2);
a0:= 0.5;
x = (5/sk)-1;
y = [mm] ((x-1)^2)+7;
[/mm]
z = [mm] (0.5*x*(y+sqrt(y^2-4*x^3)))^{1/5};
[/mm]
for k from 0 to n do;
sk+1= [mm] 25/((sk)*((z+(x/z)+1)^2));
[/mm]
[mm] ak+1=((sk)^2)*(ak)-(5^k)*((((sk)^2-5)/2 [/mm] )+ [mm] sqrt((sk)*(((sk)^2)-2*(sk)+5)));
[/mm]
end do;
end proc;
Borquin(0);
Borquin(1);
|
ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Ich hab ein kleines Problem mit Maple. Irgendwie berechnet er mir meine Iterierten nicht und ich versteh nicht so ganz warum. Vielleicht kann mir jemand helfen, den Fehler zu finden, danke.
|
|
|
|
Hallo,
der erste Fehler ist: Die Zuweisung muss immer mit := erfolgen. Dann verwendest du s0, sk und sk+1 auf eine Weise, die in Maple aber nicht vorgesehen ist. Versuch es mal damit:
Borquin:=proc(n)
local sk,ak,k,skp1,akp1,x,y,z;
sk:= 5*(sqrt(5)-2);
ak:= 0.5;
x := (5/sk)-1;
y := ((x-1)^2)+7;
z := (0.5*x*(y+sqrt(y^2-4*x^3)))^(1/5);
for k from 0 to n do;
skp1 := 25/((sk)*((z+(x/z)+1)^2));
akp1 :=((sk)^2)*(ak)-(5^k)*((((sk)^2-5)/2 )+ sqrt((sk)*(((sk)^2)-2*(sk)+5)));
sk := skp1; ak := akp1;
end do;
end proc;
Natürlich musst du dir überlegen, was von der Rechnung am Ende zurückgegeben werden soll.
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 12:22 Mo 20.10.2008 | Autor: | kessyde |
Aufgabe | restart:
Digits:=40;
AGMabg:=proc(n)
local ak, bk, pk, k, akp1, bkp1, pkp1;
ak:= sqrt(2);
bk:= 0;
pk:= 2+sqrt(2);
for k from 0 to n do;
akp1:=0.5*(sqrt(ak)+1/sqrt(ak));
bkp1:=sqrt(ak)*((bk+1)/(bk+ak));
pkp1:=(pk)*(bk)*((1+ak)/(1+bk));
ak := akp1;
bk := bkp1;
pk := pkp1;
end do;
end proc;
AGMabg(0);
AGMabg(10);
|
Erst mal danke, für die Antwort, es funktioniert super!
Aber beim zweiten (hab ihn hier abgetippt) funktioniert das ganze ja nicht, da er bk jetzt immer null setzt, versteh ich das richtig? Leider kenn ich maple nicht wirklich.
danke
|
|
|
|
|
Hallo,
das Problem ist, dass pk immer auf 0 gesetzt wird, denn pkp1 ergibt sich als Produkt von pk, bk und einem Rest. Da bk zu Beginn 0 ist, ist auch das erste pk 0. Die pk in den folgenden Druchläufen sind dann natürlich auch 0.
Ich weiß nicht, ob dir klar ist, dass der Wert, den die Funktion zurückgibt, das pk ist, weil es die letzte Zuweisung vor dem Verlassen der Funktion ist.
Gruß
Martin
|
|
|
|