|
|
Einfaches Programm zur Trapezregel |
|
opaschlumpf |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 30.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 16:04
Titel: Einfaches Programm zur Trapezregel
|
 |
|
 |
|
Einen wunderschönen guten Tag,
ich hoffe ich bin hier nicht fehl am Platz und es kann mir geholfen werden.
Ich bin Mathematik Student im dritten Semester und habe Numerik I im Moment, leider Gottes aber noch nie ansatzweise irgendwelche Sachen programmiert. Den ersten Übungszettel haben wir schon kläglich aufgegeben, doch ich bleibe am Ball und versuche noch meine Studienleistung zu bekommen.
Ich habe das Forum schon durchsucht, aber ich glaube, dass das hier zu einfach für euch alle ist, sodass es nicht im Forum steht, wenn doch, bitte ich um einen Link, danke
Zu meinem eigentlichen Problem:
Hier die exakte Aufgabenstellung:
In dieser Aufgabe sollen Integrale der Form Integral(a bis b) f(x) dx numerisch berechnet werden.
(a) Implementieren Sie für eine beliebig gegebene Zerlegung zerl mit Knotenpunkten a=x_0 < x_1 < x_2 < ... < x_(n-1) < x_n = b und eine beliebige Funktion f
(i) die summierte Trapez-Regel
(ii) die summierte Simpson - Regel
Es handelt sich also um Quadraturformeln
ich habe auch schon einen Ansatz, aber da ich noch nie programmiert habe, bitte ich um Verständnis
mein m-File heißt trapez.m mit:
Ich bitte um baldige und exakte Hilfe.
Ich möchte mich wirklich mit diesem Thema mehr auseinandersetzen, aber mir fehlt einfach das know-how.
Ich habe schon viele Tutorials durchgeschaut, aber gebracht hat es wohl alles nichts :/
Vielen Dank
Mit freundlichen Grüßen
opaschlumpf
edit by denny: Bitte die Codeumgebung verwenden. Danke!
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 16:30
Titel:
|
 |
|
|
DerBesteMensch |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 03.07.11
|
 |
|
 |
Wohnort: Lummerland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 16:42
Titel:
|
 |
Hallo opaschlumpf,
Dieser Teil
macht mMn keinen Sinn. Zunächst einmal ist die Trapezformel an sich falsch, da die Summe der Funktionswerte und nicht deren Differenz betrachtet wird. Entweder willst du in tra die fertig aufsummierte Fläche zurückgeben; in diesem Fall verwende Folgendes
Hier wird in jedem Schritt die jeweilige Trapezfläche zum bisherigen Wert von tra dazuaddiert. Am Ende bekommst du in tra also einen Näherungswert für das gesuchte Integral.
Falls du hingegen tra als Vektor zurückgeben willst, der die einzelnen Trapezflächen unaufsummiert zurückgibt, so verwende:
In beiden Fällen kann das h jedoch nicht vor der Schleife einmal ausgerechnet werden (was soll das i außerhalb der Schleife denn bedeuten?) sondern muss in der Schleife bei jedem Durchlauf neu berechnet werden, da die Intervalllänge natürlich jedesmal ändern kann.
Viele Grüße
DerBesteMensch
|
|
|
hwilmsmeyer |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 07.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 16:47
Titel:
|
 |
Hallo opaschlumpf,
es kann sein, dass ich Dich total falsch verstehe.
Meinst Du mit a(i) das: ?
_________________
Freundliche Grüße,
Hannes Wilmsmeyer
|
|
|
opaschlumpf |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 30.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 21:04
Titel:
|
 |
Vielen vielen Dank für die schnelle Hilfe
Habe es jetzt auf dieses hier reduziert:
doch gebe ich nun z.B. "trapez([0:1],cos(x))"
dann kommt folgendes zurück:
vorher wird auf das verzeichnis von dem m-File trapez.m verwiesen.
wenn ich zB zerl(i) schreibe, meine ich den i-ten Eintrag des Vektors zerl
Was tun?
PS: Ich benutze Octave, aber das sollte ja eigentlich kein Problem darstellen.
|
|
|
joker811 |

Forum-Anfänger
|
 |
Beiträge: 30
|
 |
|
 |
Anmeldedatum: 29.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 21:42
Titel:
|
 |
tra = tra + h/2*(y(i-1))-y(i))
------------------------- ^
diese zeile enthält einen klammerfehler
ich weiß jedoch nicht wie octave sowas darstellt
es müsste heißen
tra = tra + h/2*(y(i-1)-y(i))
------------------------^
ohne das ich den rest überprüft habe....
ggf gibt es noch weitere fehler
|
|
|
DerBesteMensch |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 03.07.11
|
 |
|
 |
Wohnort: Lummerland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 22:30
Titel:
|
 |
Hallo opaschlumpf,
Abgesehen von dem Klammerfehler ist deine Trapezformel (siehe mein erster Beitrag) immer noch falsch. Das was du damit ausrechnest wird wenig mit dem tatsächlichen Wert des Integrals zu tun haben.
Des Weiteren kannst du deine trapez-Funktion auf die Art, wie du es gemacht hast, nicht aufrufen. Verwende statt dessen
trapez([0:1],@(x)cos(x))
Der geklammerte Buchstabe hinter dem @ gibt die Variable deiner Funktion an, direkt im Anschluss kannst du dann die Funktion selbst hinschreiben.
Das Integral im Intervall [0,1] durch ein ein einziges Trapez zu approximieren, wie in deinem Aufruf ist schon recht "grob". Verwende für eine gute Näherung am besten mehrere Knoten.
[0:0.01:1] zB zerlegt dir das Intervall [0,1] in 100 äquidistante Intervalle, und es werden die Flächeninhalte von 100 Trapezen aufsummiert, was eine sehr viel genauere Näherung darstellt.
Viele Grüße
DerBesteMensch
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 01.12.2011, 09:30
Titel:
|
 |
is schon lustig das hir jede woche die hausaufgaben von nummerik der tu berlin kommen ^^ und das mit dem anonymen @(x) cos(x) deswegen hatte ich oben den link gepostet
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 01.12.2011, 10:50
Titel:
|
 |
Hallo Winkow, hallo opaschlumpf,
Mich hat es mehr an die Uni Hannover erinnert.
@opaschlumpf: Im Gegensatz zu vielen anderen Leuten, die hier Fragen zu ihren Hausaufgaben posten, legst Du die Karten offen auf den Tisch. Das bringt Dir zwar nicht unbedingt "baldige und exakte Hilfe", aber zumindest Anerkennung.
Gruß, Jan
|
|
|
opaschlumpf |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 30.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2011, 17:18
Titel: Danke
|
 |
Vielen vielen Dank für eure Antworten,
ich habe jetzt die Trapez und Simpson Regel soweit hinbekommen, wobei wir noch ein wenig mehr editieren mussten, aber das sei so hingestellt.
Ich komme von der Leibniz Uni Hannover ja, das Problem ist nur, dass ich noch nie programmiert habe und unsere Einleitung in Matlab eher gar nicht geholfen hat bei den Problemstellungen, die wir jetzt in den Übungszetteln an den Kopf geworfen kriegen, also seid mir nicht böse, wenn ich hier dumme oder einfache Fragen stelle.
Vielen Dank nochmal
Mfg opaschlumpf
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|