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

Kinetische Parameter bestimmen

 

Marten
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2020, 15:00     Titel: Kinetische Parameter bestimmen
  Antworten mit Zitat      
Schönen guten Tag,

ich habe einen speziellen Anwendungsfall und komme nicht auf die Lösung und denke, dass das nicht analytisch funktionieren wird. Ich habe auch ein wenig recherchiert und gesehen, dass man das Problem mit einer MATLAB Global Optimization Toolbox lösen kann und ich habe davon nicht so die Ahnung ehrlich gesagt.

Ich möchte folgende Gleichung lösen und Parameter bestimmen:

k=F/W∙(2^(m+n))/((3^(n ) * p^(m+n))) * ∫((2-x)/(1-x))^(m+n) von 0 nach U

F/W, P und U ist bekannt. k, m und n möchte ich bestimmen. Das ist ein kinetischer Ansatz und ich habe 9 dieser Gleichungen aber wenn ich wüsste, wie man sie löst wäre es perfekt.
k ist die Reaktionsgeschwindigkeit und m un n sind die Ordnungen. m un n können sogar negative Zahlen annehmen.

Wolfram alpha spuckte mir eine "incomplete beta function" aus, aber das habe ich nicht ganz verstanden.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

ich würde mit der Optimization Toolbox anfangen.
Sehen die anderen Gleichungen genauso aus, nur mit anderen Werten für F/W, P und U? Dann ist das ein kleinste-Quadrate Problem und kann z.B. mit lsqnonlin gelöst werden.
Falls die anderen Gleichungen anders aussehen, enthalten die die gleichen Parameter oder andere?

Edit: Noch eine Nachfrage: wenn m und n "Ordnungen" sind, müssen sie dann ganzzahlig sein? Dann müsste man das doch anders angehen.

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
 
Marten
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2020, 16:28     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

ich würde mit der Optimization Toolbox anfangen.
Sehen die anderen Gleichungen genauso aus, nur mit anderen Werten für F/W, P und U? Dann ist das ein kleinste-Quadrate Problem und kann z.B. mit lsqnonlin gelöst werden.
Falls die anderen Gleichungen anders aussehen, enthalten die die gleichen Parameter oder andere?

Edit: Noch eine Nachfrage: wenn m und n "Ordnungen" sind, müssen sie dann ganzzahlig sein? Dann müsste man das doch anders angehen.

Grüße,
Harald


Also ich habe Matlab, aber habe bisher nur mal hin und wieder etwas mit rumgespeilt leider Sad.

genau die anderen Gleichungen sehen in etwa genau so aus. F/W und P kann ich varrieren. U messe ich also der Umsatz.

