Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Methode iterative

leila, le samedi 11 octobre 2008 à 23:54:14
Bonjour,
je voudrais programmer sous matlab avec la methode iterative ce qui suit


U (k+1) (j,i)=U(k)(j,i)+(w/4)*(U(k)(j,i+1)+U(k+1)(j,i-1)+U(k)(j,i)+U­(k+1)(j-1,i)-4*U(k)(j,i));

(les k et les k+1 sont les iterations, j'ai pas su vous les ecrire comme exposant :s)

avec w appartenant à IR
svp
Configuration: Windows XP
Internet Explorer 6.0
Répondre à leila  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le samedi 11 octobre 2008 à 23:57:01
Salut

je voudrais programmer

OK, vas-y, pas de souci pour nous ;-)

Bonne nuit Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 00:01:30
:D :D non non , je demande de l'aide pour le programmer -_-
et j'ai besoin de ce programme le lundi au plutard
Répondre à leila

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 00:02:28
Et quel problème rencontres-tu exactement dans la programmation de cette ligne ? Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 00:07:58
clc
clear
ep=10^(-10000);%ep=epsilon
h=2.5;
a=0;
b=20;
c=0;
d=10;
nx=(b-a)/h;
ny=(d-c)/h;
n=(nx+1)*(ny+1);
%t=cos(pi/nx)+cos(pi/ny);
%w=4/(2+sqrt(4-t^2))
w=1
M=ones(n,1);

%la déclaration et l'initialisation de U
sol=zeros(n,1);
for i=(nx+3):(n-(nx+1))
if (mod(i,(nx+1))~=0 & mod(i,(nx+1))~=1 )
sol(i)=i;
elseif mod(i,(nx+1))==0
sol(i)=100;
end
end
sol;
%la transformation du vecteur U en une matrice "sol" de dimension (ny+1,nx+1)

for j=1:(ny+1)
for i=1:(nx+1)
U(j,i)=sol(i+(nx+1)*(j-1));
end
end
U


% l est le nombre d'itérations
L=0;

while(abs(norm(U)-norm(M))>ep)
M=U;
for i=2:nx-1
for j=2:ny-1
U(j,i)=U(j,i)+(w/4)*(U(j,i+1)+U(j,i-1)+U(j,i)+U(j-1,i)-4*U(j,i));
end
end
L=L+1;
end

U
L

% la trace de la matrice "sol"
x=1:nx+1;
y=1:ny+1;
mesh(x,y,U)

voilà le programme que j'ai fait, mais il me donne pas la solution auquelle je m'attendais, je crois qu'à la ligne où je mets le if (mod(i,(nx+1))~=0 & mod(i,(nx+1))~=1 )
sol(i)=i;
est fausse, et je trouve un prbleme aussi là où j'essaie de programmer mon U(i,j) que je vous ai donné en premier :s
alors si vous pouviez m'aider
Répondre à leila

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 00:10:26
Deux secondes, je jette un œil Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 00:11:26
ok merci bien
Répondre à leila

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 00:14:12
Déjà, l'énoncé de ton premier message et le programme que tu me donnes collent pas. Dans le membre de droite il y a des termes de l'itération k+1 Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 00:16:02
ben justement c'est là où se présume mon problème, je sais pas comment faire ma programmation alors qu'il y a des k+1 à droite :s
Répondre à leila

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 00:29:54
D'accord !
Bon, pour le reste, ça va être dur de t'aider vu que je sais pas ce que tu veux mettre exactement comme initialisation pour U dans ta méthode itérative, mais pour ton problème d'itération, il faut que tu fasses passer tous les termes de l'itération k+1 à gauche.
U(k+1) (j,i)-w/4*U(k+1)(j,i-1)-w/4*+U­(k+1)(j-1,i)=U(k)(j,i)+(w/4)*­(U(k)(j,i+1)+U(k)(j,i)-4*U(k)(j,i))
Ensuite changer l'ordre des lignes ou des colonnes d'une matrice, ça revient à multiplier par une matrice de permutation.

