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]);
x1(k)=x1(k-1)+p(1)*w; x2(k)=x2(k-1)+p(2)*w; x3(k)=x3(k-1)+p(3)*w;
Its giving error
No products are associated with this question.
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.
Play games and win prizes!Learn more