das ist zum beispiel eine andere Gleichung:
k2=F/W∙(3^(m+n)/((2^(m+2n) * pges^(m+n)))((2-x)/(1-x))^(m+n)

für jede Gleichung hat k, m und n einen anderen Wert. Nein die Ordnungen müssen nicht ganzzahlig sein und können auch negativ sein. Das ist ein Formalkinetischer Ansatz der erstmal keinen richtigen physikalischen Hintergrund hat. Soll mir aber später in Aspen besser helfen bei meinen Modell als eins aus der Literatur.

Danke dir und Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Marten
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2020, 17:09     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

ich würde mit der Optimization Toolbox anfangen.
Sehen die anderen Gleichungen genauso aus, nur mit anderen Werten für F/W, P und U? Dann ist das ein kleinste-Quadrate Problem und kann z.B. mit lsqnonlin gelöst werden.
Falls die anderen Gleichungen anders aussehen, enthalten die die gleichen Parameter oder andere?

Edit: Noch eine Nachfrage: wenn m und n "Ordnungen" sind, müssen sie dann ganzzahlig sein? Dann müsste man das doch anders angehen.

Grüße,
Harald


Das steht auf der Beschreibung zu deinem Befehl:
Zitat:
Description

Nonlinear least-squares solver

Solves nonlinear least-squares curve fitting problems of the form

minx//f(x)//22=minx (f1(x)^2+f2(x)^2+...+fn(x)2)

with optional lower and upper bounds lb and ub on the components of x.

x, lb, and ub can be vectors or matrices; see Matrix Arguments.

Rather than compute the value //f(x)//22 (the sum of squares), lsqnonlin requires the user-defined function to compute the vector-valued function


und bei mir im Paper steht:

W/F=∫dx/(k∙pCO^(m)∙p_(H2)^(n)) von 0 nach U = 1/(k∙pCO^(m)∙p_(H2)^(n) * ∫((3-x)/(1-x))^(m+n) dx von 0 nach U
W/F=a*f1(x)+b*f2(x)+c*f3(x)+d*f4(x)+..
 


Sieht ja schon ähnlich aus aber nicht ganz Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ja, das wäre schon schön, wenn ein Computer jegliche, wie auch immer formulierte Probleme lösen könnte. In aller Regel muss aber doch der Mensch die Vorarbeit leisten und das Problem in eine für den Computer passende Form bringen. Hier ist das eigentlich gar nicht so schwer:
Wenn du eine Gleichung ls = rs hast (ls = linke Seite, rs = rechte Seite), dann setzt du f = rs - ls, und schon ist das in der benötigten Form. Jede Gleichung wird zu einem f.
Wenn du das "Formel"-Tag und LaTeX-Syntax nutzt, werden deine Gleichungen deutlich lesbarer.

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
 
Marten
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2020, 21:00     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

ja, das wäre schon schön, wenn ein Computer jegliche, wie auch immer formulierte Probleme lösen könnte. In aller Regel muss aber doch der Mensch die Vorarbeit leisten und das Problem in eine für den Computer passende Form bringen. Hier ist das eigentlich gar nicht so schwer:
Wenn du eine Gleichung ls = rs hast (ls = linke Seite, rs = rechte Seite), dann setzt du f = rs - ls, und schon ist das in der benötigten Form. Jede Gleichung wird zu einem f.
Wenn du das "Formel"-Tag und LaTeX-Syntax nutzt, werden deine Gleichungen deutlich lesbarer.

Grüße,
Harald


Ich weiß ja das das jemand anderes auch gelöst hat mit Matlab. Das mit der linke und rechte Seite habe ich nicht verstanden. Inwiefern sollte es einfacher sein die Gleichung zu lösen, wenn ich k auf die andere Seite rüber bring?

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

weil es dann in der Form ist, die lsqnonlin benötigt. Eine Gleichung zu lösen ist nichts anderes als die Abweichungen zwischen rechter und linker Seite zu minimieren.

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
 
Marten
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2020, 21:59     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

weil es dann in der Form ist, die lsqnonlin benötigt. Eine Gleichung zu lösen ist nichts anderes als die Abweichungen zwischen rechter und linker Seite zu minimieren.

Grüße,
Harald


Ich hab mir den Code grad eben angeguckt.. woher weißt ich denn welcher für mich ist?
Und wie sag ich dem, dass ich k n und m bestimmen will?
Alle meine Reaktionen haben unterschiedliche Geschwindigkeiten und Ordnungen..

Gruß und danke dir Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.425
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.03.2020, 23:30     Titel:
  Antworten mit Zitat      
Hallo,

welchen "Code" denn? Die Syntax-Varianten? Fang doch mal mit der ersten an.

Zitat:
Und wie sag ich dem, dass ich k n und m bestimmen will?

Du kannst sie zu einem Vektor, sagen wir u, zusammenfassen und dann mit u(1), u(2), u(3) arbeiten.

Zitat:
Alle meine Reaktionen haben unterschiedliche Geschwindigkeiten und Ordnungen..

Dann sind die Gleichungen also voneinander unabhängig? Dann würde ich sie auch separat voneinander lösen. Wenn du keine anderweitigen Einschränkungen hast, wirst du aber mindestens so viele Gleichungen wie zu bestimmende Größen brauchen.

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
 
Marten
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2020, 10:55     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

welchen "Code" denn? Die Syntax-Varianten? Fang doch mal mit der ersten an.

Zitat:
Und wie sag ich dem, dass ich k n und m bestimmen will?

Du kannst sie zu einem Vektor, sagen wir u, zusammenfassen und dann mit u(1), u(2), u(3) arbeiten.

Zitat:
Alle meine Reaktionen haben unterschiedliche Geschwindigkeiten und Ordnungen..

Dann sind die Gleichungen also voneinander unabhängig? Dann würde ich sie auch separat voneinander lösen. Wenn du keine anderweitigen Einschränkungen hast, wirst du aber mindestens so viele Gleichungen wie zu bestimmende Größen brauchen.

Grüße,
Harald


Ja sie sind von einander unabhängig.. hmmmm ich habe noch einen anderen kinetischen Ansatz der ähnlich ist und mathematisch leichter zu lösen beziehungsweise wäre vermutlich das Ergebnis sogar gleich, aber ich möchte das es später schön aussieht im Paper
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.425
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.03.2020, 11:22     Titel:
  Antworten mit Zitat      
Hallo,

möglich ist viel.
Für die etwas andere Herangehensweise gibt es dann auch eine andere Lösung, z.B. fminunc .
Um zu maximieren, minimierst du die mit -1 multiplizierte Funktion.
Zur Berechnung des Integrals in der Zielfunktion kannst du integral verwenden.

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
 
Marten
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2020, 11:58     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

möglich ist viel.
Für die etwas andere Herangehensweise gibt es dann auch eine andere Lösung, z.B. fminunc .
Um zu maximieren, minimierst du die mit -1 multiplizierte Funktion.
Zur Berechnung des Integrals in der Zielfunktion kannst du integral verwenden.

Grüße,
Harald


Puh das sieht auch echt kompliziert aus.. ich werd mal nen Arbeitskollegen fragen ob er weiß wie man die Syntax eintippen muss und hoffe das das klappt.. danke dir
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.425
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.03.2020, 12:58     Titel:
  Antworten mit Zitat      
Hallo,

ich behaupte, so schwierig ist das nicht. Man muss halt mal den Anfang machen. Wenn konkrete Probleme auftreten, dann gerne wieder melden.

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.