le paramètre est un entier ou un entier flottant n.
laplacian(n) renvoie la matrice de taille n du laplacien discret en
dimension 1.
Cette matrice est tridiagonale et a 2 sur la diagonale principale,
-1 sur la diagonale supérieure et -1 sur la diagonale inférieure.
En effet :
Soit F est définie en x1,x2,x3,x4,x5,x6 (où xk+1−xk=h) par
F(xk)=yk) et on suppose que F(x0)=F(x1−h)=0=y0 et que
F(x7)=F(x6+h)=0=y7 (ici n=6).
Les valeurs approchées de la dérivée première en x0,x1..x6 sont :
(y1−y0)/h=y1/h,(y2−y1)/h,(y3−y2)/h,...,(y6−y5)/h, (y7−y6)/h.
Les valeurs approchées de la dérivée seconde en x1..x6 sont :
((y2−y1)/h−y1/h)/h=((y2−2y1)/h2
((y3−y2)/h−(y2−y1)/h)/h=(y3−2y2+y1)/h2
((y6−y5)/h−(y5−y4)/h)/h=(y6−2y5+y4)/h2
((y7−y6)/h−(y6−y5)/h)/h=(−2y6+y5)/h2 car y7=0.
Donc les valeurs approchées de
−∂2 F/∂ x2(xk) sont pour h=1 :
2*y1−y2, −yk−1+2*yk−yk+1 pour k=2..6−1, −y5+2*y6.
On peut aussi plus simplement utiliser la formule de Taylor à l’odre 2 :
f(a+h)−f(a)−hf′(a)≃ h2f″(a)/2 et
f(a−h)−f(a)+hf′(a)≃ h2f″(a)/2
donc en ajoutant :
f″(a)≃ (f(a+h)+f(a−h)−2f(a))/h2
On retrouve :
f″(x1)≃ (f(x2)+f(x0)−2f(x1))/h2=(f(x2)−2f(x1))/h2
f″(xk)≃ (f(xk+1)+f(xk−1)−2f(xk))/h2, (k=2..n−1)
f″(xn)≃ (f(xn+1)+f(xn−1)−2f(xn))/h2=(f(xn−1)−2f(xn))/h2
On tape :
laplacian(3)
On obtient :
[[2,-1,0],[-1,2,-1],[0,-1,2]]
On tape :
laplacian(3.)
On obtient :
[[2.0,-1.0,0.0],[-1.0,2.0,-1.0],[0.0,-1.0,2.0]]
On tape :
laplacian(6)
On obtient :
[[2,-1,0,0,0,0],[-1,2,-1,0,0,0],[0,-1,2,-1,0,0],
[0,0,-1,2,-1,0],[0,0,0,-1,2,-1],[0,0,0,0,-1,2]]