• ベストアンサー

BASICのプログラムで行列式の積の計算をしたいのですが…

BASICのプログラムで「行列式の積」の計算をしたいのですが…どのようにして行ったらよいか分かりません。あいにく、大学の図書館が閉まってしまい、調べる事もできない状態で困っています。一例として、3行3列の行列式の積の計算をする方法のプログラムを教えてください。 後、計算結果がどのように表示されるかも教えていただけると嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • anisol
  • ベストアンサー率48% (146/301)
回答No.3

どうも、失礼しました。 もうお分かりと思いますが、全角スペースを使っているためエラーが出ます。このOKweb/教えて!gooでの書きこみは複数の半角スペースが無視されてしまうので、見やすくするため全角スペースを使いました。 390行でのエラーはN88互換BASICのバグだと思います。コメント文を取り除いてください。

michikoremon
質問者

お礼

有難うございました。 お陰さまで、きちんと表示するようになりました。 これからも何かわからないことがあったら「教えて!goo」 で質問しますので、どうぞよろしくお願いします。

その他の回答 (2)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

質問が間違っていませんか。 「行列式の積」の計算ではなくて 「行列式の値」の計算又は「行列の積」の計算のどちらかでしょう。 行列と行列式はまったく別物です。 anisolさんがお答えになっているのは後者ですね。

michikoremon
質問者

補足

わかりにくい質問でどうもすみません。 「行列の積」の計算が行いたいのです。

  • anisol
  • ベストアンサー率48% (146/301)
回答No.1

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

michikoremon
質問者

お礼

先ほどのエラー何とか成りました。 でもまだ390行でエラーが出てしまい、行列式の表示が上の一行しか表示されずすべての表示が上手くいきません。何処を直したらよいのでしょうか?アドバイスいただけないでしょうか?

michikoremon
質問者

補足

ご説明有難うございます。 組んでくださいましたプログラムをそのまま「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列の行列 の積を計算したいのですが,計算の方法がわかりません. 教えていただけると大変助かります.

  • 3行3列の行列の和と積の計算方法を教えて下さい。

    3行3列の行列の和と積の計算方法を教えて下さい。 できれば、例題があればありがたいです。 よろしくお願いします。

  • アルゴリズム(行列積)

    行列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列の行列の積を求めるプログラムを作成しなさい。ただし、各行列要素は疑似乱数を使って値を求めるようにしなさい。また各行列要素は二桁以下の整数とし、行列の積を計算する部分を関数で行うようにしなさい。という問題なんですが、どなたかわかる方がいらっしゃいましたらご回答よろしくお願いいたします。できれば詳しく式などを書いていただきたいです。

  • 行列の積 内積 の関係について

    行列の積 内積 の関係について 行列の積と内積は同じであると説明があったのですが、 よく分かりません・・・ 例えば、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)と表記するのはおかしいのでしょうか?

  • 行列式のプログラム

    適当な形式にて初期化された2つの2次元配列により、3×4行列Aと4×3行列Bの要素を表現し、積ABを求めて表示させるプログラムなんです。 ここまでならなんとかなるかもと思ったんですが、行列はAはプログラム中で以下の数値で初期化して、行列Bの要素はキーボードから入力させるようにしないといけないんです。。   2.0 3.0 4.0 5.0 A= 3.0 4.0 5.0 6.0   1.0 2.0 3.0 4.0 なんですけれども、教えていただけたらうれしいです。。 お願いします!!

  • 行列の積の計算をするときのイメージ?

    例えば 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列の積を求めるプログラムを作成せよ どなたかわからないでしょうか?? 数が多くてすみません。 わかる方お願いします!!