Non-Linear Dynamical Systems - Iteration Help? (Beginer)
Mostrar comentarios más antiguos
Hi,
I am a total novice MATLAB user and I feel as if I am banging my head against a desk with this problem. I am aware that it is VERY simple, but as I mentioned I am very new to MATLAB, any help at all would be much appreciated.
I am studying a non-linear dynamical systems course and I'm required to write MATLAB files that will solve a non-linear system of equations of the form: f(x)=0
I am also told that the function should implement the newton iteration:
x(k+1) = x(k) - ( [df/dx(x(k))]^-1 ( f( x(k) ) )
The expression [df/dx(x(k))] is the Jacobian of f in the previous point x(k) and the initial guess x0 is provided by the user of mysolve (MySolve.m is the name we are told to call our file) I have written a program that finds the Jacobian of any matrix:
function df=MyJacobian(f,x,h)
n = length(x);
xplus = x;
xminus = x;
for i=1:n
xplus(i)=xplus(i)+h;
xminus(i)=xminus(i)-h;
df(:,i)=(f(xplus)-f(xminus))/(2.*h);
xplus(i)=x(i);
xminus(i)=x(i);
end
I know this works.
Finally we are told that the iteration should stop if both the correction (e(k+1)=x(k+1)-x(k)) and the residual (r=f(x(k))) are less than some specified tolerance 'tol' (for example 1e-10). After maxit iterations without convergence one should exit anyway, and set converged=0 (for example, maxit could be 10).
I am sorry for such a long question but once again would appreciate any help what so ever,
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!