我制作了最陡的下降代码,我想知道我是否在怀疑的方式?!!当我把x1 = 0和x2 = 0时,因为diff功能而无法工作!!
Max_iter=5;
n=0;
lamda=0;
syms x1
syms x2
x=[x1;x2];
fun=inline(x1-x2+2*x1^2+2*x1*x2+2*x2^2);
diff(fun(x1,x2),x1)
gradf=[diff(fun(x1,x2),x1);diff(fun(x1,x2),x2)];
while n<=Max_iter
if(gradf~=0)
gradf=[diff(fun(x1,x2),x1);diff(fun(x1,x2),x2)];
y=x-lamda*gradf;
x=y;
n=n+1;
end
end
n ;
x;