Whats mistake in this code....can anybody guide me?
Información
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
Mostrar comentarios más antiguos
z = sym('2*x1 * x1 + x2*x2 + 3*x3*x3');
syms x1 x2 x3 a;
gradz = [diff(z,x1); diff(z,x2); diff(z,x3)];
x1(1)=2;
x2(1)=-2;
x3(1)=1;
for k=2:5
p=subs(gradz, [x1 x2 x3], [x1(k-1) x2(k-1) x3(k-1)]);
x1a=x1(k-1)+p(1)*a;
x2a=x2(k-1)+p(1)*a;
x3a=x3(k-1)+p(1)*a;
za=subs(z, [x1 x2 x3], [x1a x2a x3a]);
w=solve(za);
x1(k)=x1(k-1)+p(1)*w;
x2(k)=x2(k-1)+p(2)*w;
x3(k)=x3(k-1)+p(3)*w;
end
Its giving error
2 comentarios
the cyclist
el 24 de Mzo. de 2013
Which lines gives the error, and what is the full text of the error message?
Shantanu K
el 24 de Mzo. de 2013
Respuestas (1)
Walter Roberson
el 24 de Mzo. de 2013
0 votos
When the explicit solution could not be found, solve() is returning the empty matrix, which you assign into "w". The empty matrix multiplied by p(1) gives the empty matrix. Add x1(k-1) to the empty matrix and you get the empty matrix. You then try to assign that empty matrix, which is of size 0, to x1(k) which is of size 1.
1 comentario
Shantanu K
el 24 de Mzo. de 2013
La pregunta está cerrada.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!