1
svar
44
visningar
Cien är nöjd med hjälpen
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.