Séance 8 - Exercice 1
4 participants
Page 1 sur 1
Séance 8 - Exercice 1
bonjour
l'asistant m'a demandé de mettre mon programme en ligne, pcq il marche!!!!
comme je l'ai marqué au début de mon prog il manque de commentaires...
bon courage
%Odile Vekemans
%Seance 8 exercice 1
%rem: ce programme est bon mais il manque de commentaires
%problème aux conditions limites
clear
for a=[2]
N=2^a;
x0=0;
xfin=pi;
y0=1;
yfin=2;
h= pi/(N+1);
for n=1:N
X(n)= n*h;
end
B= h^2 * sin(X.^2);
B(1)=B(1)-y0;
B(N)=B(N)-yfin;
A=eye(N);
for n=1:N
A(n,n)= (h^2*cos(X(n)) -2);
end
A= A + diag(ones(N-1,1),1) + diag(ones(N-1,1),-1);
Y=A\B';
Xterm = [ x0 X xfin];
Yterm = [ y0 Y' yfin];
%Methode "explicite"pour définir Xterm et Yterm
%for n=1:N
%Xterm(n+1)=X(n);
%Yterm(n+1)=Y(n);
%end
% Xterm(1)=x0;
% Yterm(1)=y0;
% Xterm(N+2)=xfin;
% Yterm(N+2)=yfin;
plot(Xterm,Yterm)
hold on
% verification: on remplace dans l'éq initial les valeurs qu'on a
% trouvé, on passe sin(x^2) de l'autre côté de l'égalité et on voit si c'est bien nul
yseconde = ([ 0 0 Yterm] - 2*[0 Yterm 0] + [Yterm 0 0])/h^2;
%tout ce chipo est fait pcq on a besoin de y(n-1) y(n) et y(n+1) pour la vérification
verif = yseconde + cos([ 0 Xterm 0]).*[0 Yterm 0] - sin([ 0 Xterm 0].^2);
vraiverif = norm(verif(3:end-2))
%si la norme de ce vecteur vaut 0 ou autour de 10^-15 alors le Yterm calculé est juste
pause
end
l'asistant m'a demandé de mettre mon programme en ligne, pcq il marche!!!!
comme je l'ai marqué au début de mon prog il manque de commentaires...
bon courage
%Odile Vekemans
%Seance 8 exercice 1
%rem: ce programme est bon mais il manque de commentaires
%problème aux conditions limites
clear
for a=[2]
N=2^a;
x0=0;
xfin=pi;
y0=1;
yfin=2;
h= pi/(N+1);
for n=1:N
X(n)= n*h;
end
B= h^2 * sin(X.^2);
B(1)=B(1)-y0;
B(N)=B(N)-yfin;
A=eye(N);
for n=1:N
A(n,n)= (h^2*cos(X(n)) -2);
end
A= A + diag(ones(N-1,1),1) + diag(ones(N-1,1),-1);
Y=A\B';
Xterm = [ x0 X xfin];
Yterm = [ y0 Y' yfin];
%Methode "explicite"pour définir Xterm et Yterm
%for n=1:N
%Xterm(n+1)=X(n);
%Yterm(n+1)=Y(n);
%end
% Xterm(1)=x0;
% Yterm(1)=y0;
% Xterm(N+2)=xfin;
% Yterm(N+2)=yfin;
plot(Xterm,Yterm)
hold on
% verification: on remplace dans l'éq initial les valeurs qu'on a
% trouvé, on passe sin(x^2) de l'autre côté de l'égalité et on voit si c'est bien nul
yseconde = ([ 0 0 Yterm] - 2*[0 Yterm 0] + [Yterm 0 0])/h^2;
%tout ce chipo est fait pcq on a besoin de y(n-1) y(n) et y(n+1) pour la vérification
verif = yseconde + cos([ 0 Xterm 0]).*[0 Yterm 0] - sin([ 0 Xterm 0].^2);
vraiverif = norm(verif(3:end-2))
%si la norme de ce vecteur vaut 0 ou autour de 10^-15 alors le Yterm calculé est juste
pause
end
Odile- Mitochondrie
- Nombre de messages : 38
Date d'inscription : 22/09/2007
Re: Séance 8 - Exercice 1
Merci odile!
mais c'est hyper chaud!!!! comment t as fait pour trouver tout ca?!
je comprend pas vraiment tout...mais y a surtout 2 truc que je capte pas:
A propos de cette vrai vérification: c'est quoi le but de prendre la norme de 3:end-2?
Et l' autre truc: pourquoi t as besoin de eye(A) qui donne la matrice identité je crois...
enfin voila, si t as le temps de répondre ce serait vraiment sympa
ciao
mais c'est hyper chaud!!!! comment t as fait pour trouver tout ca?!
je comprend pas vraiment tout...mais y a surtout 2 truc que je capte pas:
A propos de cette vrai vérification: c'est quoi le but de prendre la norme de 3:end-2?
Et l' autre truc: pourquoi t as besoin de eye(A) qui donne la matrice identité je crois...
enfin voila, si t as le temps de répondre ce serait vraiment sympa
ciao
maga1/2- Enzyme
- Nombre de messages : 19
Age : 37
Localisation : bruxelles
Date d'inscription : 01/10/2007
Re: Séance 8 - Exercice 1
Odile a écrit:
for a=[2:7]
N=2^a;
x0=0;
xfin=pi;
y0=1;
yfin=2;
h= pi/(N+1);
for n=1:N
X(n)= n*h;
end
B= h^2 * sin(X.^2);
B(1)=B(1)-y0;
B(N)=B(N)-yfin;
est-ce que quelqu'un sait me dire d'où ça vient? :-s thxxxxxxxxxxxx
je l'avais écrit sous cette forme là, mais sans mes notes, plus moyens de voir à quoi ça correspond -.-
clear
for k=2:5
N=2^k;
x0=0;
xfin=pi;
y0=1;
yfin=2;
%% on calcule h:
h=pi/(N+1);
% où pi=(b-a)
%% remplir x, B et d (attention aux conditions limites):
for n=1:N
X(n)=n*h;
B(n)=(h^2)*sin(X(n)^2);
d(n)=(h^2)*cos(X(n))-2;
end
...
fletteman- Enzyme
- Nombre de messages : 11
Age : 36
Date d'inscription : 09/05/2008
Re: Séance 8 - Exercice 1
c'est bon j'ai trouvé pour ceux que ça intéresserait, vous pouvez aller voir ICI, c'est l'avant dernière page
fletteman- Enzyme
- Nombre de messages : 11
Age : 36
Date d'inscription : 09/05/2008
Re: Séance 8 - Exercice 1
Ouais je vois la formule qui dit qu'il faut soustraire yo et yf à B(1) et B(N) mais ... quelqu'un peut expliquer pourquoi il faut faire ça ?
Philippe- Mitochondrie
- Nombre de messages : 69
Age : 37
Localisation : Bruxelles
Date d'inscription : 28/10/2007
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|