Scilab : problème pour définir une fonction

Discutez d'informatique ici !
Godfrey
Membre Naturel
Messages: 48
Enregistré le: 04 Mar 2015, 11:24

Scilab : problème pour définir une fonction

par Godfrey » 17 Mar 2018, 16:06

Bonjour à tous,
J'ai un petit souci avec Scilab 6 qui me rend complètement impuissant.
Je souhaite tracer des points de la courbe représentative d'une fonction.

Je définis alors cette fonction (suite) dans Scinote de la manière suivante :
Code: Tout sélectionner
function s=u(n)
    s=0
    for k=1:n do
        s=s+1/sqrt(k)
    end
endfunction

que j'enregistre sous un fichier.sci
J'exécute ensuite ce programme dans la console et j'entre l'instruction :
Code: Tout sélectionner
n=linspace(1,10,10)
plot2d(n,u(n))

en espérant voir apparaître ma courbe mais je n'obtiens qu'un message d'erreur :
':': Wrong type for argument 3: Real scalar expected.


Il semblerait que ce soit la commande u(n) qui pose problème, ce qui ne m'est jamais arrivé !
Quelque chose m'échappe, sauriez-vous me le dire ?
Merci



infernaleur
Membre Irrationnel
Messages: 1071
Enregistré le: 20 Avr 2017, 18:45

Re: Scilab : problème pour définir une fonction

par infernaleur » 17 Mar 2018, 17:16

Salut, tu as écris ta fonction comme si n c’est un nombre pas un vecteur donc tu peux pas écrire u(linspace)

Godfrey
Membre Naturel
Messages: 48
Enregistré le: 04 Mar 2015, 11:24

Re: Scilab : problème pour définir une fonction

par Godfrey » 17 Mar 2018, 17:21

Merci. Comment faudrait-il rectifier cela pour travailler avec des vecteurs au lieu de définir "manuellement" le vecteur u(n) ?

Godfrey
Membre Naturel
Messages: 48
Enregistré le: 04 Mar 2015, 11:24

Re: Scilab : problème pour définir une fonction

par Godfrey » 17 Mar 2018, 17:27

BINGO : j'ai trouvé comment rectifier le tir en posant y=feval(n,u) puis avec un plot2d(n,y) !
Merci pour la réponse !

infernaleur
Membre Irrationnel
Messages: 1071
Enregistré le: 20 Avr 2017, 18:45

Re: Scilab : problème pour définir une fonction

par infernaleur » 17 Mar 2018, 18:02

Je suis débutant sur scilab je connaissais pas feval, mais sinon j'aurais créer une fonction comme ça personnellement

function u=suite(n)
........u=[0]
........s=0
........for i=1:n
................s=s+1/i
...............u(1,i+1)=s // (c'est-à-dire que je rajoute un terme de la suite dans mon vecteur u)
........end for
end function

Après tu as juste à écrire plot([1:n] , suite(n)) pour le n que tu veux.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 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