Bonjour,
Tout est dans le titre ! Je ne comprends pas comment faire ça.
enfait , je suis étudiant et je dois coder ce programme :
function y=Newton(f,x0,tol,maxiter,fp)
% NEWTON solves a system of non linear equations using Newton’s method.
% y=Newton(f,x0,tol,maxiter,fp) solves the equation f(x)=0 using
% Newton’s method with initial guess x0. fp is a function that accepts
% exactly one argument x and returns the Jacobian of f evaluated at x.
% If fp is not specified then an approximate Jacobian is computed by
% the program. The function terminates when the Newton step length is
% less than tol or when the maximum number of iterations maxiter is
% reached.
(pour info, le début de mon programme ressemble à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 k=0; xk=x0+2*tol; xkplus1=x0; while((k<maxiter) and (abs(xkplus1-xk)>tol) if "fp est présent dans les arguments" Jacobien=fp(xk); else Jacobien=... end xk=xkplus1; xkplus1=xk-Jacobien\f(xk); k=k+1; end y=xkplus1;
Donc mon problème réside dans le fait que je dois, selon si fp est spécifié ou pas, faire un certain calcul.
(coté maths aucun souci)
Malheureusement je ne comprends pas trop comment faire. Tester si fp est bien une fonction (et comment faire) ? y'a t'il une commande spéciale ?
Merci de vos propositions et éclaircissements!
EDIT: j'ai oublié de préciser quelle version j'utilisais... et je ne le sais pas! Je suis coincé chez moi à la suite d'un petit accident et Matlab est disponible seulement à mon école. Mais il s'agit d'une des dernières versions.
Partager