What should I do? In an assignment A(:) = B, the number of elements in A and B must be the same.

1 次查看(过去 30 天)
%%it says that error is in the x(i+1) and y(i+1)
while norm(J) > e
I = [x(i),y(i)]';
syms h; % Step size
g = subs(f, [X,Y], [x(i)+S(1)*h,y(i)+h*S(2)]);
dg_dh = diff(g,h);
h = solve(dg_dh, h); % Optimal Step Length
x(i+1) = I(1)+h*S(1); % Updated x value
y(i+1) = I(2)+h*S(2); % Updated y value
i = i+1;
J = [subs(df_dx,[X,Y], [x(i),y(i)]) subs(df_dy, [X,Y], [x(i),y(i)])]; % Updated Gradient
S = -(J); % New Search Direction
end

采纳的回答

darova
darova 2020-3-20
My solution
  3 个评论
darova
darova 2020-3-21
Maybe it takes values as symbolic. Try to convert into numeric
x(i+1) = I(1)+double(h(1))*S(1); % Updated x value
y(i+1) = I(2)+double(h(2))*S(2); % Updated y value

请先登录,再进行评论。

更多回答(0 个)

标签

产品


版本

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by