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

Nullstellensuche eines nichtlinearen Gleichungssystems

 

nurnocheinname

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2011, 20:42     Titel: Nullstellensuche eines nichtlinearen Gleichungssystems
  Antworten mit Zitat      
Hallo,

ich stehe vor folgendem Problem:
Ich habe ein nichtlineares Gleichungssystem mit 12 Gleichungen und 12 Variablen.

Die Variablen sind Konzentrationen und haben folglich den Wertebereich [0:1]. Einige Konzentrationen sind sehr niedrig (~1e-20), während andere groß sind (~1e-1).

Da das Gleichungssystem Konzentrationen ausrechnen soll, weiß man von der Lösung, das sie relativ "glatt" ist. Sie sollte keine Knicke haben und hat mit Sicherheit keine Sprünge, was ja für ein Newton-Verfahren spricht.

Ich habe die Aufgabe mit fsolve() umgesetzt. TolFun und TolX sind angepasst. Leider konvergiert fsolve() wenn überhaupt nur bei sehr vielen Iterationen ('MaxFunEvals' 100000 statt 1200, 'MaxIter', 4000 statt 400) und oft gar keine Lösung. Fsolve() findet teilweise leider auch negative Werte und komplexe Werte der Konzentrationen.

Das Gleichungssystem ist relativ einfach aufgebaut, aber nichtlinear. Die Jacobi- und Hessematrix können einfach angegeben bzw auch analytisch von Matlab berechnet werden.

Ich probier jetzt schon 2 Tage lang rum und hab auch schon ewig gesucht.

1.) Ist fsolve() überhaupt die richtige Funktion für diese Aufgabe, oder gibt es ein geeigneteres Verfahren?
Bei Verwendung der analytischen Ableitung müsste ein Newton-Verfahren doch viel schneller sein, oder?

2.) Wie kann man den Wertebereich der Variablen einstellen?
Das müsste die Konvergenz doch auch erheblich beschleunigen, oder?

Mit freundlichen Grüßen,

Clemens


nurnocheinname

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2011, 22:24     Titel:
  Antworten mit Zitat      
Hat wirklich keiner eine Idee?

Mir fehlt da einfach die Erfahrung, ob das mit fsolve geht, oder ob ich besser eine Optimierung mit z.B. fmincon() mache.
 
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.