Bonjour à tous;
J'espère que quelqu'un pourra m'aider... ce n'est pas grand chose.
Voilà je débute en Scilab et je voudrais (déjà) tracer une courbe. Donc premièrement je défini ma fonction:
//Début d'algo
L=6
x=[0.0001491 4.5106912 0.7837151];
function lambda=lm(t);
if modulo(t,L)==0 then
NT=ceil(t/L);
else NT=ceil(t/L)-1;
end;
TNT=L*NT;
r=0;
for j=1:NT
r=r+(1-x(3))^(NT-j+1);
end;
lambda=x(1)*x(2)*(t-TNT+L*r)^(x(2)-1);
endfunction;
t=0:0.1:100;
clf()
plot(t,lm(t))
//Fin d'algo
En executant ce programme, une erreur apparait :
!--error 204
':': Wrong type for argument 2: Scalar expected.
at line 10 of function lm called by :
plot(t,lm(t))
Est-ce quelqu'un peut m'aider? Je pense que cela provient de la variable NT... mais comment faire pour contourner le problème.
Merci d'avance
non ça ne marche pas... en plus, si je ne me trompte pas, pour exprimer un quotient sous scilab on utilise le point et non pas la virgule. Mais merci quand même.
Quelqu'un aurait une autre réponse à me donner?
Oui tout a fait.
Mais l'algorithme ne s'execute pas normalement... logiquement, je devrais obtenir une fonction en dents de sci croissante... Voici un exemple d'une fonction qui se comporte (à peu près de la même façon) mais qui s'execute sous Scilab.
J'ai simplement supprimé la boucle qu'il y a à l'intérieur de la fonction et l'ai remplacé par une somme des termes (1-x(3))... au lieu de la somme des (1-x(3))^(NT-j+1).
Voici le code. Déroule-le et tu comprendra mieux mon problème:
L=6;
x=[0.0001491 4.5106912 0.7837151];
function lambda=lm(t);
if modulo(t,L)==0 then
NT=ceil(t/L);
else NT=ceil(t/L)-1;
end;
TNT=L*NT;
lambda=x(1)*x(2)*(t-TNT+L*NT*(1-x(3)))^(x(2)-1);
endfunction;
t=0:0.1:100;
clf()
plot(t,lm(t))
Merci
je le sais... c'était uniquement pour te montrer le genre de fonction que je souhaite obtenir.
Mon prblème est en relation avec le premier algo posté.
Ce n'est plus un problème d'erreur sous Scilab.
C'est un problème de justesse ou non de l'algorithme et de son implémentation.
Pour t'aider, il nous faut l'énoncé complet.
Oui j'aurais du commencer par là... j'espère ne pas vous avoir fait perdre trop de temps.
Voici la fonction que je souhaiterais tracer:
(t)=t-TN[sub]t[/sub]+L*
Oui j'aurais du commencer par là... j'espère ne pas vous avoir fait perdre trop de temps.
Voici la fonction que je souhaiterais tracer:
Tu ne nous donnes pas tout !
Quelle est l'expression de Nt en fonction de t.
Pourrait-on avoir l'énoncé complet ?
Ah oui désolé:
En fait la partie entière de la variable t.
et:
est l'entier naturel le plus proche de .
où
Je ne comprends pas bien ces définitions.
OK pour Nt.
Mais tu es sûr que T(Nt) = [t] ? Ce n'est pas plutôt = [Nt] ?
Non il s'agit bien de T(NT)=[t]. par exemple si t=7.3 alors T(NT)=7 et mon algo doit calculer t-T(NT)=0.3.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :