1
svar
50
visningar
Cien behöver inte mer hjälp
Newtons metod
Hej, dyker på lite felmeddelanden när jag försöker lösa ovan. Har alltså gjort en loop där jag vill närma mig punkten x=[-2;-1]. Felmeddelandena är "Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.013157e-76.".
f=@(x,y)2*x.^3-3.*x.^2-6*x.*y.*(x-y-1);
x=linspace(-2,2);
[X,Y]=meshgrid(x,x);
contour(X,Y,f(X,Y))
hold on
f1=@(x)6*x(1).^2-6*x(1)-12*x(1).*x(2)+6*x(2).^2+2*x(2);
f2=@(x)-6*x(1).^2+12*x(1).^2.*x(2)+12*x(1);
f11=@(x)12*x(1)-12*x(2)-6;
f12=@(x)12*x(2)-12*x(1)+6;
f22=@(x)12*x(1);
f=@(x)[f1(x); f2(x)]; % Gradienten
Df=@(x)[f11(x),f12(x);f12(x),f22(x)]; % Hessianmatrix
x=[-2;-1];
kmax=10; tol=0.5e-8;
for k=1:kmax
h=-Df(x)\f(x);
x=x+h;
disp([x' norm(h)])
if norm(h)<tol, break, end
end
plot(x(1),x(2),'ro','MarkerFaceColor','r')
Upptäckte felet, partiella derivatorna är fel.