Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Promotion Roboterführung auf Basis von Texturmerkmalen (m/w)
Entwicklung von Verfahren zur kamerabasierten Lokalisation
Robert Bosch GmbH - Hildesheim

System-Entwickler (m/w)
Analyse und Spezifikation von Systemanforderungen & Abstimmung von Anforderungen
MicroNova AG - Friedrichshafen

Elektromobilität: E-Drive Entwicklungsingenieur HV-Energiemanagement und Betriebsstrategie (m/w)
Entwicklung von Teilfunktionen für Energiebordnetze
MBtech Group GmbH & Co. KGaA - Sindelfingen

Systemingenieur (m/w) Funktionsentwicklung Automotive
Konzeption und Spezifikation von spezifischen Funktionen in elektronischen Steuergeräten
DRÄXLMAIER Group - Vilsbiburg bei Landshut

Ingenieur (w/m) modellbasierte Entwicklung / Embedded Programmierung
Organisation und Durchführung von Projekten zur Integration von TargetLink in aktuelle Entwicklungsprozesse
dSPACE GmbH - Pfaffenhofen

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Nichtlineartes Gleichungssystem mit Nebenbedingungen

 

thwillms@gmail.com

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2017, 14:25     Titel: Nichtlineartes Gleichungssystem mit Nebenbedingungen
  Antworten mit Zitat      
Hello,

Ich habe schon mehrer Methoden versucht, um den folgenden Code als Script
zum Laufen zu bringen.
2 Gleichungen mit 4 Variablen, allerdings zwei davon
durch Randbedingungen festgelegt.

Code:

1;
function y=f(x)
#Konstanten
cA0=2;
cB0=2;
k1=15E-1;
k2=2;  
#Nebenbedingungen
x(1)=cA0-x(4);
x(2)=cB0-x(4)-x(6);
#Gleichungen
y(1)=x(3)*x(4)-k1*x(2)*x(1);
y(2)=x(5)*x(6)-k2*x(3)*x(2);  
endfunction
[x,info]=fsolve("f", [1; 1]);
 


aber bekomme beim Versuch der Lösung immer einen Fehler.
Sind Nebenbedingungen nicht möglich?
Muss in y=f(x) nicht noch eine zweite Variable stehen?
Jedoch erhalte ich auch mit f(x(3),x(4)) einen Fehler.

I fand im internet dass alles von der Form f(x) = 0 sein muss,
aber nichts half:
weder für die erste Nebenbedingung zu setzen:

x(1)-cA0+x(4)=0;
noch
y(3)=x(1)-cA0+x(4);

noch x(1) in der ersten Gleichung (und x(2) in der zweiten) einzusetzen:

Code:

y(1)=x(1)*x(2)-k1*(cA0-x(2))*(cB0-x(2)-x(4));
y(2)=x(3)*x(4)-k2*x(1)*(cB0-x(2)-x(4));
 


Kann mir jemand helfen??
Beispiele für Systeme mit Nebenbedingungen habe ich keine gefunden
und das ist mein erstes System dieser Art.

Danke

Thomas


Friidayy
Forum-Century

Forum-Century


Beiträge: 204
Anmeldedatum: 17.12.13
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 19.12.2017, 14:31     Titel:
  Antworten mit Zitat      
hallo thomas,

fsolve kann keine nebenbedingungen berücksichtigen, du benötigst fmincon o. lin- /quadprog.

gruß, michael
Private Nachricht senden Benutzer-Profile anzeigen
 
thwillms@gmail.com

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2017, 16:59     Titel: Nichtlineartes Gleichungssystem mit Nebenbedingungen
  Antworten mit Zitat      
I found two errors in the implemented system given before.
After solving them the code worked with substitudted variables.
But I prefer using boundary conditions with fmincon. I tried the following code.

Zitat:

1;
pkg load optim;

function y=f(x)
cA0=2;
cB0=2;
k1=15E-1;
k2=2;

x(1)=cA0-x(4);
x(2)=cB0-x(4)-x(6);
x(3)=x(4)-x(6);
x(5)=x(6);

y(1)=(x(3)*x(4)-k1*x(1))*x(2);
y(2)=x(5)*x(6)-k2*x(2)*x(3);
endfunction

#lb=[0;0];
#ub=[2;2];

[x,obj, info]=fmincon("f", [1; 1]);

display(info);
printf(' Konz. D: %f', x(1,1)); # 1.Spalte erstes Element
printf(' Konz. X: %f', x(2,1)); # 1.Spalte zweites Element



I installed and loaded the package optim, but
I get a message after loading. optim not implemented...

Would the code work?
How to implement it?
Can anyone help me?

Thanks

Thomas
 
Friidayy
Forum-Century

Forum-Century


Beiträge: 204
Anmeldedatum: 17.12.13
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 19.12.2017, 17:48     Titel:
  Antworten mit Zitat      
hallo thomas,

wieso wechselt du die sprache? ich würde dir gerne helfen, aber ich blicke bei dir nicht ganz durch, oben hast du z.b. geschrieben, dass du 4 variablen hast, im code hat der x vektor aber 6 einträge. kannst du vllt. dein problem nochmals sauber formulieren, ohne matlab code.

gruß, michael
Private Nachricht senden Benutzer-Profile anzeigen
 
thwillms@gmail.com

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2017, 18:34     Titel: Nichtlineartes Gleichungssystem mit Nebenbedingungen
  Antworten mit Zitat      
Hallo,

danke für die Antwort. Sorry, ich habe die Sprache gar nicht absichtlich gewechselt. VOrher war mirt sdas auch schon passiert, aber ich hatte das noch korrigiert.
I fand zwei Fehler im vorher angegebenen System. Nach deren Eliminierung funktionierte der Code perfekt mit den substituierten Variablen.
Aber ich ziehe es vor die Randbedingungen mit fmincon zu verwenden. Ich versuchte den folgenden Code.

Zitat:

1;
pkg load optim;

function y=f(x)
cA0=2;
cB0=2;
k1=15E-1;
k2=2;

x(1)=cA0-x(4);
x(2)=cB0-x(4)-x(6);
x(3)=x(4)-x(6);
x(5)=x(6);

y(1)=(x(3)*x(4)-k1*x(1))*x(2);
y(2)=x(5)*x(6)-k2*x(2)*x(3);
endfunction

#lb=[0;0];
#ub=[2;2];

[x,obj, info]=fmincon("f", [1; 1]);

display(info);
printf(' Konz. D: %f', x(1,1)); # 1.Spalte erstes Element
printf(' Konz. X: %f', x(2,1)); # 1.Spalte zweites Element


Ich habe das Paket Optim installiert und geladen, aber
ich bekam die Meldung, dass Optim zwar geladen aber nicht implementiert worden sei.

Wie wird das Paket implementiert? Habe ich die Funktion richtig verwendet?
Würde der Code funktionieren?

Danke

Thomas
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.