# Discussion Board for 02610 Exercises
At here, you can post your questions, and can also answer the questions posted by the others.
- You can write mathematical expressions as in Latex, e.g. $\lambda=1$.
- You can insert your code in your question in Matlab (or other programming language) format. You can do like this:
``` matlab=
function f = myfun(x)
if x > 1
x = x + 1;
end
```
- You also can include images, tables, etc..
*Now let's try it out.* :smile:
## Q & A:
1. Question 1:
Regarding the implementation of the Newton's method in 2.3 (2).
I implemented it like this:
But it seems to never converge no matter which parameter values i use (exceeding the maximum number of allowed iterations).
``` matlab=
function [x,stat] = newton(alpha,fundfun,x0,varargin)
% Solver settings and info
maxit = 100*length(x0);
tol = 1.0e-10;
stat.converged = false; % converged
stat.nfun = 0; % number of function calls
stat.iter = 0; % number of iterations
% Initial iteration
x = x0;
it = 0;
[f,df,d2f] = feval(fundfun,x,varargin{:});
converged = (norm(df,'inf') <= tol);
stat.nfun = 1;
% Store data for plotting
stat.X = x;
stat.F = f;
stat.dF = df;
stat.d2F = d2f;
% Main loop of Newton's method
while ~converged && (it < maxit)
it = it+1;
% Newton's step
% TODO -- Insert code between the lines
% ================================================
pk = -(d2f)^(-1)*df;
x = x + alpha*pk
% ================================================
[f,df,d2f] = feval(fundfun,x,varargin{:});
converged = (norm(df,'inf') <= tol);
stat.nfun = stat.nfun+1;
% Store data for plotting
stat.X = [stat.X x];
stat.F = [stat.F f];
stat.dF = [stat.dF df];
stat.d2F = [stat.d2F d2f];
end
% Prepare return data
if ~converged
x = [];
end
stat.converged = converged;
stat.iter = it;
end
```
Answers: Try to use backslach in Matlab to solve $-\nabla^2 f(x_k)^{-1} \nabla f(x_k)$, i.e.
```-d2f\df.```