Scilab

Discutez d'informatique ici !
zork
Membre Rationnel
Messages: 979
Enregistré le: 06 Nov 2011, 15:22

scilab

par zork » 09 Avr 2015, 11:28

Bonjour

J'ai programmé une procédure scilab et je ne comprend pas pourquoi le graphique ne s'affiche pas (commande plot2d). Je n'ai aucune erreur dans ma procédure d'après scilab

voici le programme:
function [T]=generateur(t,lambda);
--> while T($)--> E=grand(1,1,'exp',1/lambda)
--> T=[T T($)+E]
--> end
--> x=[0:5];
--> plot2d(x,T,5);
-->endfunction


merci



Avatar de l’utilisateur
ortollj
Membre Rationnel
Messages: 554
Enregistré le: 13 Mai 2009, 08:28

par ortollj » 11 Avr 2015, 06:29

Bonjour
je ne sais pas trop quel est ton but, tu aurais du expliquer ce que tu voulais faire.
je trouve un peu curieux d'inclure le graphe dans la fonction :doh:

le code ci dessous fonctionne, mais ca n'est peut etre pas ce que tu voulais faire ! :petard2:

Code: Tout sélectionner
function [T]=generateur(t,lambda);
T=[0];
 while T($)<t
 E=grand(1,1,'exp',1/lambda);
 T=[T (T($)+E)];
 end
 x=[1:length(T)];
plot2d(x,T,5);
endfunction

generateur(1,3)
si j'avais su j'aurais pas venu.

zork
Membre Rationnel
Messages: 979
Enregistré le: 06 Nov 2011, 15:22

par zork » 11 Avr 2015, 10:33

je voulais générer un processus de poisson puis avoir son graphe (j'ai trouvé ce programme sur le net)

pourquoi mettre x=[1:length(T)]? d'après ce que j'ai pu voir sur le net généralement on prend un intervalle comme [1:8]

au passage j'en profite pour demander un autre truc:
dans mon premier message que veut dire le symbole $?

Avatar de l’utilisateur
ortollj
Membre Rationnel
Messages: 554
Enregistré le: 13 Mai 2009, 08:28

par ortollj » 11 Avr 2015, 11:59

zork a écrit:je voulais générer un processus de poisson puis avoir son graphe (j'ai trouvé ce programme sur le net)

pourquoi mettre x=[1:length(T)]? d'après ce que j'ai pu voir sur le net généralement on prend un intervalle comme [1:8]

au passage j'en profite pour demander un autre truc:
dans mon premier message que veut dire le symbole $?

T($) veut dire le dernier indice du tableau.
si j'avais su j'aurais pas venu.

zork
Membre Rationnel
Messages: 979
Enregistré le: 06 Nov 2011, 15:22

par zork » 11 Avr 2015, 12:54

ok merci de ton aide

Avatar de l’utilisateur
ortollj
Membre Rationnel
Messages: 554
Enregistré le: 13 Mai 2009, 08:28

par ortollj » 11 Avr 2015, 13:10

zork a écrit:ok merci de ton aide

perso j'aurais plutôt ecrit ca

Code: Tout sélectionner
function [T]=generateur(t,lambda);
T=[grand(1,1,'exp',1/lambda)];
 while T($)<t
 E=grand(1,1,'exp',1/lambda);
 //T=[T (T($)+E)]; je pense que c'est plutôt ca ci dessous  que tu voulais faire ?
 T=[T E];
 end
endfunction
// test
p=generateur(1.7,3)
x=[1:length(p)];
plot2d(x,p,5);


quand tu ne connais pas quelque chose, tape help "truc" dans la console
exemple help $, et clique sur dollar
si j'avais su j'aurais pas venu.

Avatar de l’utilisateur
ortollj
Membre Rationnel
Messages: 554
Enregistré le: 13 Mai 2009, 08:28

par ortollj » 11 Avr 2015, 16:39

ci dessous le code de Christine Heinemann, deja cité dans ce forum
voir tout dernier message
Code: Tout sélectionner
clc; clf;
N = 10000;
lambda = 3;
titre='Loi de Poisson de parametre lambda='+string(lambda)+' par grand - N='+string(N)
x = grand(1,N,"poi", lambda);
y=tabul(x,"i")
subplot(1,2,1)
a=get("current_axes"); a.font_size=1; a.x_location="bottom";
plot2d3(y(:,1), y(:,2)/N, rect=[-0.5,0,10,0.3],style=2)
xtitle(titre, "Classes", "Effectifs par classe normalisees")
subplot(1,2,2)
x=0:10
y=exp(-lambda)*lambda^x ./factorial(x)
a=get("current_axes"); a.font_size=1; a.x_location="bottom";
plot2d3(x, y, rect=[-0.5,0,10,0.3],style=5);
xtitle("Distribution theorique", "Valeurs de k", "P(X=k)")
si j'avais su j'aurais pas venu.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite