まずは Octave で解いてみよう。
[ |
l]eigen_square.m## 正方形領域のラプラシアンの固有値 function retval = eigen_square(n) h = 1/n; B=diag(ones(n-2,1),1)+diag(ones(n-2,1),-1); I=eye(n-1,n-1); A = - n * n * (- 4 * kron(I,I) + kron(B,I) + kron(I,B)); retval = eig(A); endfunction |
[ |
l]eigen_square2.m## 正方形領域のラプラシアンの固有値、固有関数 function [v,lambda] = eigen_square2(n) h = 1/n; B=diag(ones(n-2,1),1)+diag(ones(n-2,1),-1); I=eye(n-1,n-1); A = - n * n * (- 4 * kron(I,I) + kron(B,I) + kron(I,B)); [v,lambda] = eig(A); endfunction |
octave:1> eigen_square(10)
tic;a=eigen_square(10);toc として計算時間を計測した。
計算時間 (秒) | |
10 | 0.14443 |
20 | 7.4554 |
25 | 32.129 |
30 | 105.79 |