Méthode de quasi-newton avec matlab
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Méthode de quasi-newton avec matlab



  1. #1
    rogeg

    Méthode de quasi-newton avec matlab


    ------

    Bonjour j'ai essayé de résoudre cette équation : f(X)=X^3-0.7 avec Xo=-2 à l'aide de la methode de Newton sur le logiciel matlab.
    mais comme la dérivée passe par zéro impossible de résoudre avec ce programme

    méthode de Newton
    clear all
    close all
    %INTERVALLE DE RECHERCHE
    Xmin=-2;
    Xmax=5;
    Ymin=Hx(Xmin);%"appel du sous-programme HX"
    Ymax=Hx(Xmax);%"qui calule f(x)/f'(x)"
    Niter=20; %"nombre d'itérations"
    r=zeros(Niter,1);
    r(1)=Xmin;
    for iter=2:Niter
    r(iter)=r(iter-1)-Hx(r(iter-1));
    if (abs(r(iter)-r(iter-1))<=10^-6)
    racine=r(iter)
    break
    end
    end
    disp(['la racine vaut ' num2str(racine)])
    disp(['la valeur de f(racine) vaut ' num2str(Fx(racine))])
    disp(['le nombre d itérations ' num2str(iter)])
    """""""""""""""""""""""""""""" """""""""""""""""""""""""""""" """"""""""""""""

    %Calcul de la fonction Hx
    % défini par f(x)/f'(x)
    function H=Hx(x)
    H=(x^3-0.7)/(3x^2);
    """""""""""""""""""""""""""""" """""""""""""""""""""""""""""" """"""""""""""""

    On ma conseillé d'utiliser la méthode de quasi-newton que je ne connai pas, quelqu'un peut il m'aider?
    merci d'avance

    -----

  2. #2
    Mecano

    Re : Méthode de quasi-newton avec matlab

    Bonjour.

    Tu peux essayer avec la méthode de newton mais il faut supposer que la solution puisse être un nombre complexe de la forme :

    En vba sur excel

    Sub Bouton1_QuandClic()
    Dim A, B, C, N, Pi As Double
    Dim F1, F2 As Double
    Dim Rho, Teta As Double
    Dim AA(2, 2), X(2), Eps0, Eps As Double, Iter, Iter0 As Integer

    Pi = 4 * Atn(1)
    Eps0 = 0.0000000000001
    Iter0 = 10000

    'Initialisation des constantes
    Sheets("Feuil1").Select
    A = Range("B1").Value
    B = Range("B2").Value
    C = Range("B3").Value
    N = Range("B4").Value

    ' Initialisation des solutions
    Rho = Range("B8").Value
    Teta = Pi / 4

    Iter = 0
    Continue:
    Iter = Iter + 1

    ' Evaluation de l'écart des solutions
    F1 = A * (Rho ^ N) * Cos(N * Teta) + B * Rho * Cos(Teta) + C
    F2 = A * (Rho ^ N) * Sin(N * Teta) + B * Rho * Sin(Teta)

    AA(1, 1) = N * A * (Rho ^ (N - 1)) * Cos(N * Teta) + B * Cos(Teta)
    AA(1, 2) = -(N * A * (Rho ^ N) * Sin(N * Teta) + B * Rho * Sin(Teta))
    AA(2, 1) = N * A * (Rho ^ (N - 1)) * Sin(N * Teta) + B * Sin(Teta)
    AA(2, 2) = N * A * (Rho ^ N) * Cos(N * Teta) + B * Rho * Cos(Teta)

    X(2) = (F1 / AA(1, 1) - F2 / AA(2, 1)) / (AA(1, 2) / AA(1, 1) - AA(2, 2) / AA(2, 1))
    X(1) = (F1 / AA(1, 2) - F2 / AA(2, 2)) / (AA(1, 1) / AA(1, 2) - AA(2, 1) / AA(2, 2))

    ' Meilleure approximation des solutions
    Rho = Abs(Rho - X(1))
    Teta = Teta - X(2)

    Eps = Sqr(X(1) * X(1) + X(2) * X(2))
    If Iter > Iter0 Then
    MsgBox "Pas de convergence aprés " & Iter & " itérations" & Chr(13) & Chr(13) & "H=" & H & " N=" & N & " Eps=" & Eps
    Exit Sub
    End If
    If Eps > Eps0 Then GoTo Continue
    MsgBox "Rho=" & Rho & " Teta/pi=" & Teta / Pi
    MsgBox "Partie réelle=" & Int(Rho * Cos(Teta) / Eps + 0.5) * Eps & " Partie imaginaire=" & Int(Rho * Sin(Teta) / Eps + 0.5) * Eps & Chr(13) & Chr(13) & " Eps=" & Eps & " Iter=" & Iter

    Range("B5") = Int(Rho * Cos(Teta) / Eps + 0.5) * Eps
    Range("B6") = Int( * Sin(Teta) / Eps + 0.5) * Eps
    End Sub

    Après avoir réajusté Rho à 0.1 (>0 proche du premier résultat)

    Résultat de ta fonction : x=0,887904001742601

    Bonne chance

Discussions similaires

  1. Méthode de Newton
    Par invited29b5ce9 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 19/06/2007, 15h06
  2. Methode de Newton avec un Jacobien nul ?
    Par invite4ef352d8 dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 20/03/2006, 16h54
  3. Quand la méthode de Newton échoue ...
    Par Bleyblue dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 18/01/2006, 14h35
  4. Méthode de Newton/Méthode de Bairstow
    Par indian58 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 11/11/2005, 08h47
  5. Somme et méthode de Newton
    Par Quinto dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 12/06/2004, 10h14