Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Problem with Newton Raphson Method for Two Variables
Replies: 5   Last Post: Jun 25, 2013 2:27 AM

 Messages: [ Previous | Next ]
 Emre Posts: 1 Registered: 10/12/11
Problem with Newton Raphson Method for Two Variables
Posted: Oct 12, 2011 5:20 AM

clc,clear
% Newton Raphson solution of two nonlinear algebraic equations
% set up the iteration
error1 = 1.e8;
xx(1) = 0; % initial guesses
xx(2) = 0.5;
iter=0;
maxiter=40
% begin iteration
while error1>1.e-12
iter=iter+1;
x = xx(1);
y = xx(2);
% calculate the functions
f(1) = 4*x^2-20*x+0.25*y^2+8;
f(2) = 0.5*x*y^2+2*x+8;
% calculate the Jacobian
J(1,1) = 8*x-20;
J(1,2) = 0.5*y;
J(2,1) = 0.5*y^2+2;
J(2,2) = x*y;
% solve the linear equations
y = -J\f';
% move the solution, xx(k+1) - xx(k), to xx(k+1)
xx = xx + y';
% calculate norms
error1=sqrt(y(1)^2+y(2)^2);
error(iter)=sqrt(f(1)^2+f(2)^2);
ii(iter)=iter;
if (iter > maxiter)
error1 = 0;
s=sprintf('****Did not converge within %3.0f iterations.****',maxiter);
disp(s)
end
% check if error1 < 1.e-12
end
x = xx(1);
y = xx(2);
f(1) = 4*x^2-20*x+0.25*y^2+8;
f(2) = 0.5*x*y^2+2*x+8;
% print results
f
xx
iter
% plot results
semilogy(ii,error)
xlabel('iteration number')
ylabel('norm of functions')
clear ii
clear error

what am i doing wrong here, it doesn't converge and find the correct values for x and y?
Is this part
"error1=sqrt(y(1)^2+y(2)^2);
error(iter)=sqrt(f(1)^2+f(2)^2);" right?