Scilab equation de la chaleur
evasion87
Messages postés
20
Statut
Membre
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour;
j'essai de programmer l'équation de la chaleur (schéma explicite) dans scilab et ça bloque sur une ligne et je trouve pas quoi faire!! j'ai beau essayé de résoudre le problème j'y arrive pas!
voila la programme si quelqu'un s'y connait un petit peu en scilab, l'erreur se trouve sur la ligne 43 en gras ci dessous (multiplication incohérentes)
M=input("Donner le nombre de discrétisation de x");
N=input("Donner le nbre de déscritisation de t ");
alpha =input ("Donnez la diffusité thermique (alpha>0) :");
k =1/N;
h =1/M;
a =(alpha*k)/(h^2);
//test sur la stablité du shéma
while (a>0.5) then
disp("shcéma instable")
M=input("donner le nombre de points de discrétisation de x");
N=input("donner le nombre de points de discrétisation de t ");
alpha =input ("donnez la diffusité thermique (alpha>0) :");
k =1/N;
h =1/M;
a =(alpha*k)/(h^2);
end
//création de la matrice B
B =zeros(M-1,M-1);
x =zeros(M,1);
for i=1:M-1
B(i+1,i)=a;
B(i,i+1)=a;
B(i,i)=1-2*a;
end
B(M-1,M-1)=1-2*a;
for i=1 : M+1
x(i) =(i-1)*h;
end
//condition initiale sur x
for i=1:M
T(i,1)=sin((%pi)*x(i));
end
T(M+1,1)=0;
//Conditions aux limites sur t
for i=1:N+1
T(1,i)=0;
T(M+1,i)=0;
end
//Calcul de la température à chaque instant et en tous les points
for j=2:N+1
T(2:M,j)=B*T(2:M,j-1);
end
for i=2:N
plot2d(x,T(:,i),i);
end
j'essai de programmer l'équation de la chaleur (schéma explicite) dans scilab et ça bloque sur une ligne et je trouve pas quoi faire!! j'ai beau essayé de résoudre le problème j'y arrive pas!
voila la programme si quelqu'un s'y connait un petit peu en scilab, l'erreur se trouve sur la ligne 43 en gras ci dessous (multiplication incohérentes)
M=input("Donner le nombre de discrétisation de x");
N=input("Donner le nbre de déscritisation de t ");
alpha =input ("Donnez la diffusité thermique (alpha>0) :");
k =1/N;
h =1/M;
a =(alpha*k)/(h^2);
//test sur la stablité du shéma
while (a>0.5) then
disp("shcéma instable")
M=input("donner le nombre de points de discrétisation de x");
N=input("donner le nombre de points de discrétisation de t ");
alpha =input ("donnez la diffusité thermique (alpha>0) :");
k =1/N;
h =1/M;
a =(alpha*k)/(h^2);
end
//création de la matrice B
B =zeros(M-1,M-1);
x =zeros(M,1);
for i=1:M-1
B(i+1,i)=a;
B(i,i+1)=a;
B(i,i)=1-2*a;
end
B(M-1,M-1)=1-2*a;
for i=1 : M+1
x(i) =(i-1)*h;
end
//condition initiale sur x
for i=1:M
T(i,1)=sin((%pi)*x(i));
end
T(M+1,1)=0;
//Conditions aux limites sur t
for i=1:N+1
T(1,i)=0;
T(M+1,i)=0;
end
//Calcul de la température à chaque instant et en tous les points
for j=2:N+1
T(2:M,j)=B*T(2:M,j-1);
end
for i=2:N
plot2d(x,T(:,i),i);
end
A voir également:
- Boudin piscine se dégonfle chaleur
- Test chaleur pc - Guide
- Ordinateur et chaleur - Guide
- Piscine hors-sol - Guide
- Ballon de foot qui se dégonfle tout seul ✓ - Forum Loisirs / Divertissements
- Ballon - Forum Loisirs / Divertissements
1 réponse
for i=1:M-1
B(i+1,i)=a; => B(M,M-1)=a;
B(i,i+1)=a;
B(i,i)=1-2*a;
end
ce bloc fabrique une matrice B de taille M×(M-1) ce qui peut poser problème lors de l'opération T(2:M,j)=B*T(2:M,j-1);
C'est quoi exactement le problème ? fait juste avant l'opération size(B) size(T(2:M,j-1)) pour vérifier les tailles.
B(i+1,i)=a; => B(M,M-1)=a;
B(i,i+1)=a;
B(i,i)=1-2*a;
end
ce bloc fabrique une matrice B de taille M×(M-1) ce qui peut poser problème lors de l'opération T(2:M,j)=B*T(2:M,j-1);
C'est quoi exactement le problème ? fait juste avant l'opération size(B) size(T(2:M,j-1)) pour vérifier les tailles.