Verfasst am: 13.09.2020, 17:42
Titel: Problem mit lsode Befehl in Octave
Hallo liebes Forum,
ich habe den unten stehenden Code geschrieben und der hat auch Wochenlang ohne Probleme funktioniert.
Jetzt bekomme ich plötzlich bei der Ausgabe der Differentialgleichung immer einen Fehler. Der Fehler ist der Folgende:
"warning: lsode: passing function body as a string is obsolete; please use anonymous functions
warning: called from
heun at line 23 column 2
error: 'f' undefined near line 1 column 42
error: lsode: evaluation of user-supplied function failed
error: called from
__lsode_fcn__C__ at line 1 column 40
heun at line 23 column 2"
Und der Code ist:
Code:
% Das ist mein Programm. function yn=euler(t0,y0,tend,f,n)
t0=input('Gib hier t0 ein:');
y0=input('Gib hier y0 ein:');
tend=input('Bis zu welchem Wert von t möchtest du y annährn?');
n=input('Gib hier die Anzahl der Schritte ein(n):');
fstrich=input('Wie lautet die Differentialgleichung?', 's');
f=inline('fstrich');
dt=(tend-t0)/n;
t(1)=t0;
y(1)=y0;
for i=1:n
t(i+1)=t(i)+dt;
y(i+1)=y(i)+f(t(i),y(i))*dt;
rotdim([flip(t) ; flip(y)]) scatter(t,y,'*') hold on
f=inline('fstrich');
t=t0:0.001:tend;
y=lsode(f,y0,t);
plot(t,y)
Sieht irgendjemand von euch einen Fehler oder kann mir einen Tipp geben wie ich es besser machen könnte?
Es geht um meine Abschlussarbeit und langsam verzweifle ich.
Ich wäre euch sehr dankbar.
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.