Why do I have an error on line 17 of the code? or there is another error

1 次查看(过去 30 天)
syms x
f=x.^8-7*x.^3 + 7;
d=diff(f);
fplot(f,[0 10]);
pause(1);
hold on;
lambda=1;
xo=1;
fxo=1;
x_value=[];
y_value=[];
for i=1:50
x_value=[x_value xo];
y_value=[y_value fxo];
xo=xo-lambda*d;
fxo=xo.^8-7*xo.^3+7; % Corrección aquí
plot(x_value,y_value,'*','linewidth',1);
pause(0.02)
end
Error using plot
Data must be numeric, datetime, duration, categorical, or an array convertible to double.
toc
  2 个评论
Dyuman Joshi
Dyuman Joshi 2023-11-30
xo=xo-lambda*d;
What is this line suppossed to do?
xo and lambda are numbers, but d is an expression in the symbolic variable x.
Freddy
Freddy 2023-12-1
移动:Voss 2023-12-1
I try to capture the gradient descent method and that line iterates the values until the minimum is found.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2023-12-1
syms x
f=x.^8-7*x.^3 + 7;
d=diff(f);
d is a symbolic expression in x
xo=xo-lambda*d;
That symbolic expression in x is used. Note that you are not evaluating d at the current point, so the result is going to involve the symbolic variable x, so you will not be able to convert the result to numeric form.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Symbolic Variables, Expressions, Functions, and Settings 的更多信息

Translated by