IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

methode gauss seidel non linéaire


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut methode gauss seidel non linéaire
    Salut à tous,
    heureux d'être membre parmi vous,

    je suis un étudiant en première année mathématiques appliquées, j'ai un projet à faire , il s'agit de la comparaison des méthodes itératives dans la recherche de la solution de f(x)=0, avec f une fonction non linéaire,
    en fait, j'ai commencé par choisir la fonction suivante
    f(x)=x"+sin(x)=0 sur un intervalle [0 T] avec x dépends de t et x(0)=pi/2 et x(T)=0.

    j'ai commencer à résoudre ce problème par la méthode de newton et de le programmer en matlab j'ai trouvé des résultats,
    puis j'ai essayé de le résoudre par la méthode de gauss seidel non linéaire
    j'ai programmé ceci mais j'arrive pas à trouver de bon résultats je ne sais pas si le problème est dans le code ou non?

    voici le code et merci pour votre aide

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    % Illustration of Gauss-Seidel iteration with relaxation
    %
    % NON-LINEAR SYSTEM
    % f(u)= u"(x) + sin(u(x))=0 x in [0 1]
    % u(0)=pi/2 and u(1)=0 ;
    % discretization with finit difference
    % f_i(u1,u2,..,un) = (u(i+1)+u(i-1)-2*u(i))/h^2+ sin(u(i))=0 for i=1..n
    % with n number of points
    %
    % The goal is to determine a value of u(i) for i=1..n
    % we will take an u(i) out of f_i(u1,u2,..,un)
    %
    % u(i)= g(u(i))=(u(i+1)+u(i-1))/2+(2/h^2)*sin(u(i));
    %
    clear all;
    clc;
    T=10; % the interval [0 T]
    h=.005; % number of points
    n=T/h;
    w=0.1; %relaxation factor
    for i=1:n
        u(i)=.1;
        %u=rand(n,1);
    end
    for iter=1:30
        temp(1)=(u(2)+pi/2)/2+(h^2/2)*sin(u(1));
        u(1) = u(1) + w*(temp(1) - u(1));
        for i=2:n-1
            temp(i)=(u(i+1)+ u(i-1))/2+(h^2/2)*sin(u(i));
            u(i) = u(i) + w*(temp(i) - u(i));
        end
        temp(n) = ( u(n-1))/2+(h^2/2)*sin(u(n));
        u(n) = u(n) + w*(temp(n) - u(n));
    end
    for i=1:n
        t(i)=i*h;
    end
    plot(t,u);grid on;
    très cordialement,

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    quand tu écris f(x)=x"+sin(x), qu'est ce que x''? la dérivée seconde? x est une fonction?

    Aurais-tu un lien qui décrit brièvement la méthode gauss seidel pour un système non-linéaire? (ou peut-être pourrais-tu décrire la méthode?)
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut méthode gauss seidel non lineaire
    Salut ,

    x est une fonction de t (variable t) et f(x)=f(x(t))
    x" : dérivée seconde
    en fait, j'ai fait une discrétisation par différences finies de l'équation f(x)=0
    ce qui donne sachant que x(i)=x(t(i)):

    f(x(i))= (x(i+1)+x(i-1)-2*x(i))/h^2 + sin(x(i))=0;

    avec h le pas de discrétisation et i=1..N, N nombre de points dans l'intervalle [0 T] en prenant x(0)=pi/2 et x(N+1)=0.
    donc on aura N équations à résoudre.

    voici un lien qui décrit la méthode gauss seidel pour un système non-linéaire

    merci
    Images attachées Images attachées

Discussions similaires

  1. Algorithme de Gauss-Newton et regression non linéaire
    Par Uranne-jimmy dans le forum Mathématiques
    Réponses: 17
    Dernier message: 09/01/2015, 09h14
  2. [Perf] Performances non linéaires
    Par esteban dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/11/2006, 22h56
  3. decomposition LU, gauss-seidel, implementation lorsqu il y a des 0 sur la diagonale
    Par le_voisin dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 08/09/2006, 23h12
  4. [maths] Méthode de Gauss-Seidel
    Par al85 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 20/05/2006, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo