Спасибо! Вот код из матлаба, что здесь может быть не так? Подскажите пожалуйста...
Код:
x0=[10^-10; 10^-10; 10^-10]; %начальное приближение
eps=10^-17; %точность
x1=[0;0;0]; %значение на следующей итерации
lam=0.05*10^-12; %лямбда, коэффициент, который перед градиентом ставится
syms x y z epsi sigma %переменные символьного типа
%подсчет градиента
grad_x=diff('(4*epsi*((sigma/x)^12-(sigma/x)^6)+4*epsi*((sigma/y)^12-(sigma/y)^6)+4*epsi*((sigma/z)^12-(sigma/z)^6))',x);
grad_y=diff('(4*epsi*((sigma/x)^12-(sigma/x)^6)+4*epsi*((sigma/y)^12-(sigma/y)^6)+4*epsi*((sigma/z)^12-(sigma/z)^6))',y);
grad_z=diff('(4*epsi*((sigma/x)^12-(sigma/x)^6)+4*epsi*((sigma/y)^12-(sigma/y)^6)+4*epsi*((sigma/z)^12-(sigma/z)^6))',z);
k=1; %чтобы зашел в цикл
while k>eps
x_t=subs(subs(subs(subs(subs(grad_x,x,x0(1)),y,x0(2)),z,x0(3)),epsi,1.6539*10^(-21)),sigma,3.405*10^(-10));
y_t=subs(subs(subs(subs(subs(grad_y,x,x0(1)),y,x0(2)),z,x0(3)),epsi,1.6539*10^(-21)),sigma,3.405*10^(-10));
z_t=subs(subs(subs(subs(subs(grad_z,x,x0(1)),y,x0(2)),z,x0(3)),epsi,1.6539*10^(-21)),sigma,3.405*10^(-10));
x1=x0-lam*[x_t; y_t; z_t];
lam=lam/2;
k=abs(x1-x0);
x0=x1;
end