1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| clear all;
close all;
clc;
%////////////////// données///////////////////////////
N=120;
K=3;
s= 10^(-9);
imax=300;
%//////////////////Initialisation//////////////////////
err=1;
bk=1;
bl=bk;
delta=0.1;
h=1/N;
%////////////////Maillage///////////////////////////
for i=1:N-1
x(i)=i*h;
end
%///////////////////saisie de F //////////////////////////
for i=1:N-1
F(i,1)=3;
end
%/////////////////Saisie de D////////////////////////////
P=-diag(2*ones(N-1,1)) + diag(ones(N-2,1),1) + diag(ones(N-2,1),-1);
D= N*N*P;
%C=inv(B);
E=inv(D);
%G=C*E;
L=E*F;
for k=1:3
a=(k-1)/K;
b=(k)/K;
for n=1:N-1
if (a< x(n)) && (x(n)<b)
while(err<s && i<imax)
%////////////////// Calcul du gradient////////////////////
m=bk^(-1)*L(n)*L(n);
bk = bk-delta*m
%//////////////////Calcul de l'erreur////////////////////
err=norm(bk-bl);
%////////////////////l'itération//////////////////////////
bl=bk;
%//////////////////// nombre d'itération///////////////////
i=i+1;
%///////////////Affichage du nombre d'itération//////////
disp(i);
end
end
end
end |
Partager