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

13 vues (au cours des 30 derniers jours)
隆仁
隆仁 le 10 Fév 2023
Commenté : Keita Abe le 14 Fév 2023
三重対角行列で対角成分が4で両隣が-1のものをfor文を利用して作りたいのですが、全く分かりません。その後ヤコビ法を用いたいのですが、そこにたどり着きません。

Réponses (2)

Hernia Baby
Hernia Baby le 10 Fév 2023
テプリッツ行列を使えば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 commentaire
Keita Abe
Keita Abe le 14 Fév 2023
これは素晴らしい関数ですね!

Connectez-vous pour commenter.


Keita Abe
Keita Abe le 10 Fév 2023
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 commentaire
Keita Abe
Keita Abe le 10 Fév 2023
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

Connectez-vous pour commenter.

Catégories

En savoir plus sur ループと条件付きステートメント dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!