Verfasst am: 09.10.2009, 00:52
Titel: iteratives integral loesen
ich mochte folgendes problem loesen:
h_0(x)=f(x);
h_n(x)=int(g(y)*h_(n-1)(y),y,0,x)
ich wuerde dafuer ne schleife vorschlagen. doch mein erstes problem ist die grenze 0 und x ist das im matlab moeglich. und wenn ich das dann haette muesste ich mein h_n(y)=h_n(x) parameter x auf y aendern. wuerde das irgendwie gehen?
Ob es funktioniert (und praktikabel ist), weiß ich natürlich nicht .
Titus
Klaus_Juergen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 10.10.2009, 01:31
Titel:
hab die funktionalität noch nicht getestet. das problem ist nur wenn ich jetzt h{i} per integral erhalte hab ich ne funktion in abhängigkeit von x. moechte aber beim nächsten durchlauf der schleife das x durch y ersetzt haben, da ich ja wieder über y integriere?
ja und nein: man bekommt eine Funktion, die von einem Parameter abhängig ist. Mit was für einem Parameter ich aufrufe, ist dann egal...
Titus
Klaus_Juergen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.10.2009, 11:33
Titel:
dann probier ich dat mal aus.
also du meinst wenn ich nu h{i-1}(y) schreibe ersetzt er mir die variable mit y und kann so auch über y integrieren.
danke
Klaus_Juergen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.10.2009, 12:10
Titel:
hab es jetzt wie folgt gelöst. hab aber noch probleme mit meinem K, da das ebenfalls von t abhängt!
Code:
a=1;
n=100;
W=5;
h = cell(1,n+1);
h{1} = @(t)1-exp(-a*t);
K = @(y,t)a*exp(-a*(t-y));
H = h{1}(W);
for i=2:n+1
h{i} = @(t)quad(@(y) K(y,t).*h{i-1}(y), 0, t);
H = H + h{i}(W);
end
Hallo,
warum ist das ein Problem, wenn K von t abhängt? Für jedes feste t kann quad die Integration über K mit dem zugehörigen festen t durchlaufen. Sieht so gut für mich aus ...
ich habe es mir angeschaut und mal laufen lassen. Leider fällt quad bei i=2 auf die Nase, weil die Funktionsauswertung in quad vektoriell ist. Ausweg: ich habe quad.m kopiert in myquad.m und an zwei Stellen
Funktioniert, allerdings wächst der Aufwand exponentiell (i=5 ging noch, danach verliess mich die Gedult). Wahrscheinlich muss man das Problem dann doch anders angehen (z.B. auf einem festen Gitter Werte berechnen, und dann mit trapz statt quad auf das nächste Level ziehen).
Ciao,
Titus
Klaus_Jürgen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 13.10.2009, 00:23
Titel:
was heisst feste gitterpunkte berechnen und dann trapez?
Klaus_Jürgen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 13.10.2009, 07:48
Titel:
sorry trapz.
habs nu mit myquad.m ausprobiert. funktioniert, aber leider benötige ich ein i von mind. 10. und das dauert ja bei 5 schon ewig.
ich meinte, die Funktion, anstatt als Funktion zu deklarieren (über @ etc), nur als Wertetabelle auf einem festen Bereich vorgeben. Und dann jeweils die Integration durch die trapz Funktion statt über quad zu machen.
Leider habe ich nicht die Zeit, das selber auszuprobieren, bin aber weiterhin gerne behilflich, wenn Du stecken bleibst ...
Titus
Klaus_Juergen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.10.2009, 02:53
Titel:
hab das nun mal versucht zu realisieren. komm aber noch auf keinen grünen zweit. bei der summe HH sollte ca. 5 erscheinen.
Hab leider immer noch das gleiche Problem! Hat vielleicht jemand ne idee wo der fehler liegt?
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
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.