Bonjour,
j'ai un petit souci avec les vecteurs de Scilab, problème que les nombreux manuels et documentation sur le net éludent.
J'aimerais calculer lorsque n est un lui-même un vecteur, autrement dit, si n prend toutes les valeurs entre 1 et p, je voudrais obtenir le vecteur . Les boucles for ne permettent pas de prendre en compte un vecteur comme borne supérieure...
Merci pour vos suggestions...
J'aimerais que ne s'expriment que ceux qui connaissent un peu le logiciel..
@fm_31, Scilab permet de générer le vecteur des images à partir de l'image des éléments du vecteur...
Donc je peux très bien remplacer l'argument entier d'une fonction par un vecteur d'entiers...
Bonjour,
A mon avis, si vous essayez d'écrire l'algorithme de l'opération que vous essayez de réaliser, vous comprendrez vite que ça ne correspond pas à grand-chose.
Si j'ai répondu, c'est justement parce que je trouve cette question intéressante et la réponse de fm_31 tout à fait appropriée, bien qu'un peu rapide.
Oui, il se peut que je confonde allègrement algorithme et code (ce n'est pas trop mon domaine)...
En revanche, la réponse de fm_31 n'est pas appropriée car il ne connait visiblement pas Scilab.
On peut tout à fait donner en argument à une fonction un vecteur. Si j'introduis f(x)=x.*x, et que je demande f([1,2,4]), je récupère [1,4,16] par exemple. Si je veux faire une somme, je peux faire une boucle for en incrémentant un compteur... Le souci est là :
ce n'est pas f qui doit recevoir un vecteur c'est la fonction , fonction que je ne sais coder qu'en utilisant une boucle for qui nécessite quand j'écris "for k=1:1:n" que n soit un entier". Je voudrais donc m'affranchir de cette contrainte donc de cette boucle for pour pouvoir prendre comme argument non plus un entier mais un vecteur d'entiers...
J'espère que ma requête est plus claire et que ne se donneront la peine de répondre que ceux qui peuvent m'éclairer...
Bonjour Alexique,
Apparemment vous n'avez pas encore résolu votre problème.
Pour essayer de vous expliquer, je vais écrire l'algorithme de votre exemple.
D'abord on déclare une fonction formule.
Le principe de fa fonction formule est que chaque fois que le programme la rencontre, il remplace les variables par leur valeur et calcule le résultat de la formule.
On a un tableau à une dimension, que vous appelez un vecteur.
La fonction formule est telle que la valeur renvoyée est le carré de la variable.
Pour chaque variable du tableau, on calcule son carré et on remplace la variable par le résultat, en l'occurrence, son carré.
Cette opération sera faite pour le nombre de variable du tableau.
Scilab permet une écriture rapide pour traiter les éléments d'un tableau, les crochets, mais l'opération que vous écrivez ne peut être faite qu'élément par élément, à l'intérieur d'une boucle.
On peut aussi traiter des tableaux à plusieurs dimensions, mais dans tous les cas, le compteur de la boucle qui réalisera le calcul ne peut être qu'un entier.
tu pourrais avoir une première boucle avec i de 1 à la longueur de ton vecteur n, dans chaque itération tu calcules une des sommes, dans l'ordre.
et pour calculer la somme, une boucle avec j de 1 à n(i).
effectivement, c'est ce que je me suis résolu à faire (cf ci-dessous, méthode d'approximation de l'intégrale d'une fonction continue sur [a;b] par la méthode du point milieu par exemple, mais j'ai plusieurs méthodes de Newton-Cotes à tester...). La fonction milieu comporte une boucle et la fonction milbis également qui accepte les vecteurs pour n !
Merci beaucoup à tous en tout cas !
Je ne m'étais pas trop trompé , les indices (de boucles) sont toujours des entiers (ou des énumérés)
Sans aucune prétention car je ne connais effectivement pas Scilab et du coup j'ai décidé de m'y intéresser en espérant ne pas tomber de Charybde en Scylla .
Bonsoir fm_31,
En ce qui me concerne, ta réponse était tout à fait adaptée.
De toute façon, jamais un langage n'a pu remplacer la connaissance et la compréhension d'un problème.
Bonne soirée.
Bonsoir Alexique,
Non, je crois que vous avez bien formulé le problème.
La réaction de fm_31 a été logique, en ce sens que un logiciel ne peut réaliser que ce qui est prévu.
Ce que vous ne savez pas, c'est que quand on fait cette opération que vous citez avec Syslab, il y a une boucle qui s'exécute, sans que vous le sachiez. L'organisation du logiciel est prévu de telle façon que cette opération s'exécute assez rapidement, puisqu'elle est codée en interne, mais elle s'exécute. Ca marche à un niveau, parce que c'est prévu, mais pas à deux niveaux. Rien n'empêcherait d'ailleurs de le prévoir.
Bien sûr, ceci provoquera peut_être des discussions, mais je ne suis pas sûr que cette philosophie soit la bonne.
Si je peux me permettre un conseil, si vous faites ce genre chose ponctuellement, utiliser un langage plus bas niveau, vous comprendrez alors ce que vous faites.
Par contre, si vous voulez vous spécialiser dans cette direction, commencez par utiliser un langage bas niveau et ensuite, suivant vos besoins, vous pourrez utiliser un langage plus évolué.
Bonne soirée.
D'accord, c'est noté !
Je n'ai pas trop le choix du logiciel, il m'est imposé dans mon cours d'intégration numérique... Les Tp et les évaluations se font sur ce logiciel.
Je suis étudiant en mathématiques fondamentales, pas en mathématiques appliquées ni en informatique donc je ne chercherai pas à en savoir plus...
Merci pour tout.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :