Programme scilab
Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
-
math03
- Messages: 6
- Enregistré le: 22 Avr 2013, 07:58
-
par math03 » 22 Avr 2013, 08:07
Bonjour, je travaille actuellement sur la création d'un programme sur scilab.
Ce programme consiste à partir de plusieurs entrées données de récupérer au final une sortie.
Ce programme doit comporter plusieurs boucles vu le problème donné.
Cependant je recontre plusieurs problèmes, notamment avec l'utilisation de scilab.
Mon premier problème est que scilab ne reconnait pas mes boucles, il l'est reconnaissait dans le passé.
Voici une de mes boucles :
Tomax=300//MPa
Alpha=0.122517
deltaZ=0.005//m
A=1.749D+10
B=4.279D+09
D=Tomax
To(1)=Alpha*Tomax
for z=1:0.005:-1.2
To(z+deltaZ/2)=A*(z+deltaZ/2)^3+B*(z+deltaZ/2)^2+D
end
Le problème doit surement venir d'une mauvaise syntaxe ou d'une mauvaise compréhension de ma part.
Pouvez-vous m'éclairer s'il vous plait ?
Merci
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Avr 2013, 10:26
Bonjour,
A votre avis, le programme devra ajouter combien de fois 0.005 à 1 pour arriver à -1.2 ?
-
math03
- Messages: 6
- Enregistré le: 22 Avr 2013, 07:58
-
par math03 » 22 Avr 2013, 12:21
je viens de rajouter un moins sur le pas mais il me trouve tout de même une erreur à la ligne du "end"
-->To(1)=Alpha*Tomax
To =
36.7551
-->for z=1:-0.005:-1.2
--> To(z+deltaZ/2)=A*(z+deltaZ/2)^3+B*(z+deltaZ/2)^2+D
-->end
To =
2.192D+10
To(z+deltaZ/2)=A*(z+deltaZ/2)^3+B*(z+deltaZ/2)^2+D
!--error 21
Index invalide.
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Avr 2013, 12:33
Il est bien précisé : index invalide.
Il ne peut s'agir que de l'index de To(...)
Comment est défini To(...), en d'autres termes "c'est quoi" ?
Que vaut (z+deltaZ/2) suivant les différentes valeurs de z ?
Vous écrirez aussi l'algorithme, s'il vous plait.
-
math03
- Messages: 6
- Enregistré le: 22 Avr 2013, 07:58
-
par math03 » 22 Avr 2013, 12:39
mon problème est que je ne peux pas définir "To(0)" puisque il m'indique une erreur quand j'initialise en z=0.
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Avr 2013, 12:52
Je vous demande seulement de m'expliquer avec des mots français,
Ca pourrait être T0() est une bicyclette possédant 25 roues, un grand nez et 3 places assises.
Ca ce n'est que la première question. Le deux autres, vous pouvez y répondre en même temps.
-
math03
- Messages: 6
- Enregistré le: 22 Avr 2013, 07:58
-
par math03 » 22 Avr 2013, 13:18
To(...) est la condition initiale de To(z+deltaZ/2).
En fonction de mon pas de temps, z va s'incrémenter, aved deltaZ une constante imposée par le problème.
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Avr 2013, 13:43
To(...) n'est certainement pas une condition.
Apparemment, c'est un tableau.
Par contre la syntaxe laisse penser que ce serait une fonction.
Donc, je réitère la question : c'est quoi To(...).
Ce qui s'incrémente, c'est un index.
Si vous écriviez l'algorithme, on y arriverait un peu plus vite.
-
math03
- Messages: 6
- Enregistré le: 22 Avr 2013, 07:58
-
par math03 » 22 Avr 2013, 13:58
Mais c'est à moi de faire l'algorithme, donc il n'est pas fait, je vois pas comment je pourrais vous l'écrire.
To(1) est ma condition initiale
et To(z+deltaZ/2) est ma fonction avec mon z variable
je vois vraiment pas ou vous voulez en venir
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Avr 2013, 14:59
D'abord, on algorithme, c'est une description en français d'une opération qu'on doit réaliser, comme une recette de cuisine. En l'occurrence, c'est la machine qui doit le réaliser. L'écriture du code viendra après, lorsque l'algorithme sera écrit.
To() est une fonction, un tableau, une constante, une variable, en informatique, c'est à peu près toutes ce qui existe.
Si To(...) est une fonction, alors elle n'a rien à faire à gauche du signe '='.
Et, si c'est une fonction où est-elle décrite ?
J'essaye simplement de vous aider.
D'ailleurs, je n'imagine pas que l'on puisse écrire un programme avec un langage évolué comme Scilab sans avoir écrit un algorithme détaillé.
-
math03
- Messages: 6
- Enregistré le: 22 Avr 2013, 07:58
-
par math03 » 22 Avr 2013, 15:11
Alors :
Pour z variant de 0 à 0.2 avec un pas de 0.005
je veux calculer les différentes valeurs de la fonction To(z+deltaZ/2)=A*(z+deltaZ/2)^3+B*(z+deltaZ/2)^2+D
avec A=1.749D+10
B=4.279D+09
D=Tomax
Tomax=300
deltaZ=0.005
Alpha=0.122517
et comme condition initiale To(0)=Alpha*Tomax
Je ne sais pas si ce que vous attendiez.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 15 invités