- ベストアンサー
BASICのプログラムで行列式の積の計算をしたいのですが…
BASICのプログラムで「行列式の積」の計算をしたいのですが…どのようにして行ったらよいか分かりません。あいにく、大学の図書館が閉まってしまい、調べる事もできない状態で困っています。一例として、3行3列の行列式の積の計算をする方法のプログラムを教えてください。 後、計算結果がどのように表示されるかも教えていただけると嬉しいです。
- michikoremon
- お礼率55% (16/29)
- その他(プログラミング・開発)
- 回答数3
- ありがとう数5
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どうも、失礼しました。 もうお分かりと思いますが、全角スペースを使っているためエラーが出ます。このOKweb/教えて!gooでの書きこみは複数の半角スペースが無視されてしまうので、見やすくするため全角スペースを使いました。 390行でのエラーはN88互換BASICのバグだと思います。コメント文を取り除いてください。
その他の回答 (2)
- ymmasayan
- ベストアンサー率30% (2593/8599)
質問が間違っていませんか。 「行列式の積」の計算ではなくて 「行列式の値」の計算又は「行列の積」の計算のどちらかでしょう。 行列と行列式はまったく別物です。 anisolさんがお答えになっているのは後者ですね。
補足
わかりにくい質問でどうもすみません。 「行列の積」の計算が行いたいのです。
- anisol
- ベストアンサー率48% (146/301)
N88BASICでいいですか? 100 '初期設定 110 L=3:M=3:N=3 'A:L行M列, B:M行N列 120 DIM A(L,M),B(M,N),X(L,N) '配列は(行,列)の構成 130 '行列Aのデータの読み込み 140 FOR I=1 TO L '1行からL行まで 150 FOR J=1 TO M '1列からM列まで 160 READ A(I,J) 170 NEXT J 180 NEXT I 190 '行列Bのデータの読み込み 200 FOR I=1 TO M 210 FOR J=1 TO N 220 READ B(I,J) 230 NEXT J 240 NEXT I 250 '計算 260 FOR I=1 TO L '答の行列はL行N列になる 270 FOR J=1 TO N 280 X(I,J)=0 '初期化 290 FOR K=1 TO M '答の(I,J)成分を計算 300 X(I,J)=X(I,J)+A(I,K)*B(K,J) 310 NEXT K 320 NEXT J 330 NEXT I 340 '表示 350 FOR I=1 TO L '行の表示 360 FOR J=1 TO N '列の表示 370 PRINT USING"#### ";X(I,J); 380 NEXT J 390 PRINT '1行表示したら改行する 400 NEXT I 410 END 420 'データA 430 DATA -3,1,4 440 DATA 0,1,3 450 DATA -2,5,1 460 'データB 470 DATA 4,-1,0 480 DATA 1,0,3 490 DATA 0,1,0
お礼
先ほどのエラー何とか成りました。 でもまだ390行でエラーが出てしまい、行列式の表示が上の一行しか表示されずすべての表示が上手くいきません。何処を直したらよいのでしょうか?アドバイスいただけないでしょうか?
補足
ご説明有難うございます。 組んでくださいましたプログラムをそのまま「N88互換性BASIC」のプログラムに入れ、計算させました所…150行の所でメッセージが定義されてないとのエラーが出てしまいました。何処を訂正したら宜しいのでしょうか???素人なもので…全くわかりません。ご説明よろしくお願いいたします。
関連するQ&A
- 行列の積の計算プログラムを教えてください。
現在、BASICの勉強を独学でしていますが、なかなか理解ができないでいて困っています。 4行4列の2つの行列A、Bの積を計算するプログラムを書きたいのですが、どのように書けばよいのか教えていただけないでしょうか? DIM文を使うことはわかるのですが、使い方がよくわからないでいます。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 行列の積の計算について
;は行換え、,は列換えを表すものとします。 Pk = [1,2,3] 1行3列 Qk = [1;2;3] 3行1列 R = [3,2,1; 2,4,5; 7,2,1] 3行3列 としたときに、Pk*Qk*Rを計算したいのですが、まず、 Pk*Qkを計算すると、1*1 + 2*2 + 3*3で1行1列の[14] になります。その後、この[14]*Rを計算するわけですが、 行列の積は、左の行列の列数と右の行列の行数が一致していない と計算できないので、この場合はどう計算するんですか?
- ベストアンサー
- 数学・算数
- Mathematica を使った行列の積に関するご質問です.
Mathematica を使った行列の積に関するご質問です. Mathematica で,n行1列の行列 と 1行n列の行列 の積を計算したいのですが,計算の方法がわかりません. 教えていただけると大変助かります.
- 締切済み
- 数学・算数
- アルゴリズム(行列積)
行列M1,M2,M3,M4が以下の数の行、列を持つ行列としたとき、行列積M1,M2,M3,M4をもっとも少ない演算回数で計算するには、どの順序で計算すればよいか? M1:20行60列 M2:60行5列 M3:5行20列 M4:20行100列 全くわかりません(>_<)みなさま手取り足取り教えてくださいm(__)m
- ベストアンサー
- その他([技術者向] コンピューター)
- 初心者です。プログラミング 3×3行列の積
先日、課題が出されて、1週間ほど考えてはみたのですがわからなかったため質問させていただきます。 3行3列の行列の積を求めるプログラムを作成しなさい。ただし、各行列要素は疑似乱数を使って値を求めるようにしなさい。また各行列要素は二桁以下の整数とし、行列の積を計算する部分を関数で行うようにしなさい。という問題なんですが、どなたかわかる方がいらっしゃいましたらご回答よろしくお願いいたします。できれば詳しく式などを書いていただきたいです。
- ベストアンサー
- C・C++・C#
- 行列の積 内積 の関係について
行列の積 内積 の関係について 行列の積と内積は同じであると説明があったのですが、 よく分かりません・・・ 例えば、A=(3、-2,1),B=(4,6,7)のベクトルの内積は A・B=(3×4)+(-2×6)+(1×7)=7となるのですが、 行列の積は(1行3列)×(1行3列)で計算できません。 どちらかのベクトルを転置化すれば計算できるのですが・・・ 列ベクトルや行ベクトルは転置しても同じベクトルなのでOKと言う事でしょうか? 内積の演算結果はスカラー(数値)で、行列の積の演算結果は 行列と認識しているのですがこの認識は誤りでしょうか? 列ベクトルや行ベクトルの積の場合はスカラーとなるのでしょうか? A=(3、-2,1),B=(4,6,7)において、ベクトルBを転置化してtBとすれば A×tB=(7)となります。これはスカラーとなりますでしょうか? (追加質問) また、以前ノルムに関して質問させて頂きました。 ご回答頂いた内容で大凡理解できたのですが、追加で一点だけ質問させて下さい。 VのベクトルAに対して、ノルムは ||A||=√(A・A)とされますが、これを||A||=√(A^2)と表記するのはおかしいのでしょうか?
- ベストアンサー
- 数学・算数
- 行列の積の計算をするときのイメージ?
例えば A= 12 34 B= 56 78 に対してABを求めるとき、 Aは2つの行ベクトル(1 2),(3 4) Bは2つの列ベクトル(5 6),(7 8)とみなして計算するんですよね? 慣れないうちは計算ミスしやすいですよね? また、ABを計算するとき、結果は2×2行列になりますけど、 計算の順番としては (1,1)成分→(1,2)成分→(2,1成分)→(2,2)成分 と、行単位で求めるのと (1,1)→(2,1)→(1,2)→(2,2)と、列単位で求めるのとではどちらがいいのでしょうか? 結果には影響ないのですが・・・教えてください。
- ベストアンサー
- 数学・算数
- 多次元配列の行列
1番 キーボードから3×3の行列の要素を2次元配列に入力した後、その値を表示するプログラムをさくせいせよ 2番 キーボードから3×4の行列の要素を2次元配列に入力した後、転置行列を出力するプログラムをさくせいせよ 3番 2つの行列A(3×3行列)、B(3×3行列)の買う要素の値をキーボードから2つの配列に入力し、2つの行列、並びに、それらの和、差、積の行列を出力するプログラムを作成せよ(Bに単位行列を入れて検算せよ) 4番 2行3列の行列と3行2列の積を求めるプログラムを作成せよ どなたかわからないでしょうか?? 数が多くてすみません。 わかる方お願いします!!
- 締切済み
- C・C++・C#
お礼
有難うございました。 お陰さまで、きちんと表示するようになりました。 これからも何かわからないことがあったら「教えて!goo」 で質問しますので、どうぞよろしくお願いします。