dポイントプレゼントキャンペーン実施中!

C言語を最近始めたのですが3×3の平方行列と列ベクトルの掛け算の方法が分からず困っています。

問題は{{1,4,2},{6,7,2},{3,9,4}}×{{3},{8},{5}}を配列とfor文のみでとけという問題です。

2重ループを使うのはなんとなくわかるのですが使い方がわからずなにがなんだかさっぱりですよければ教えてください。

A 回答 (1件)

行列の積の計算方法はわかってますか?



A x B = C
A=
a11 a12 a13
a21 a22 a23
a31 a32 a33

B=
b1
b2
b3

C=
c1
c2
c3

だと
cj = aj1 * b1 + aj2 * b2 + aj3 * b3 (ただし j=1,2,3)
ですよね?
これは、足し算を分解すれば次のようになります。
cj = 0 ;
cj += aj1 * b1 ;
cj += aj2 * b2 ;
cj += aj3 * b3 ;
これをもうちょっと変形して
cj = 0 ;
cj += aji * bi ; (i=1,2,3)

これでわかりませんかね?

※ Cの配列の添字は0から始まることに注意しましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!