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

Fminsearch o fmincon

 

schnuti1985
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2010, 16:44     Titel: Fminsearch o fmincon
  Antworten mit Zitat      
Hallo ihr lieben ich muss schon wieder nerven.
ich muss 3 parameter aus einer Funktion optimieren
Parameter sind :
km=0.03
ki=33
µ_max=0.15

die Funktion lauet:

µ=(µ_max*S)/S+km+(S^2/ki)
S=[0.05,0.15,0.3,0.4,0.75,1.5,3,6,10]

kann mir das irgendjemand lösen?oder eine hilfreichen Ansatz dafür bieten?
Bin schon leicht verzweifelt weil es bei mir nicht funktioniert.

Ganz liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

ich gehe mal davon aus, dass die Werte für die drei Parameter Startwerte sein sollen und S die Eingänge? Dann brauchst du auch noch die entsprechenden Antworten µ. Ich würde das mit nlinfit machen, alternativ ein lineares Gleichungssystem aufstellen und mit \.
Wenn etwas nicht klappt, dann bitte immer dazusagen, was der bisherige Ansatz war und warum er nicht geklappt hat.

Grüße,
Harald

P.S. Ist die Gleichung korrekt? Aus dem ersten Teil könnte man S einfach rauskürzen...
Private Nachricht senden Benutzer-Profile anzeigen
 
schnuti1985
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2010, 17:40     Titel:
  Antworten mit Zitat      
Hi ein µ habe ich auch
Ich soll das mit fmincon lösen.da ich fmincon aber nicht verstehe hatte ich das mit fminsearch versucht ,das wollte mir aber auch nicht gelingen.
mein µ ist:mue=[0.0907,0.1299,0.1381,0.1413,0.1442,0.1465,0.144,0.1444,0.143,0.1412]

das S kann man nicht kürzen das muss in klammern stehen

µ=(µ_max*S)/(S+km+(S^2/ki))
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

fmincon geht nicht, weil du keine Nebenbedingungen hast. Stattdessen mit fminunc oder, einfacher, mit nlinfit.

Code:
km=0.03;
ki=33;
muemax=0.15;

mueOfS=@(p, S) (p(3)*S)./(S+p(1)+(S.^2/p(2)));

S=[0.05,0.15,0.3,0.4,0.75,1.5,3,6,10];
mue=[0.0907,0.1299,0.1381,0.1413,0.1442,0.1465,0.144,0.1444,0.143];
% bestP = nlinfit(S, mue, mueOfS, [km, ki, muemax]);
bestP = fminunc(@(p) sum((mueOfS(p, S)-mue).^2), [km, ki, muemax]);
S_i = linspace(0, 10, 200);
mue_i = mueOfS(bestP, S_i);
plot(S, mue, 'o', S_i, mue_i)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
schnuti1985
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2010, 20:24     Titel:
  Antworten mit Zitat      
Super danke für die antwort.
ich hab zwar auch nebenbedingungen aber viell schaff i es auch mi deinem programm
vielen vielen dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Dann fmincon statt fminunc, und die Nebenbedingungen als zusätzliche Argumente übergeben. Bitte die Problemstellung auch immer möglichst komplett wiedergeben - damit geht nlinfit natürlich nicht mehr.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
schnuti1985
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2010, 08:32     Titel:
  Antworten mit Zitat      
Hallo harald nochmal danke dass du mir das programm aufgebschrieben hast.leider funktioniert das bei matlab 6 nicht mit anonymen funktionen.kannst du das auch anderes aufschreiben?ich habe die ganze woche versucht das hinzubekommen aber es klappt nicht mein programm sieht so aus:

function []= fmincontest01
close all;
clear all;
clc;

S=[0.05,0.15,0.3,0.4,0.75,1.5,3,6,10,20,38.95,78,117,195,389]; %%%%%%unterschiedliche Phosphatkonz. [mM/L]
mue=[0.0907,0.1299,0.1381,0.1413,0.1442,0.1465,0.144,0.1444,0.143,0.1412,0.1412,0.1308,0.1136,0.0948,0.0507]; %%%%%%%%%% Aus Excel lin. Regression%%%%%%%%%%%%

k_m=0.0663;
k_i=33.92;
mue_max=0.1471;

x=[0.1471;33;0.0295]
options= optimset('Display','iter');
for i=1:length(S)
[x_neu]=fmincon(@Optimierungfmincon,[0.147;33;0.0295],[],[],[],[],[],[],@unitdisk,options,S)
end

mein optimierungsfile so:

function f= Optimierungfmincon(x,S)
S;
for i=1:length(S)
f(i)=(x(1)*S(i))./(S(i)+x(3) + (S(i).^2)./(x(2)));
end

mein problem sind vorallem die nebenbedingungen da hab weiß ich nicht wie ich das fomulieren muss.
mein K_i darf nicht < 33 sein und alle parameter müssen größer null sein.
wäre toll wenn du nochmal antworten könntest brauche die lösung bis morgen und bin einfach zu blöde dafür
dabke danke danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
brauche die lösung bis morgen

Blöde Frage: warum hast du dann bis heute mit der Antwort gewartet?

Bei deiner Datei musste ich einiges etwas umschreiben, so läufts jetzt:

Code:
function []= fmincontest01
close all;
clear all;
clc;


% k_m=0.0663; ??? wozu?
% k_i=33.92;
% mue_max=0.1471;

x0=[0.1471;33;0.0295];
options= optimset('Display','iter');
[x_neu, f_neu]=fmincon(@Optimierungfmincon,x0,[],[],[],[],zeros(3,1),[inf, 33, inf],[],options)
 


function f= Optimierungfmincon(x)
S=[0.05,0.15,0.3,0.4,0.75,1.5,3,6,10,20,38.95,78,117,195,389]; %%%%%%unterschiedliche Phosphatkonz. [mM/L]
mue=[0.0907,0.1299,0.1381,0.1413,0.1442,0.1465,0.144,0.1444,0.143,0.1412,0.1412,0.1308,0.1136,0.0948,0.0507]; %%%%%%%%%% Aus Excel lin. Regression%%%%%%%%%%%%

f=sum(((x(1)*S)./(S+x(3) + (S.^2)./x(2))-mue).^2);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
schnuti1985
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2010, 10:57     Titel:
  Antworten mit Zitat      
ich danke dir. hab die frage nicht vorher stellen können weil ich bis heut kein internet hatte.
danke nochmals

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