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 :

Matrix generation file


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Matrix generation file
    Bonjour,
    quelqu'un sait peut être comment traduire ses lignes en "m.file" matrix, j'en ai besoin pour implémenter dans mon algorithme de calcul



    10 for i = j
    a) aij = { -5 for i = j-1 or i = j +1, bi = -6 + 0.2 i, i, j = 1, …,n;
    0 other cases


    b) aij = 4/[3(i + j + 1)], bi = 4, i – even; bi = -2, i – odd, i, j = 1, …,n;

  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,

    C'est plutôt incompréhensible tes denieres lignes... Par exemple que veut dire la première ligne :
    10 for i=j
    ?

    Et c'est pareil pour le reste, peux-tu traduire?

    Et as-tu essayer de coder quelque chose? Ça ressemble a une imbrication de boucle for et de condition if? Peux-tu nous montrer ton code?

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    dans mon exercice je dois resoudre un system des equations lineaires utilisant l'algorithme de Gauss. j'ai fini l'algorithme, mais mon problème a traduire les equations en des matrice et vecteurs !!!

    voila mon algorithme:
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    function x=ppGE(A,b)
    %
    % Solves Ax=b by Gaussian elimination with partial pivoting.
    %
    % Input:
    % Nonsingular square matrix A of order n
    % Vector b of order n
    %
    % Output:
    % Solution vector x
    %
    % Check to make sure that the matrix A is square, and establish order n
    %
    tol=1e-15;
    [m,n] = size(A);
    if m ~=n
        error('The matrix is not square.')
    end
    %
    % Perform Gaussian elimination
    %
    for k=1:n-1
        % find max pivot p and its index r relative to diagonal in column k
        [p,r] = max(abs(A(k:n,k)));
        % check pivot size
        if abs(p) <= tol;
            fprintf('pivot = %f\n', p);
            error('pivot below tolerance');
        end
        % index of row with maximal element
        q=k+r-1;
        % interchange rows k and q of A and b
        A([k,q],:) = A([q,k],:);
        b([k,q]) = b([q,k]);
        for i=k+1:n
            m=A(i,k)/A(k,k);
            for j=k+1:n
                A(i,j)=A(i,j)-m*A(k,j);
            end
            b(i) = b(i)-m*b(k);
        end
    end
    %
    % Apply backwards substitution to get solution x
    %
    for i=n:-1:1
        sum=0;
        for j=i+1:n
            sum = sum + A(i,j)*x(j);
        end
        x(i) = (b(i)-sum)/A(i,i);
    end
    Images attachées Images attachées  

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Il suffit d'initialiser une matrice (avec des 0 par exemple) et de faire une double ou tu remplis les valeurs. Ppour le 1er système, ca donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    n= 10; %dimension
    A= zeros(n,n); % commence avec des 0 partout
    for i=1:n; for j=1:n
    if i==j; A(i,j)= 10;
    elseif abs(i-j)==1; A(i,j) = -5
    end;end
     
    B= -6+0.2*(1:n);

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci beaucoups, comment je fait pour la deuxième, je comprend pas comment faire pour b

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    mod(x,2) te permet de savoir si un nombre est pair; après il suffit d'adapter la méthode

Discussions similaires

  1. [Castor] generations des classes et Binding file pour castor
    Par vanesa dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 28/07/2009, 15h40
  2. Temp PDF file has not been generated
    Par zxr96 dans le forum XMLRAD
    Réponses: 5
    Dernier message: 21/03/2008, 10h53
  3. Réponses: 6
    Dernier message: 30/07/2003, 15h59

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