Download presentation
Presentation is loading. Please wait.
1
プログラミング実習 1・2 クラス 第 1 週目 担当教員: 渡邊 直樹
2
課題 1 3×3型行列の行列式と逆行列を求める プログラムを作成せよ。 行列の各要素はコマンド・プロンプトから入力
プログラムを作成せよ。 行列の各要素はコマンド・プロンプトから入力 計算した結果もコマンド・プロンプトに表示 課題提出の際は授業中に指示された行列を 使うこと!(さもないと減点)
3
課題1の提出について 1. プログラムの実行結果とソースコード(javaファイル) 提出方法:以下の事項に留意して記述したメールを
あてに送付。 1. プログラムの実行結果とソースコード(javaファイル) をメールの本文に書く。順番は 実行結果、ソースコード (どちらか一方だけでは提出とみなさない。) 2. メールの件名は 必ず課題番号:学籍番号:氏名。 例:課題1:2007xxxxx:山田太郎 締め切りは 12月14日 (金)、 10:00am
4
今日の実習 3×3 型行列の行列式と逆行列を計算するための InvMatrix.javaという名前のプログラムを作成する。
3×3 型行列の行列式と逆行列を計算するための InvMatrix.javaという名前のプログラムを作成する。 1. 行列Aとその逆行列Bはdouble 型の二次元配列 として宣言 2. 行列Aの各要素aijはコマンド・プロンプトから入力 for 文を使い配列Aに値を代入 3. 行列Aをコマンド・プロンプトに出力。 4. 行列式サラスの公式により求め, 得られた値を コマンド・プロンプトに出力 5. 計算した逆行列Bをコマンド・プロンプトに出力
5
sample1の実行結果の例(1) >a11= 2 >a12= 3 … >a33= 1
画面に表示された行列の要素をコマンド・プロンプトから入力 >a11= 2 >a12= 3 … >a33= 1
6
sample1の実行結果の例(2) >A= | 2.000 3.000 1.000 | | 1.000 3.000 3.000 |
| | | | | | >Det(A)=17.0です。 >Inverse Matrix=…自分で書いたプログラムで計算しましょう
7
サラスの公式
8
逆行列の求め方 行列Aの逆行列A-1は余因子行列を用いて以下の手順によって求める。 det(A)=0であればA-1は存在しない。
行列Aの(i, j)-余因子をとおく。行列Aの(i, j)-余因子とは、行列Aの第i行と第j列を取り除いて得られる行列の行列式を倍したものである。例えば行列Aの(2,3)-余因子であれば、 この余因子を用いると行列Aの逆行列は(2行3列の下付添え字は32)
9
ヒント (1) :課題1の雛形 import java.io.*; public class InvMatrix {
public static void main(String args[]) { double a[][] = new double[3][3]; // [2][3]と書くと3行2列という意味 String line; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("a11="); // 代入する成分を表示 line = reader.readLine(); a[0][0]= Double.parseDouble(line); // この後にプログラムを書く // for文を使うとかなりすっきりする(sample1参照) } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println("値が正しくありません"); }
10
ヒント (2) if (det(A) = = 0.0) { // det(A)が0階中で分岐
System.out.println("逆行列は存在しません"); } else { // この後に逆行列の成分を計算するプログラムを書く }
11
2次元配列の定義と領域の確保 int [][] a; (int a [][]) // 配列aの宣言
● 宣言には2つの形式(どちらでもよい) int [][] a; (int a [][]) // 配列aの宣言 a=new int[2][3]; // 領域の確保(3行2列) double [][] b=new double[5][2] // 宣言と領域確保を同時に行うことも出来る ● int [][] a = {{58, 19}, {34,73}, {9,29}} // { {a[0][0], a[0][1]}, {a[1][0],a[1][1]}, {a[2][0],a[2][1]} }
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.