syntax errors symbolic to logical

1 visualización (últimos 30 días)
Chance Anderson
Chance Anderson el 4 de Dic. de 2020
Comentada: Chance Anderson el 4 de Dic. de 2020
I am trying to do a backtracking line search algorithm for a stepest decent problem. This bascial means I need to keep using the gradiant and eventually the hessian alot. But I am trying to compare the operators to be able to compare and I just cant get it. below is my code and a photo of what i am trying to do.

Respuesta aceptada

Walter Roberson
Walter Roberson el 4 de Dic. de 2020
You missed the point that requires that the gradient of f be evaluated at x. You are taking the symbolic gradient of f into gf, but you are not evaluating it at x.
Note: if you have a symbolic gradient gf, then you do not need to re-calculate it every iteration: you can calculate gf once and evaluate gf with the current x at every step.
  5 comentarios
Chance Anderson
Chance Anderson el 4 de Dic. de 2020
hey thanks for the help, im not very good at this and your help is very useful cause.
Chance Anderson
Chance Anderson el 4 de Dic. de 2020
So im sorry to ask again
I tried using this evalualtion at several different points of the code. Am i using it in the wrong context
f =
-log((x_2/5 - 1)*(x_5/2 - 1)*((2*x_4)/5 - 1)*(x_1/10 - 1)*((3*x_6)/5 - 1)*((3*x_3)/10 - 1)*(x_1^2 - 1)*(x_2^2 - 1)*(x_3^2 - 1)*(x_4^2 - 1)*(x_5^2 - 1)*(x_6^2 - 1))
gf =gradient(f);
subs(gf, [x_1, x_2, x_3, x_4, x_5, x_6], x);
deltax = -1*gf;
a = .3;
b = .8;
t = 1;
inc = 1;
step = 0;
startq = f + a * t * gf.' * deltax;
track = f + a * t * gf.' * deltax;
while startq < track
t = t * B^inc;
disp(inc);
inc = inc +1;
disp(track)
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by