|
|
Nichtlineartes Gleichungssystem mit Nebenbedingungen |
|
thwillms@gmail.com |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2017, 14:25
Titel: Nichtlineartes Gleichungssystem mit Nebenbedingungen
|
|
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.
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:
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
|
|
Beiträge: 225
|
|
|
|
Anmeldedatum: 17.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.12.2017, 14:31
Titel:
|
|
hallo thomas,
fsolve kann keine nebenbedingungen berücksichtigen, du benötigst fmincon o. lin- /quadprog.
gruß, michael
|
|
|
thwillms@gmail.com |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2017, 16:59
Titel: Nichtlineartes Gleichungssystem mit Nebenbedingungen
|
|
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
|
|
Beiträge: 225
|
|
|
|
Anmeldedatum: 17.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.12.2017, 17:48
Titel:
|
|
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
|
|
|
thwillms@gmail.com |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2017, 18:34
Titel: Nichtlineartes Gleichungssystem mit Nebenbedingungen
|
|
|
|
|
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
|
|
|
Tomagic2000 |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 22.12.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.02.2018, 10:11
Titel: Problem geklärt
|
|
Hallo,
ich habe selbst herausfgefunden, was los ist. Optim gibt zwar an, die Funktion zu enthalten, aber die Funktion ist gar nicht vorhanden.
Daher kann man sie nicht nutzen sondern müsste sie selbst hinzufügen.
Was soll so ein Blödsinn??
Ein Package mit der mincon Funktion für Octave und ein klares Beispiel für die Anwendung habe ich nicht gefunden. Kann da jemand helfen?
Grüße
Thomas
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|