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

impl. eulerverfahren

 

alexbmw320
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 18.01.10
Wohnort: kirn
Version: ---
     Beitrag Verfasst am: 18.01.2010, 19:23     Titel: impl. eulerverfahren
  Antworten mit Zitat      
also ich muss ein programm zum lösen von differentialgleichungen 1. ordnung mit hilfe des impl. eulerverfahren schreiben, hier einfach mal mein programm:
function [yerg]=impl(f,int,n,L,max,eps)

h=(int(2)-int(1))/n;
yk0(1)=int(1);

if nargin<3; eps=5E-6;max=25;L=0.9;n=100; end;
if nargin<4; eps=5E-6;max=25;L=0.9; end;
if nargin<5; eps=5E-6;max=25; end;
if nargin<6; eps=5E-6; end;


for i=0:n
x(i+1)=int(1)+i*(int(2)-int(1))/n;
%explizites Eulerverfahren zur Bestimmung des Startwertes
yk0(i+2)=yk0(i+1)+h*f(x(i+1),yk0(i+1));
end



for i=0:n;
for z=1:max;
%implizites Eulerverfahren gelöst mit sukzessiver Approximation
yk0(i+2,z)=Sukz(f,x(i+1),max,eps,L);

end
end
%Ergebnisvektor
yerg=yk0;%(:,end);

end
hoffe es kann mir jemand helfen. also wenn ich ein beispiel eingebe dann gibt er mir nur die erste spalte von der matrix.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.01.2010, 20:24     Titel:
  Antworten mit Zitat      
Hallo,

schau dir doch mal mit dem Debugger an, was passiert. Falls das nicht hilft:
- Wie sieht der Testaufruf auf?
- Wie sieht Sukz.m aus?

Die Abfrage mit den nargin kann übrigens vereinfacht werden:
Code:
if nargin<3; n=100; end;
if nargin<4; L=0.9; end;
if nargin<5; max=25; end;
if nargin<6; eps=5E-6; end;


Wenn beispielsweise nargin = 2 sind ja alle Bedingungen erfüllt, es wird also alles ausgeführt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
alexbmw320
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 18.01.10
Wohnort: kirn
Version: ---
     Beitrag Verfasst am: 18.01.2010, 21:49     Titel:
  Antworten mit Zitat      
hat keiner eine lösung???????
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
alexbmw320
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 18.01.10
Wohnort: kirn
Version: ---
     Beitrag Verfasst am: 19.01.2010, 14:17     Titel:
  Antworten mit Zitat      
also den starwert bekommen wir nur beim impl. eulerverfahren kommt NaN
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.01.2010, 14:56     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
hat keiner eine lösung???????

Gegenfrage: hast du meinen Post gelesen?

Zitat:
also den starwert bekommen wir nur beim impl. eulerverfahren kommt NaN


Bahnhof. Welcher Startwert denn?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
alexbmw320
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 18.01.10
Wohnort: kirn
Version: ---
     Beitrag Verfasst am: 19.01.2010, 20:05     Titel:
  Antworten mit Zitat      
damit bekomme ich den starwert:
for i=0:n
x(i+1)=int(1)+i*(int(2)-int(1))/n;
%explizites Eulerverfahren zur Bestimmung des Startwertes
yk0(i+2)=yk0(i+1)+h*f(x(i+1),yk0(i+1));
end
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.01.2010, 20:17     Titel:
  Antworten mit Zitat      
Hallo,

letzter Versuch:
Ich erkenne keine prinzipiellen Fehler im vorliegenden Code -> es muss an Sukz.m oder dem Aufruf liegen. Wie auch schon vorher mal geschrieben:

Zitat:
- Wie sieht der Testaufruf auf?
- Wie sieht Sukz.m aus?


Ohne diese Informationen kann zumindest ich dir nicht helfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
alexbmw320
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 18.01.10
Wohnort: kirn
Version: ---
     Beitrag Verfasst am: 19.01.2010, 21:25     Titel:
  Antworten mit Zitat      
ja da hast du recht es liegt an Sukz.m.
Sukz.m bedeutet,dass er sich mit kleinen schritten an die funktion nähert, nur was ich da jetzt falsch programmiert hab, weiss ich nicht, deshalb frage ich ja nach. das programm gibt mir für sukz.m NaN aus
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.01.2010, 21:49     Titel:
  Antworten mit Zitat      
Hallo,

Entschuldige, aber entweder habe ich Tomaten auf den Augen oder du hast Sukz.m nicht hier gepostet.
In letzterem Fall: Wie soll dir jemand sagen, wo der Fehler in deinem Code steckt, wenn du ihn nicht zur Verfügung stellst?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
alexbmw320
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 18.01.10
Wohnort: kirn
Version: ---
     Beitrag Verfasst am: 20.01.2010, 01:10     Titel:
  Antworten mit Zitat      
hier stehts doch:
for i=0:n;
for z=1:max;
%implizites Eulerverfahren gelöst mit sukzessiver Approximation
yk0(i+2,z)=Sukz(f,x(i+1),max,eps,L);
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.01.2010, 10:20     Titel:
  Antworten mit Zitat      
Hallo,

das einzige, was dort steht, ist, dass du eine Funktion sukz.m aufrufst.
Die entscheidende Frage ist aber, was in dieser Funktion passiert.

Es muss eine Unterfunktion Sukz oder eine Sukz.m geben, und die müsstest du zur Verfügung stellen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 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.