1 svar
44 visningar
Cien är nöjd med hjälpen
Cien 1138
Postad: 22 maj 2023 13:59

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')
Cien 1138
Postad: 22 maj 2023 15:19

Upptäckte felet, partiella derivatorna är fel.

Svara Avbryt
Close