WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

iteratives integral loesen

 

Klaus_Juergen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2009, 00:52     Titel: iteratives integral loesen
  Antworten mit Zitat      
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?

gruesse


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 09.10.2009, 11:07     Titel:
  Antworten mit Zitat      
Hallo,
wie wäre es mit folgendem:
Code:

h = cell(1,n+1);
h{1} = @f;
for i=2:n+1
  h{i} = @(x) quad(@(y) g(y).*h{i-1}(y), 0, x);
end
 


Ob es funktioniert (und praktikabel ist), weiß ich natürlich nicht Wink.
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Klaus_Juergen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2009, 01:31     Titel:
  Antworten mit Zitat      
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?

grüsse
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 12.10.2009, 10:07     Titel:
  Antworten mit Zitat      
Hallo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Klaus_Juergen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2009, 11:33     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 12.10.2009, 12:10     Titel:
  Antworten mit Zitat      
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
 


grüsse
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 12.10.2009, 15:20     Titel:
  Antworten mit Zitat      
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 ...

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 12.10.2009, 15:36     Titel:
  Antworten mit Zitat      
Hallo,

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
Code:
ersetzt durch
Code:
y = zeros(size(x));
for i=1:length(x)
y(i) = f(x(i), varargin{:});
end
 

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Klaus_Jürgen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2009, 00:23     Titel:
  Antworten mit Zitat      
was heisst feste gitterpunkte berechnen und dann trapez?
 
Klaus_Jürgen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2009, 07:48     Titel:
  Antworten mit Zitat      
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.

grüsse
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 13.10.2009, 11:03     Titel:
  Antworten mit Zitat      
Hallo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Klaus_Juergen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2009, 02:53     Titel:
  Antworten mit Zitat      
hab das nun mal versucht zu realisieren. komm aber noch auf keinen grünen zweit. bei der summe HH sollte ca. 5 erscheinen.

Code:

warning off all
a=1;
t=5;
T=0:0.1:t;
n=10;

y=0:0.1:t;
K = zeros(length(T),length(y));
h = 1-exp(-a*y);
for i=1:length(y)
    K(i,:) = a*exp(-a*(T(i)-y));
end
HH = 0;

Y = zeros(length(y),length(y));
for i=1:length(y)
    Y(i,:)=linspace(0,y(i),length(y));
end

% plot(y,h.*K)
for i=1:n
  HH = HH + h(end);
  plot(y,h)
  grid on;
  hold on;
  for i=1:length(y)
      h(i) = trapz(Y(i,:),h.*K(i,:));
  end
 
end
HH
 
Klaus_Juergen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.10.2009, 01:32     Titel:
  Antworten mit Zitat      
Hab leider immer noch das gleiche Problem! Hat vielleicht jemand ne idee wo der fehler liegt?
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.