|
Rego |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.01.2011, 22:28
Titel: Romberg Quadratur
|
 |
|
 |
|
Hallo, ich bin gerade dabei ein Programm für die Romberg Quadratur zu schreiben und habe mehrere Probleme.
Das Programm ist noch nicht fertig, deswegen seid bitte nicht so kritisch mit mir.
Ich weis es gibt in diesem Forum ein paar Programme zu diesem Thema, ich will aber mein eigenes Programm schreiben damit ich es auch verstehe was da gemacht wird.
Eigentlich soll das Programm das ich bis jetzt geschrieben habe nur die Werte für die Spalte 1 ausgeben und diese werden nach der Trapezregel berechnet.
Für Reihe 1:
T(i) = (b-a)/2 * (f(a) + f(b))
für alle anderen Reihen:
T(i) = (0.5 *(f(a) + f(b)) + sum(f(a+j*h))) * h;
bedeutet die hälfte des ersten und des letzten Funktionsstelle + Summe aller Funktionsstellen dazwischen multipliziert mit der Schrittweite h
h = (a-b)/(2^(i-1)-1)
wobei j so defeniert wird
j = 2^(i-1)-1;
Mein erstes Problem ist die Werte stimmen einfach nicht und das Nächste ist die weiteren Berechnungen werden nicht in die Reihen sondern in die Spalten eingetragen.
Wenn ich für j und h in der Zeile 18 die richtigen Werte eingebe also 1 bekomme ich das richtige Ergebnis von 0,708333333
Kann mir bitte einer sagen wo der Fehler liegt?
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.01.2011, 13:24
Titel:
|
 |
Hallo,
bei Matrizen sollte immer Zeilen-Spalten-Indizierung verwendet werden.
T(i, j) spricht das Element in der i-ten Zeile und j-ten Spalte an.
Das dürfte schon mal einige Probleme lösen.
Grüße,
Harald
|
|
|
Rego |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.01.2011, 23:50
Titel:
|
 |
Danke schön ich werde es gleich ausprobieren.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.01.2011, 23:34
Titel:
|
 |
Hi ich habe mein Programm jetzt ein bischen umgeschrieben habe aber immer noch ein problem. In der ersten for Schleife habe ich ein sum einprogramiert, das Problem ist, das ich eine Fehlermeldung bekomme. Wenn ich sum entferne wird das Programm ausgeführt.
Wo könnte denn das Problem den liegen?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 26.01.2011, 04:39
Titel:
|
 |
Hallo Anonymous,
Zitat: |
In der ersten for Schleife habe ich ein sum einprogramiert, das Problem ist, das ich eine Fehlermeldung bekomme. |
Da die Fehlermeldungen von Matlab fast ausnahmslos hilfreich sind, wäre es gut, wenn Du sie auch posten würdest.
Gruß, Jan
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.01.2011, 12:03
Titel:
|
 |
Hallo,
einen Vorschlag schon mal:
Ersetze T = zeros(n*n); durch T = zeros(n,n);
Bei mir läuft der von dir gepostete Code durch, die Fehlermeldung wäre also wirklich wichtig.
Weiterer Vorschlag wären wie gesagt function handles statt inline.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
rego |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2011, 21:54
Titel:
|
 |
ich habe mich mit meinem Prof. unterhalten und er meinte es liegt daran das ich eine laufende variable in meinem sum verwende. ich bin gerade dabei es irgendwie hinzubekommen mein sum anders zu programmieren.
Es ist der folgende Fehler:
Error in ==> Romb at 19
T(i)=0.5 * T(i-1) + h * sum(f(a +(2*(i-1)-1) * h));
Vielen Dank für die rasche Antwort
MfG Rego
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.01.2011, 22:20
Titel:
|
 |
Hallo,
ich gehe nahezu jede Wette ein, dass das nicht das einzige ist, was da rot im Command Window steht. Was du postest, ist, in welcher Zeile die Fehlermeldung auftritt. Was aber mindestens ebenso relevant ist, ist die tatsächliche Fehlermeldung.
Insbesondere, weil dein Code bei mir fehlerfrei durchläuft. Aber das sagte ich schon, oder?
Und: was heißt "irgendwie anders"?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
rego |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2011, 23:18
Titel:
|
 |
Hi du sagst das mein Code bei dir gelaufen ist, ich habe so wie du es mir vorgeschlagen hast den zeros auf (n,n) geändert und trotzdem hatte ich eine Fehlermeldung.
Durch die neuberechnung der Stützstellen und Stützwerte habe ich hinbekommen das ich richtige Ergebnisse bekomme. Den Tip habe ich von meinem Prof. in der Vorlesung bekommen.
Ich habe jetzt meinen Code geändert und der schaut jetzt so aus:
Habe aber gerade gemerkt das mein Abbruchkriterium nicht funktioniert. Dieses geht nur für die erste Spalte. Werde noch gucken ob ich da was machen kann. Es fällt mir aber gerade nichts ein, wenn du einen Tip hast, wäre ich sehr dankbar.
MfG
Rego[/code]
|
|
|
|
|
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.
|
|