Wykorzystanie MATLAB do napisania funkcji, która implementuje metodę Newtona w dwóch wymiarach
Próbuję napisać funkcję, która implementuje metodę Newtona w dwóch wymiarach i podczas gdy ja to zrobiłem, muszę teraz dostosować mój skrypt tak, aby parametry wejściowe mojej funkcji musiały być f (x) w wektorze kolumny, macierzy jakobianskiej zf(x)
, początkowe domysłyx0
i tolerancja, gdy funkcjaf(x)
a jego jakobiańska matryca znajduje się w osobnych plikach .m.
Jako przykład napisanego przeze mnie skryptu, który implementuje metodę Newtona, mam:
n=0; %initialize iteration counter
eps=1; %initialize error
x=[1;1]; %set starting value
%Computation loop
while eps>1e-10&n<100
g=[x(1)^2+x(2)^3-1;x(1)^4-x(2)^4+x(1)*x(2)]; %g(x)
eps=abs(g(1))+abs(g(2)); %error
Jg=[2*x(1),3*x(2)^2;4*x(1)^3+x(2),-4*x(2)^3+x(1)]; %Jacobian
y=x-Jg\g; %iterate
x=y; %update x
n=n+1; %counter+1
end
n,x,eps %display end values
Dzięki temu skryptowi zaimplementowałem funkcję i matrycę jakobianską w rzeczywistym skrypcie i staram się wypracować, w jaki sposób mogę faktycznie utworzyć skrypt z wymaganymi parametrami wejściowymi.
Dzięki!