12.1.2 C プログラム流に成分を指定することで $ A$ を作る

MATLAB プログラムでも、 C や Fortran と同様に成分を直接指定することが出来る。

  n = 2 * m;
  a = zeros(n,n);
  % 前半の m 行
  d = 4 * c1; od = - c1;
  a(1,1) = d; a(1,2) = od;
  for i=2:m-1
    a(i,i-1) = od; a(i,i) = d; a(i,i+1) = od;
  end
  a(m,m-1) = od; a(m,m) = d;
  % 後半の m 行
  d = 4 * c2; od = - c2;
  a(m+1,m+1) = d; a(m+1,m+2) = od;
  for i=m+2:n-1
    a(i,i-1) = od; a(i,i) = d; a(i,i+1) = od;
  end
  a(n,n-1) = od; a(n,n) = d;

普通は、 MATLAB のようなインタープリターで、 このように for 等の繰り返し命令を使うと 効率上の問題が発生すると言われているが、 この場合は案外と効率がよい。 ループが一重のものだけだからであろう。

桂田 祐史
2017-06-19