Allgem. Prozedur mit Feldern < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 22:10 Do 30.10.2008 | Autor: | ElBarto |
Aufgabe | Für das nachfolgende Differentialgleichungssystem ist die allgemeine sowie die spezielle Lösung näherungsweise mit Hilfe des Euler-Verfahren zu bestimmen. Es sind allgemine Prozeduren zu erstellen. |
Hallo,
ich habe jetzt eine Prozedur erstellt, die auch richtig sein sollte. Allerdings ist sie leider nicht allgemein gültig. Es ist halt gefordert, dass man beliebige Gleichungen vorgeben kann und an der Prozedur nichts ändern muss und trotzdem eine Lösung rauskommt.
Irgendwie soll das wohl mit Feldern funktionieren, aber irgendwie finde ich keine Lösung wie man die Prozedur umschreiben kann, dass sie auch allgemein gültig ist. Vielleicht kann mir ja wer von euch helfen?!
Hier meine Prozedur:
Euler:=proc(f1,f2,f3,f4,f5,f6,y10,y20,y30,y40,y50,y60,x00,xe,h,auswahl,ausgabe)
local a0,b0,c0,e0,x0,y0,x,y1,y2,y3,y4,y5,y6,i,p:
x:=x00: y1:=y10: y2:=y20: y3:=y30: y4:=y40: y5:=y50: y6:=y60: i:=0:
if ausgabe=1 then printf("x=%f y1=%f y2=%f y3=%f y4=%f y5=%f y6=%f [mm] \n",x,y1,y2,y3,y4,y5,y6): [/mm] end if:
if auswahl=1 then p[i]:=[x,y1]: end if:
if auswahl=2 then p[i]:=[x,y2]: end if:
if auswahl=3 then p[i]:=[x,y3]: end if:
if auswahl=4 then p[i]:=[x,y4]: end if:
if auswahl=5 then p[i]:=[x,y5]: end if:
if auswahl=6 then p[i]:=[x,y6]: end if:
while (xe-x)>h do
a0:=h*f1(x,y1,y2,y3,y4,y5,y6):
b0:=h*f2(x,y1,y2,y3,y4,y5,y6):
c0:=h*f3(x,y1,y2,y3,y4,y5,y6):
e0:=h*f4(x,y1,y2,y3,y4,y5,y6):
x0:=h*f5(x,y1,y2,y3,y4,y5,y6):
y0:=h*f6(x,y1,y2,y3,y4,y5,y6):
x:=x+h: i:=i+1:
y1:=y1+a0:
y2:=y2+b0:
y3:=y3+c0:
y4:=y4+e0:
y5:=y5+x0:
y6:=y6+y0:
if ausgabe=1 then printf("x=%f y1=%f y2=%f y3=%f y4=%f y5=%f y6=%f [mm] \n",x,y1,y2,y3,y4,y5,y6): [/mm] end if:
if auswahl=1 then p[i]:=[x,y1]: end if:
if auswahl=2 then p[i]:=[x,y2]: end if:
if auswahl=3 then p[i]:=[x,y3]: end if:
if auswahl=4 then p[i]:=[x,y4]: end if:
if auswahl=5 then p[i]:=[x,y5]: end if:
if auswahl=6 then p[i]:=[x,y6]: end if:
end do:
return(convert(p,list)):
end proc:
Alle Argumente der Prozedur sind natürlich gegeben und die Gleichungen f1 bis f6 habe ich vorher definiert.
Vielen Dank schon einmal für eure Mühen.
MfG Simon.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:20 Fr 07.11.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|