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

2 visualizaciones (últimos 30 días)
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 comentarios
Dyuman Joshi
Dyuman Joshi el 30 de Nov. de 2023
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 el 1 de Dic. de 2023
Movida: Voss el 1 de Dic. de 2023
I try to capture the gradient descent method and that line iterates the values until the minimum is found.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 1 de Dic. de 2023
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.

Más respuestas (0)

Categorías

Más información sobre Numbers and Precision 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