non linear equation using newtons method
Show older comments
% start iteration loop
if x2 == 1.0, x2 = 1.001; end % don't allow x2 = 3 as guess
x1 = sqrt(4-(4*x2.*x2)); % satisfies eqn. 1
xo = [x1 x2 ]';
itmax = 30; it = 0; tol = 1e-5; emax = 1; n = length(xold);
fprintf(1,'\n Intermediate edit for NLDemo2 \n');
while emax > tol && it <= itmax
it = it+1;
x = xold;
%
% compute function vector using xold
f = [(x(1)*x(1))-(2*x(1))-x(2)+0.5;
(-x(1)*x(1))+(4*(x(2)*x(2)))-4];
%
% compute Jacobian matrix evaluated at xold
J = [2*x(1)-2 -1; 2*x(1) -8*x(2)];
%
% compute xnew
xnew = xold - J\f;
%
% calc & edit error (intermediate results)
emax = max(abs((xnew-xold)./xnew));
fprintf(1,' it = %3d max error = %8.3e \n',it,emax);
fprintf(1,' xnew xold \n');
for j = 1:n
fprintf(1,' %10.5f %10.5f \n',xnew(j),xold(j));
end
%
xold = xnew; % use current estimate as guess for next iteration
end
keep getting the following error
Matrix dimensions must agree.
Error in HW_6c (line 20)
xnew = xold - J\f;
Accepted Answer
More Answers (0)
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!