% 6.581 PS4 % Problem 1 % newton.m function [x, e, flag] = newton(func, x0, tol, maxItr) % Implements Newton's method. The arguments to this function are as % follows: % % func - is a vector function of x. The return value of func is the time % derivative of x evaluated at x and the jacobian evaluated at x. % For example: % function [dxdt, dxdx] = myfun(x) % dxdt = -x^2; % dxdx = -2*x; % x0 - is the initial guess % tol - the error tolerance. When the two norm of func(x) is below tol % the function will return % maxItr - the maximum number of steps before the method gives up. If this % happens then the error flag will be set to 0; % % Returns: % % x - If successfull this is the the root of the function % e - The residual error. This is the two norm of func(x) % flag - 1 if the method met the error tolerance. 0 otherwise. % % You will have to fill in the missing lines of code labled with % %% CHANGE ME i = 1 x = x0 [f, fp] = func(x) e = norm(f) while(e > tol && i < maxItr) dx = ; %% CHANGE ME %% x = x + dx; [f, fp] = func(x); e = norm(f); i = i + 1 end; if(e > tol) flag = 0; else flag = 1; end