Résolution des système linéaire sur matlab
Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

Résolution des système linéaire sur matlab



  1. #1
    invite9f95f6e7

    Résolution des système linéaire sur matlab


    ------

    Bonsoir
    je viens de lire le cours de dérivation numérique et je veux l appliquer sur matlab ( je suis débutante en matlab)
    prenos cet exemple que j'ai fait manuellement :
    soit f et c deux fonctions constantes sur [0,1] on cherche une fonction U(x) de classe C² sur [0,1]
    on a :
    -U''(x)+C(x) *U(x)=f(x) **
    U(0)=0=U0
    U(1)=0=(n+1)
    l equation ** est un système continue pour résoudre cette equation on utilise la méthode de difference finies ,donc on subdivise [0,1] en posant
    x0=0
    x1=x0+h
    x2=x1+h
    xj=x(j-1) + h
    x(n+1)=1=b
    h=b-a /n+1 =1/ n+1
    on cherche à déterminer U(xj)=Uj
    on sait que U(x0)=U0=0
    U(xn+1) =Un+1 =0
    on approxime U" (x) par U"(x)= [U(x+h)-2U(x)+ U(x-h)] / h²
    d ou U"(xj)=[U(xj+h)-2U(xj)+ U(xj-h)] / h²
    =[Uj+1-2Uj+ Uj-1] / h²
    d ou ** est equivalent à
    -U(j+1)+2Uj-U(j-1) /h² +Cj Uj =fj
    avec fj=f(xj)
    C(xj)=Cj
    finalement on obtient :
    -Uk-1+ (2+h² Ck )Uk-Uk+1=fk*k² pour k=j
    on utilisant la notation matricielle on obtient:
    A U = f
    avec u1
    u2
    U= .
    .
    Un
    et f1
    f2
    f= .
    fn

    2+h² 1 -1 0 0
    0 -1 2+h²C2 -1 0
    A=

    0 -1 2+h²C3

    d ou j ai transformé uen equation differentielle en un système algebrique linéaire
    AU=f
    si A est inversible alors U= A^-1 *f

    mais j arrive pas à appliquer cette méthode sur matlab ):
    est ce qu il y a quelqu un qui se sent l ame charitable ...pour m aider et me donner la solution sous matlab ( je vais bien sur essayer de la décoder et la comprendre ..)
    merci d avance de m avoir aidée
    PS: excusez moi si les matrices ne sont pas claires mais je ne sais pas comment les copier S:

    -----

  2. #2
    Bruno

    Re : resolution des système linéaire sur matlab

    Bonjour,

    Il va falloir faire un effort sur les matrices car en l'état c'est illisible. Essayez d'écrire une matrice de cette façon (syntaxe Matlab): [1 0 0; 0 1 0; 0 0 1] (le ";" correspond au passage à la ligne suivante, deux colonnes étant séparées par une espace).

  3. #3
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    salut
    concerant les matrices que j'ai déjà ecris :
    U=[ u1 u2 u3 ............un ]
    F=[f1*h² f2*h² f3*h²........fn*h²]
    A=[2+C1*h² -1 0.......... 0;-1 2+C2*h² -1 0.......0;.................... ....;0..............-1 2+Cn*h² -1]

    et on a : AU=F

    merci d avance de m avoir aidée

  4. #4
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    s'il vous plait j 'ai besoin d un coup de pousse pour avancer un peu !
    je suis complètement bloquée

  5. A voir en vidéo sur Futura
  6. #5
    invite9c7554e3

    Re : Résolution des système linéaire sur matlab

    si tu as [A] une matrice et {x} un vecteur inconnu et {b} un second membre il faut faire ceci sous matlab pour résoudre ce système :

    x=A\b;

  7. #6
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    Bonjour
    merci de m avoir répondue mais ce n est pas ca que je cherche
    je veux le programme qui transforme une equation differentielle en un système linéaire (genre AX=F)
    merci d avance

  8. #7
    invite9c7554e3

    Re : Résolution des système linéaire sur matlab

    ça ne doit pas exister ceci c'est à toi de faire la transformation

  9. #8
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    Bonsoir
    merci pour la réponse
    mais j ai pas bien saisi
    dois je faire la transformation manuellement , et il n y a pas de programme sur matlab pour pouvoir la faire
    j'ai un autre souci
    je veux le programme qui calcul les equations differentielles de 2éme,3éem et 4 éme degré sous matlab
    je sais faire ca manuellement mais pas sur matlab (car je suis débutante en matlab )
    merci de m avoir aidée
    en fait j ai juste besoin d un coup de pousse pour avancer un peu car car fait une semaine que je suis bloquée ):

  10. #9
    Paraboloide_Hyperbolique

    Re : Résolution des système linéaire sur matlab

    Bonjour,

    Je reprend votre schéma numérique:



    Sous Matlab, on peut écrire la matrice de différentiation seconde qui est carré triadiagonale avec les diagonales constantes:



    A cette matrice vous ajoutez la matrice diagonale contenant les termes et vous avez votre opérateur différentiel discret en additionnant les matrices A et D.

    On peut construire facilement les matrices A et D avec la commande "diag".

    Il vous reste ensuite à implémenter les conditions frontières sur votre matrice finale et à résoudre.

  11. #10
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    merci pour la réponse

  12. #11
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    Bonsoir

    je suis vraiment bloquée ...j ai besoin juste d un coup de pousse pour avancer

    je veux résoudre -U"(x)+4x²U(x)=2exp(-x²)
    avec U(a)=alfa , U(b)=beta; a=0 ,b=1, alfa=1,beta=1/e

    mon code:

    %resolution de l equation : -U’’(x)+c(x)U(x)=f(x) en (a,b)
    %avec U(a)=’alfa et U(b)=beta ‘
    n = input ('le nombre des points est:\n ' ) ;
    a = input ('veuillez donner l extremite gauche de l intervalle:\n') ;
    b = input('veuillez donner l extremite droite de l intervalle:\n') ;
    alfa = input ('veuillez donner la valeur de la solution de u(a):\n') ;
    beta = input ('veuillez donner la valeur de la solution de u(b):\n') ;
    h = (b-a)/(n+1) ;
    x = a+h :h :b-h ;
    %construction de la matrice A et du second membre
    A=diag((2+4*(x^2)*(h^1))*ones( n,1))-diag(ones(n-1,1),1)-diag(ones(n-1,1),-1);
    F=2*exp(-x^2)*h^2;
    F(1)=F(1)+alfa;
    F(n)=F(n)+beta;
    %Resolution du systeme
    %ecriture de la solution
    sol=inv(A)*F';

    %dessin de la solution approchee et exacte
    subplot(2,2,1)
    fplot(' exp(-x^2) ',[a,b])
    hold on
    subplot(2,2,2)
    plot(x,sol)
    hold off

    il faut vous signaler que je suis encore débutante en matlab ! je crois que l erreur est dans la matrice A ,je ne sais pas comment utiliser la variable x ... meme lorsque j ai tracé la figure ca ne m a pas donnée des solutions qui s pprcohent
    mercid avance

  13. #12
    Paraboloide_Hyperbolique

    Re : Résolution des système linéaire sur matlab

    Vous n'avez pas implémenté les conditions frontières dans la matrice A.

    Par ailleurs, je vous recommande de taper "sol = A\b" plutôt que "sol = inv(A)*b". Le premier code est plus rapide que le second car il ne calcule pas explicitement l'inverse de la matrice.

  14. #13
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    Bonjour
    merci infiniment de m avoir répondue


    en fiat j ai refait mon code :
    mais mon probème maintenant c est de tracer plusieurs courbe sur la meme fenetre pour n=2, 5,9 ...pour comparer la solution approchée et la soltion exacte
    mais je ne sais pas quelle commande dois je utiliser

  15. #14
    Paraboloide_Hyperbolique

    Re : Résolution des système linéaire sur matlab

    De rien

    Quant à votre dernière question:

    Plusieur courbes superposées:
    Ajoutez les arguments à la commande "plot".

    Exemple:

    % Graphes de sin(x) et cos(x)
    plot(x, sin(x), x, cos(x))

    Plusieurs graphes séparés dans la même fenêtre:
    Employez la commande "subplot". Tapez "help subplot" pour avoir les détails concernant son utilisation.
    Dernière modification par Paraboloide_Hyperbolique ; 01/08/2012 à 20h08.

  16. #15
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    Bonsoir
    merci pour la réponse mais ce n est pas ca que je veux ..
    je veux tracer des courbes par exemple pour n=2, 40 , 100....
    quand j exècute mon code et je donne une valeur à n ( n=9 par exemple) j arrive juste à tracer la courbe de la solution approchée pour n=9 et la courbe de la colution exacte( deux courbes supperposées) ca je sais le faire
    mais je veux tracer dans 1 meme graphe la solution approchée pour plusieurs n ( n=3,9,8....) ce n est pas seulement une seule valeur de n
    dois je modifier mon code? ajouter une boucle quelque part? ou ajouter des commandes ??
    je suis vraiment bloquée ): ca fait 2 jours que je cherche la solution
    merci d avance

  17. #16
    Paraboloide_Hyperbolique

    Re : Résolution des système linéaire sur matlab

    Bonjour,

    Ok, j'ai compris votre problème. Pour cela il suffit de faire une boucle et d'utilser les commandes "hold on" et "hold off"

    hold on;

    for n = ...

    plot(...);

    end

    hold off;

  18. #17
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    Bonjour
    merci de m avoir répondue
    mais dans quelle partie de mon code dois je ajouter la boucle for ?je ne sais pas comment faire !
    merci de m avoir aidée

  19. #18
    Paraboloide_Hyperbolique

    Re : Résolution des système linéaire sur matlab

    Bonsoir,

    Content de vous avoir été utile

    Comme vous devez résoudre différents systèmes pour différents n, vous devrez boucler sur n pour trouver les différentes solutions approchées. Vous pouvez alors directement les afficher avec la commande "plot" au sein de la même boucle; après la résolution du nème système.

    Je vous recommande alors d'employer après la commande "plot" la commande "drawnow". Il arrive en effet, qu'au sein d'une boucle impliquant de longs calculs, l'affichage graphique ne se fasse qu'une fois la boucle terminée (cela dépend des performances de votre ordinateur). La commande "drawnow" force Matlab à afficher les graphiques même en cas de calculs longs.

    Vous pouvez aussi garder en mémoire les différentes solutions et les afficher ensuite dans une boucle séparée contenant la commande "plot", comme décrit dans mon dernier post.

  20. #19
    invite9f95f6e7

    Re : Résolution des système linéaire sur matlab

    Bonsoir
    je me noie je n arrive pas à ecrire correctement mon code ...j ai compris le principe mais comme je suis débutante je suis incapable de modifier mon code ...en tous cas je vais reéssayer !
    merci

  21. #20
    Paraboloide_Hyperbolique

    Re : Résolution des système linéaire sur matlab

    Résoudre pour la première fois une équation différentielle par calcul numérique avec un langage que l'on découvre n'est pas une sinécure. Cela ira de mieux en mieux avec l'expérience.

    Si vous le souhaitez, je peux vous aider à corriger votre code...

Discussions similaires

  1. resolution systeme non lineaire
    Par invite9c7554e3 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 17/07/2011, 16h42
  2. Problème fsolve MATLAB résolution système non linéaire
    Par invite9b92ae3d dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 10/05/2011, 18h50
  3. Résolution de systeme linéaire
    Par invite4abe9189 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 25/03/2009, 20h29
  4. algèbre linéaire: résolution de système.
    Par invitecc6d6d94 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 12/03/2009, 17h18
  5. résolution système linéaire
    Par inviteb5a11216 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 21/05/2008, 01h53