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

ODE 45 bleibt bei Startwert

 

0Kris0

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2021, 14:42     Titel: ODE 45 bleibt bei Startwert
  Antworten mit Zitat      
Code:

function [T,A,Kn] = Ntest(Num,Time,Temp)

[~,a]= startkrisneutime(Time,Num);
[~,b]= stopkrisneutime(Time,Num);

TI=round(Time(a));
TII=round(Time(b));

Kn=Knakaneu(Temp);

n=2.8;

A0=0.001;
Tstart=TI;
Tend=TII;
     
[T, A]=ode45(@Naka,[Tstart Tend],A0);

plot(T,A,'red')

function dAdt=Naka(t,A)
     for i=1:length(Kn)
     
           K=(Kn(i));
        ni=((n-1)/n);

        dAdt= n*K*(1-A)*((log(1/(1-A)))^(ni));
     end
   
 end
end



Hallo, bin relativ neu bei Matlab und bin auf ein Problem bei meinem Programm gestoßen.
Da ich schon alles überprüft habe weiß ich mit sicherheit, dass die aus anderen Funktionen geladenen Vektoren (a,b,Kn) korrekt sind. Leider kommt bei mir als Lösung für A immer nur ein Vektor raus der nur den Startwert A0 besitzt.
Ich bekomme also keine Fehlermeldung aber das falsche Ergebnis.
Ich hoffe jemand hat eine Idee wo der Fehler liegt.


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.06.2021, 15:37     Titel:
  Antworten mit Zitat      
Hallo,

bitte stelle nach Möglichkeit reproduzierbare Beispiele zur Verfügung. Hier scheitert es an konkreten Werten für Tstart, Tend und Kn bzw. daran, dass die Funktionen zu deren Berechnung nicht zur Verfügung stehen.

Naka ist eine nested function. Ich würde nested functions vermeiden und Kn lieber "sauber" als Parameter übergeben. Gerade die Verwendung von A in unterschiedlichem Kontext kann sonst Probleme machen.

In der Schleife fällt mir auf, dass du dAdt in jeder Iteration überschreibst. Es hätte den gleichen Effekt, wenn du nur die letzte Iteration ausführst, das ist also vermutlich nicht beabsichtigt. Ich kann allerdings nicht sagen, was du stattdessen erreichen willst.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
0Kris0

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2021, 12:26     Titel: Daten
  Antworten mit Zitat      
Ich bin mir nicht sicher ob es sinn ergibt mit alternativen Werten aber die original sind wohl etwas zu groß.

Anfangswert: ca. 6
Endwert: ca 49
meine Ausgabe liegt auch in diesem Bereich. Das Problem ist nur, dass es eine gerade ist und sollte eigentlich etwa die Form einer kubische Parabel besitzen.

Kn=[1,2,3,5,8,5,3,2,1]
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.06.2021, 13:29     Titel:
  Antworten mit Zitat      
Hallo,

es gibt wie gesagt noch (mindestens) ein anderes Problem:
Zitat:
In der Schleife fällt mir auf, dass du dAdt in jeder Iteration überschreibst. Es hätte den gleichen Effekt, wenn du nur die letzte Iteration ausführst, das ist also vermutlich nicht beabsichtigt. Ich kann allerdings nicht sagen, was du stattdessen erreichen willst.

Im Zweifelsfall müsstest du mal angeben, welche DGL du eigentlich lösen willst.

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 ;)
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 - 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.