Cela dit, il manque une info dans ton énoncé, pour les première, dernière lignes et pour les première, dernière colonnes, quelle est l'équation pour l'itération ? Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 14:38:02
l'equation de l'iteration est celle de laplace :s et en effet y a des conditions qui manquent :s :s donc l’erreur vient peut etre du prof
Là je suis encore bloquée sur un autre programme, si quelqu’un peut m’aider svp
Il s’agit de resoudre l’equation de la chaleur suivante
du/dt=(k/p*c)*d²u/dx²
K=0.13 c=0.11 p=7.8 dx=0.25 et dt est donné par dt<((dx)²*p*c)/(2*k)
U(x,o)=100*x si x appartient à [0,1]
U(x,o)=100*(2-x) si x appartient à [1,2]
U(0,t)=0
U(2,t)=0
Faudrait resoudre cette equation en utilisant la methode iterative suivante :
(les j et les j+1 sont les iterations)
U(j+1)(i)=r*(U((j)(i+1)+U(j)(i-1))+(1-2*r)U(j)(i)
r=(k/p*c)*(dt/(dx)²)
Répondre à leila

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 16:32:54
OK, c'est bien ce que je me disais au début, c'était donc un schéma numérique pour l'équation de la chaleur.
Mais vu que le schéma ressemblait à rien du tout, je m'étais dit que c'était peut-être pour autre chose.

Si tu l'avais dit depuis le début, je te l'aurais dit directement. L'équation de ton tout premier message, si tu l'as bien recopiée, est complètement fausse.

Pour ton autre question, rien de compliqué, c'est un schéma explicite, noté vectoriellement tu as
U(j+1)=A*U(j)
T'as juste à implémenter A.

Tu peux jeter un œil ici si tu veux
http://www.commentcamarche.net/forum/affich 6135901 resolution de l equation de chaleur Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 18:39:50
resalut ^^ !
j'ai reussi a programmer mon U(i) initial (d'apres les donnees) et j'ai implementé mon A(i,j)
donc maintenant il ne reste plus que programmer leur produit, mais je sais toujours pas où intervient les iteration :s et comment les programmer :s
j'ai lu le sujet que tu m'as passé mais il m'aide pas trop :s (je comprend mais je sais pas faire :s )
alors si ca te derrage pas de m'expliquer de la maniere la plus bete ^^"
Répondre à leila

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 18:53:52
C'est un produit matriciel, il y a rien à coder, MatLab le fait.
Cela dit, vu que la matrice A est creuse, c'est vrai que faire un produit matrice-vecteur est un peu idiot, vaut mieux coder à la main.
L'équation de la chaleur que tu veux coder, c'est pour une condition de Dirichlet homogène au bord (la température vaut 0 aux extrémités), donc tes degrés de libertés sont seulement les valeurs de la température en tous les points de discrétisations du segment, sauf le premier et le dernier.
Si t'as U au temps j, en faisant :
Up = circshift(U,[0 -1]);Up(1)=0;Up(end)=0;
Um = circshift(U,[0 1]);Um(1)=0;Um(end)=0;
U = U + r*(Up+Um-2*U);
T'as U au temps j+1.
Si tu veux stocker tous les résultats, (temps et espace), tu peux le faire sous forme de matrice. Chaque ligne de la matrice pour un temps donné et chaque colonne pour une position donnée. Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 19:09:28
voila j'ai pris des cas partiulier, comme quoi la matrice A est E dans le programme qui suit et le vecteur U est P
j'ai preciser les limites et j'ai donné au départ le vecteur initial U comme a

a(1)=25;
U=zeros(8,1);
A=zeros(8);
for i=2:8
j=i-1;
A(i,j)=1;
end;
C=A';
D=-4*eye(8);
E=A+C+D
P=E*a
for j=1:8
P=E*P
end
P

alors est ce que mon programme doit etre dans les environs de ce qui se trouve en dessus
stp !!
Répondre à leila

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 19:15:03
C'est un truc dans ce genre. Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 19:17:12
merci beaucoup :D :D
Répondre à leila

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sacabouffe, le dimanche 12 octobre 2008 à 19:19:44
De rien ;-)
Tu me montreras ton programme quand tu l'auras écrit ?
Et oublie pas de virer U à chaque extrémité du segment dans ton équation, c'est pas un ddl, il est toujours égal à zéro. Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"
Répondre à Sacabouffe

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
leila, le dimanche 12 octobre 2008 à 19:20:05
j'ai oublier un truc :s comment je programme mon x que j'ai donner dans l'ennoncé :s parceque j'en aurai besoin pour le U(x,0)?
stp
Répondre à leila

