function Xm = espace_d_etat(Xn,Un,Um,wn,wm) global dt % X(:,n) = Xn X(:,n+1) = Xm U(:,n) = Un U(:,n+1) = Um % Xk : solution partielle pour X(:,n+1) I = eye(7); [An,Bn] = calcul_AB( Xn,wn ); Xk = Xn; [Am,Bm] = calcul_AB( Xk,wm ); Delta = (I + dt/2*An) * Xn + dt/2*Bn * Un + dt/2*Bm * Um ; F = (I - dt/2*Am) * Xk - Delta; erreur = norm(F); iter = 0; while erreur > 1e-10 iter = iter + 1; if iter > 20, disp('no convergence'); break; end Jac = calcul_Jac( Xk,wm ); Xk = Xk - Jac\F; [Am,Bm] = calcul_AB( Xk,wm ); Delta = (I + dt/2*An) * Xn + dt/2*Bn * Un + dt/2*Bm * Um ; F = (I - dt/2*Am) * Xk - Delta; erreur = norm(F); end Xm = Xk;