Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

Boucle for scilab

Posté par
nikob88
20-04-12 à 15:18

Bonjour,

J'essaye de procéder à une itération sur scilab,sans réussite. Voici ce que je voudrais faire avec une boucle:

clear all
clc
x=0.01;
e=0.01;
Esoleil=400;
alpha=0.5;
epsi=0.26;
Tint=0;
Text=0;
Tcarro=(Tint+Text)/2;
Te=273;
hint=4;
hext=4;
k=46;
sigma=5.67E-8;

phiint=alpha*epsi*sigma*Te^4;
phiemis=epsi*sigma*Tcarro^4;
phis=alpha*Esoleil;
B=(hext*Text+phiint+phis-2*phiemis-hint*((e/k)*(-phis-hext*Text+phiemis)-Tint))*(1/(hext+(hint*hext*e/k)+hint));
A=(-phis-hext*(Text-B)+phiemis)/k;

T1=A*x+B

Tcarro=T1+273.15
phiint=alpha*epsi*sigma*Te^4;
phiemis=epsi*sigma*Tcarro^4;
phis=alpha*Esoleil;
B=(hext*Text+phiint+phis-2*phiemis-hint*((e/k)*(-phis-hext*Text+phiemis)-Tint))*(1/(hext+(hint*hext*e/k)+hint));
A=(-phis-hext*(Text-B)+phiemis)/k;

T2=A*x+B

Tcarro=T2+273.15
phiint=alpha*epsi*sigma*Te^4;
phiemis=epsi*sigma*Tcarro^4;
phis=alpha*Esoleil;
B=(hext*Text+phiint+phis-2*phiemis-hint*((e/k)*(-phis-hext*Text+phiemis)-Tint))*(1/(hext+(hint*hext*e/k)+hint));
A=(-phis-hext*(Text-B)+phiemis)/k;

T3=A*x+B


disp ("Température parois soumise au rayonnement solaire: "+string(T3)+"°C")

J'ai essayé de faire une boucle for, mais scilab croit que T est une fonction. or ce que je voudrais faire, est de varier la nom de la fonction suivant n.

T(0)=Tcarro;
for n=1:10
    Tcarro=T(n-1);
phiint=alpha*epsi*sigma*Te^4;
phiemis=epsi*sigma*Tcarro^4;
phis=alpha*Esoleil;
B=(hext*Text+phiint+phis-2*phiemis-hint*((e/k)*(-phis-hext*Text+phiemis)-Tint))*(1/(hext+(hint*hext*e/k)+hint));
A=(-phis-hext*(Text-B)+phiemis)/k;

T(n)=A*x+B;
end


Merci de votre aide

Posté par
Skep
re : Boucle for scilab 20-04-12 à 19:53

un programme sans commentaire est INCOMPREHENSIBLE ...
bref sur scilab la boucle for a pour syntaxe :
for A=1incrémentation):X(n'importe)
t'as un menu aide pour les syntaxes

Posté par
nikob88
re : Boucle for scilab 21-04-12 à 15:38

Dsl de ne pas avoir été assez précis dans ma question.

En fait, j essaye de faire une boucle qui me permettrait de faire une itération. Donc a chaque nouveau calcul, j'utilise le résultat du calcul précédent pour affiner mon résultat.

Dans ma boucle for, j'ai déjà fait ce que vous dites, le problème est plus sur la fonction T, qui en fait n'en est pas une, mais une variable.

J'espere avoir été plus précis, merci de votre réponse en tout cas.

Posté par
Skep
re : Boucle for scilab 21-04-12 à 16:10

lorsque vous mettez "Tcarro=T(n-1)" vous voulez faire une multiplication ou demander à scilab Tn-1 car cela est différent
dans le deuxième cas vous utilisez un vecteur .
Enfin je n'ai pas trop compris votre demande en fait : votre boucle for sert à quoi exactement ? Une boucle for est toujours faite pour faire plusieurs itérations (répétitions d'une même action)
Je pense que je peux vous aider mais explicitez d'avantage ce que vous recherchez

Posté par
nikob88
re : Boucle for scilab 22-04-12 à 11:32

En fait je demande à scilab de faire Tn-1.

En fait le n de la boucle for, c'est le nombre d'itération, qui permet de calculer n fois le T pour que le résultat converge vers une valeur.
Alors peut-être qu'il faut utiliser autre chose que cette boucle for, mais comme je débute sur scilab, je n'y connais pas grand chose.

Le problème principal que je rencontre est surtout je pense sur le Tn-1. Si vous dites qu'il faut utiliser un vecteur, alors j'aurai un peu besoin d'aide

En tout cas, merci pour votre aide.

Posté par
Skep
re : Boucle for scilab 22-04-12 à 15:32

Donc si j'ai bien compris cette boucle for sert à donner un resultat avec une meilleure precision à chaque iterations

Pour schematiser : 2.67 =>(boucle for) =2.667 =>(boucle for)2.6667
Dans ce cas là une possibilité est :
Tu initialises ta premiere valeur comme tu l'as fait mais scilab commence le rang par 1 de memoire
Donc on a
T(1)=Tcarro
for n=2:11
Tcarro=T(n-1)
..
End

Ou
T(1)=Tcarro
For n=2:11
...
Tcarro=T(n)
End
C'est pareil que l'autre

Test ça et dis moi si c'est ça que tu veux

Posté par
nikob88
re : Boucle for scilab 23-04-12 à 09:14

Merci beaucoup skep, le programme fonctionne.

Bonne journée

Posté par
Skep
re : Boucle for scilab 23-04-12 à 18:21

Ça roule



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !