summierte Trapezformel < Maxima < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Berechnen Sie [mm] I=\integral_{0}^{2} (\sinh x)^2\, [/mm] dx näherungsweise mit der verallgemeinerten Trapezregel bei fortgesetzter Halbierung der Teilintervalle. Die Berechnung ist abzubrechen, sobald zwei aufeinanderfolgende Näherungen sich um weniger als [mm] \epsilon=10^{-3} [/mm] |
Ich möchte die mit Maxima berechnen, doch irgendwie funktioniert das nicht. Ich hab das mal für n=3 eingegeben. So habe ich das eingegeben und das schmeißt er mir raus:
(%i95) n:3;
(%o95) 3
(%i96) h:2/n;
(%o96) 2/3
(%i97) [mm] f(x):=sin(x)^2;
[/mm]
(%o97) [mm] f(x):=sin(x)^2
[/mm]
(%i98) I(i):=sum((f(0+i*h)),i,1,n-1);
(%o98) [mm] I(i):=\sum_{i=1}^{n-1}f(0+i*h)
[/mm]
(%i99) (h/2)*(f(0)+2*(I(i))+f(2));
(%o99) [mm] (sin(2)^2+2*(sin(4/3)^2+sin(2/3)^2))/3
[/mm]
Wo liegt mein Fehler, dass er mir kein Ergebnis rauswirft. Ich muss dazu sagen, dass ich nichts weiter programmiert habe, nur was ich auch hier aufgeführt habe. Und ist das so richtig, denn mir schein es fehlt das fortschreitende, denn so wie ich es hier eingegeben habe, muss ich jedes einzelne "n" neu eingeben.
Danke
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:37 Fr 23.10.2009 | Autor: | rainerS |
Hallo!
> Berechnen Sie [mm]I=\integral_{0}^{2} (\sinh x)^2\,[/mm] dx
> näherungsweise mit der verallgemeinerten Trapezregel bei
> fortgesetzter Halbierung der Teilintervalle. Die Berechnung
> ist abzubrechen, sobald zwei aufeinanderfolgende
> Näherungen sich um weniger als [mm]\epsilon=10^{-3}[/mm]
> Ich möchte die mit Maxima berechnen, doch irgendwie
> funktioniert das nicht. Ich hab das mal für n=3
> eingegeben. So habe ich das eingegeben und das schmeißt er
> mir raus:
>
> (%i95) n:3;
> (%o95) 3
>
> (%i96) h:2/n;
> (%o96) 2/3
>
> (%i97) [mm]f(x):=sin(x)^2;[/mm]
> (%o97) [mm]f(x):=sin(x)^2[/mm]
Sollte das nicht der Hyperbelsinus sein?
>
> (%i98) I(i):=sum((f(0+i*h)),i,1,n-1);
> (%o98) [mm]I(i):=\sum_{i=1}^{n-1}f(0+i*h)[/mm]
>
> (%i99) (h/2)*(f(0)+2*(I(i))+f(2));
> (%o99) [mm](sin(2)^2+2*(sin(4/3)^2+sin(2/3)^2))/3[/mm]
>
> Wo liegt mein Fehler, dass er mir kein Ergebnis rauswirft.
Was meinst du? Möchtest du eine Zahl? Dann musst du das auch sagen:
[code](h/2)*(f(0)+2*(I(i))+f(2)),numer;
> Ich muss dazu sagen, dass ich nichts weiter programmiert
> habe, nur was ich auch hier aufgeführt habe. Und ist das
> so richtig, denn mir schein es fehlt das fortschreitende,
> denn so wie ich es hier eingegeben habe, muss ich jedes
> einzelne "n" neu eingeben.
Schreibe eine Schleife, zum Beispiel;
for n:3 next 2*n while (bedingung) do ...
In die Bedingung schreibst du deine Abbruchbedingung, also dass sich zwei aufeinanderfolgende Näherungen um nicht mehr als [mm]\epsilon=10^{-3}[/mm] unterscheiden:
f(x) := sinh(x)^2;
eps:1 ;
last : 0 ;
I(n) := sum((f(0+i*h)),i,1,n-1);
for n:3 next 2*n while (eps >10^(-3)) do block(local(numer),numer:true,h:2/n, ergebnis :(h/2)*(f(0)+2*(I(n))+f(2)), eps:abs(ergebnis-last),last:ergebnis),numer;
print("Ergebnis ist ",ergebnis);
Viele Grüße
Rainer
|
|
|
|
|
danke für die Hilfe.
natürlich soll es eine Hyperbelfunktion sein, hab mich vertippt.
Hab aber noch eine Frage: Kann man sich auch die zwischenschritte anzeigen lassen?
Danke
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:21 So 25.10.2009 | Autor: | rainerS |
Hallo!
> danke für die Hilfe.
>
> natürlich soll es eine Hyperbelfunktion sein, hab mich
> vertippt.
>
> Hab aber noch eine Frage: Kann man sich auch die
> zwischenschritte anzeigen lassen?
Dann füge doch eine print-Anweisung in den Block ein.
Viele Grüße
Rainer
|
|
|
|
|
Und wie mach ich das, hab das noch nie gebraucht, muss es aber für die Hausaufgaben so machen.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:44 So 25.10.2009 | Autor: | rainerS |
Hallo!
> Und wie mach ich das, hab das noch nie gebraucht, muss es
> aber für die Hausaufgaben so machen.
Hast du dir das Programm mal angeschaut: du musst ein "print(ergebnis)" zusätzlich in den Block schreiben, am besten direkt nachdem ergebnis ausgerechnet wurde (bevor eps ausgerechnet wird).
Viele Grüße
Rainer
|
|
|
|
|
Danke für deine Hilfe.
Ich nutze das Programm erst seit ein paar Tagen, da ich es dieses Semester für den Numerik Kurs brauche, deswegen hab ich mich da noch nicht richtig eingearbeitet, aber ich muss am Montag schon meine ersten Aufgaben abgeben.
Wir haben nur eine Einführung in Maple bekommen, aber das ist mir im Moment zu teuer. Maxima ist da ja in einigen Punkten doch ein wenig anders.
LG Anne
|
|
|
|