Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

Problème compréhension programme scilab

Posté par
math-eux
20-05-13 à 11:53

Bonjour à tous,

Je suis désolée de vous déranger mais j'ai besoin de votre aide pour comprendre un bout de programme scilab. En effet, notre professeur nous a donné une correction, mais je ne comprend pas comment chaque étape est déterminée. Voici le programme:

function ligne()
    x2=-1:0.001:1
    x2=x2'
    [temp1,temp2]=size(x2)
    AB=-0.5*ones(temp1,1)
    clear temp1 temp2
    y2=[-0.5:0.5]
    plot2d(x2,AB)
    
endfunction

Je comprend que ceci dessine la ligne mais je ne vois pas comment chaque etape le fait.
Merci à tous pour votre aide

Posté par
Simpom
re : Problème compréhension programme scilab 21-05-13 à 17:42

Salut.

Je te mets les commentaires :

Citation :

function ligne()
    x2=-1:0.001:1              crée le vecteur -1,-0.999,-0.998,...,0.998,0.999,1
    x2=x2'                     transpose le vecteur (on a une colonne au lieu d'une ligne)
    [temp1,temp2]=size(x2)     obtient les dimensions du vecteur, ici [2001,1]
    AB=-0.5*ones(temp1,1)      crée AB comme matrice de 2001 lignes, 1 colonne, contenant des "-0.5"
    clear temp1 temp2          supprime temp1, temp2
    y2=[-0.5:0.5]              crée le vecteur de deux valeurs [0.5,0.5]
    plot2d(x2,AB)              dessine AB en fct de x2, soit la droite qui va de [-1,-0.5] à [1,-0.5]
endfunction


Cette fonction est strictement la même que :
Citation :

function ligne()
    plot2d([-1,1],[-0.5,-0.5])
endfunction


Sauf qu'elle perd le lecteur...

Posté par
qwydr
re : Problème compréhension programme scilab 22-05-13 à 17:11

Bonjour,

Vu que c'est un problème de compréhension, je vais de mon côté plutôt essayer de t'expliquer le code qu'on t'a donné en corrigé. En première vue, il peut sembler lourd comme le fait remarquer Simpom, mais il est riche d'enseignements (comment récuperer la taille d'un vecteur, créer un vecteur, etc...)


1.function ligne()
2.    x2=-1:0.001:1
3.    x2=x2'
4.    [temp1,temp2]=size(x2)
5.    AB=-0.5*ones(temp1,1)
6.    clear temp1 temp2
7.    y2=[-0.5:0.5]
8.    plot2d(x2,AB)
9.endfunction 


Lignes 1,9 : on déclare une fonction "ligne" qui ne prend rien en argument (parenthèses vides), et ne renvoie rien.
Ligne 2 : on crée un vecteur x2 allant de -1 à 1 avec un pas de 0.001
Ligne 3 : on transpose le vecteur x2
Ligne 4 : on récupère les dimensions (resp. lignes et colonnes) de x2 dans les variables donnés à gauche du signe égal (resp. temp1 et temp2)
Ligne 5 : on déclare un vecteur AB. ones(temp1,1) crée un vecteur de dimensions (temp1,1) où chaque composante vaut 1. AB est donc un vecteur composé de -0.5 sur ses composantes
Ligne 6 : on efface les variable temp1, temp2, de la mémoire courante
Ligne 7 : cf ligne 2
Ligne 8 : On plot en 2 dimensions le vecteur x2 en abscisse VS le vecteur AB en ordonnée, comme on peut le constater, ces deux vecteurs ont la même dimension.

Posté par
qwydr
re : Problème compréhension programme scilab 22-05-13 à 17:12

pardon, j'avais lu en diagonale ton message Simpom, je n'avais pas vu tes commentaires, désolé, ma réponse est inutile

Posté par
math-eux
re : Problème compréhension programme scilab 22-05-13 à 19:12

Merci infiniment pour vos réponses elles m'ont été d'une immense aide !



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !