필터 지우기
필터 지우기

10×10の三重対角​行列のfor文を利用​した作り方について

조회 수: 4 (최근 30일)
隆仁
隆仁 2023년 2월 10일
댓글: Keita Abe 2023년 2월 14일
三重対角行列で対角成分が4で両隣が-1のものをfor文を利用して作りたいのですが、全く分かりません。その後ヤコビ法を用いたいのですが、そこにたどり着きません。

답변 (2개)

Hernia Baby
Hernia Baby 2023년 2월 10일
テプリッツ行列を使えば1行です。
A = toeplitz([4 -1 zeros(1,8)])
A = 10×10
4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4
  댓글 수: 1
Keita Abe
Keita Abe 2023년 2월 14일
これは素晴らしい関数ですね!

댓글을 달려면 로그인하십시오.


Keita Abe
Keita Abe 2023년 2월 10일
for文を使わない方法ではダメですか? diag という関数を使うと簡単にできそうでした。
v = 4*ones(1,10);
v1 = -1*ones(1,9);
D = diag(v)+diag(v1,1)+diag(v1,-1)
D = 10×10
4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4
  댓글 수: 1
Keita Abe
Keita Abe 2023년 2월 10일
for文が必須ということであれば例えばこうでしょうか。
n = 10;
A = zeros(n);
for i = 2:n-1
A(i,i) = 4;
A(i,i-1) = -1;
A(i,i+1) = -1;
A(i+1,i) = -1;
A(i-1,i) = -1;
end
A(1,1) = 4;
A(n,n) = 4
A = 10×10
4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 ループと条件付きステートメント에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!