Résultats pour methode iterative

Ppcm avec recursivité (Résolu) Bonjour, Bonjour, tout le monde je veux bien savoir comment calculer le ppcm(a,b) avec la methode recursive en pascal sans l'ajout d'un autre parametre à l'entête de la fonction sachant que je connais la methode itérative avec deux... www.commentcamarche.net/forum/affich-4095855-ppcm-avec-recursivite
Exposé sur la conception itérative des IHM (Résolu) Bonjour, j'ai un exposé sur la conceptin itérative des intrefaces homme/machine (IHM) merci d'avoire m'aider je suis en urgence www.commentcamarche.net/forum/affich-6280250-expose-sur-la-conception-iterative-des-ihm
Méthode PERT Méthode PERT La méthode PERT est une technique permettant de gérer l'ordonnancement dans un projet. La méthode PERT consiste à représenter sous forme de graphe, un réseau de tâches dont l'enchaînement permet d'aboutir à l'atteinte des objectifs... www.commentcamarche.net/contents/projet/pert.php3

Résultats pour methode iterative

[Spywares] Méthodes de désinfectionVoici une énumération de méthodes de désinfection afin de vous débarrasser définitivement de vos trojans, virus, vers, spywares, pubs intempestives ... Tout d'abord, l'appellation de l'infection vous est présentée, puis sa méthode pour permettre son... www.commentcamarche.net/faq/sujet-2500-spywares-methodes-de-desinfection
L'ergonomie des logiciels interactifs : une question de méthodeEn dépit des objectifs affichés, c'est-à-dire la conception de systèmes interactifs utiles, faciles et agréables à utiliser, les équipes de conception et de développement appliquent rarement les méthodes éprouvées de la recherche pour guider leurs... www.commentcamarche.net/faq/sujet-11777-l-ergonomie-des-logiciels-interactifs-une-question-de-methode
[Virus] Preliminary method of disinfection - English VersionIntroduction Version française ici. I reckon some English speakers may be present on our famous forum (CCM). I guess the French version of this method is not comprehensive for all, hence the idea to make an English one. In this wise, I dedicate these... www.commentcamarche.net/faq/sujet-3294-virus-preliminary-method-of-disinfection-english-version

Résultats pour methode iterative

La méthode HAWKS????? (Résolu)Bonjour, je suis tomber sur ce lien presentant la mèthode HAWKS ( permettant de gagner à la roulette sur les casino online) http://fr.maibee.com/ j'ai tester en mode gratuit et je serai bien tanter d'essayer avec du vrai argent. En discutant... www.commentcamarche.net/forum/affich-5451428-la-methode-hawks
Methodes de tri des tableaux algo (Résolu)bonjour j'aimerai recevoir des cours sur les methodes de trie des tableaux en algorithme en effet je suis en 1ere d'info je ne connais aucun language je fais pour le moment qu'une intiation en algoritmique donc tachez de ne guere... www.commentcamarche.net/forum/affich-2210823-methodes-de-tri-des-tableaux-algo
La méthode toString() (Résolu)Salut tout l'monde, En clair, mon problème c'est de savoir : 1- à quoi sert la methode toString() en Java. 2- Comment l'utiliser. je ss debutant, c'est vrai,.. mais je crois qu'on est tous passé par là, Merci de bien vouloir... www.commentcamarche.net/forum/affich-5552544-la-methode-tostring

Résultats pour methode iterative

Sécurité - Méthodologie d'une intrusion sur un réseauCet article a pour but d'expliquer la méthodologie généralement retenue par les pirates pour s'introduire dans un système informatique. Il ne vise pas à expliquer comment compromettre un système mais à comprendre la façon dont il peut l'être afin de... www.commentcamarche.net/contents/secu/secumet.php3
Java: Les méthodesLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs... www.commentcamarche.net/contents/java/javafonc.php3
Méthodes agiles (RAD, XP)Méthodes agiles Les méthodes de développement dites « méthodes agiles » (en anglais Agile Modeling, noté AG) visent à réduire le cycle de vie du logiciel (donc accélérer son développement) en développant une version minimale, puis en intégrant les... www.commentcamarche.net/contents/genie-logiciel/methodes-agiles.php3