Optimization through iteration - help!

3 vues (au cours des 30 derniers jours)
Jan Morawietz
Jan Morawietz le 7 Mai 2015
Commenté : Jan Morawietz le 8 Mai 2015
I'm desperatley trying to optimize vector x such as its sum equals one.I need this for an optimization problem which can only be solved by iteration.. Thx for any adivce
best Jan
x = [0.125,0.125,0.125,0.125];
testf = sum(x);
test1 = 1;
while abs(test1-testf)~=0
test1 = testf;
testf = sum(x*2);
end
  9 commentaires
Geoff Hayes
Geoff Hayes le 8 Mai 2015
Jan - the code never resets the weight array so you will get the same answer on each iteration of the while loop. And multiplying the weights by a number less than one will mean that
sum(weight*0.2) < sum(weight)
always since each element of weight is less than one.
Jan Morawietz
Jan Morawietz le 8 Mai 2015
true - this example is not good... but how do I include weight so that the iteration changes its inputs. Do you know of any similar example?

Connectez-vous pour commenter.

Réponses (1)

Thorsten
Thorsten le 7 Mai 2015
x = 1/sum(x)*x;
  3 commentaires
Thorsten
Thorsten le 8 Mai 2015
Hi Jan, yes, x is the weight vector. But why do you need an iteration when you can get the solution in one step? Is it homework?
Jan Morawietz
Jan Morawietz le 8 Mai 2015
I need to figure out how I can program an iteration process when the changing variable is a matrix. My examples were simply illustrations of the programming structure...
In my example below, I want to change matrix r so both function outputs x and y are equal.
r = [1,1,1]; % Initial guess
x = 1.5*r; % Condtion 1
y = 2*r; % Condtion 2
while abs(x-y)~=[0,0,0]
r = x
r = y
end

Connectez-vous pour commenter.

Catégories

En savoir plus sur Third-Party Cluster Configuration dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by