プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

プログラミング第5回 1 while ループ 文字列の操作
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
プログラミング演習(1組) 第7回
関数(1) 第11回 [6月29日、H.16(‘04)] 今日のメニュー 1 前回の課題 2 前回の宿題 3 いろいろな関数の演習 4 課題
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
C言語 配列 2016年 吉田研究室.
IO - 入出力 小西 亨.
プログラミング基礎I(再) 山元進.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング基礎I(再) 山元進.
第13回構造体.
4.3 連立1次方程式   Ax = b   (23) と書くことができる。
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
第12回構造体.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
第4章 配 列 オブジェクト指向Javaプログラミング入門 近代科学社©2008 Toru Kato Masahiro Higuchi
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月6日、H.16(‘04)] 今日のメニュー 1 前回の課題の復習
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
JAVA入門② 変数と型 式と演算子 制御文.
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
プログラミング言語入門 手続き型言語としてのJava
JAVA入門.
UDPマルチキャストチャット                    空川幸司.
例外処理 と ファイル入出力 情報システム学科 平塚 聖敏.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗号技術 ~JAVAプログラム③~ (7週目)
プログラミング演習(2組) 第8回
アルゴリズムとプログラミング (Algorithms and Programming)
暗号技術 ~JAVAプログラム①~ (5週目)
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
P n ポインタの基礎 5 q m 5 7 int* p; int 型の変数を指すポインタ int* q; int 型の変数を指すポインタ int n=5, m=7; int 型の変数 int array[3]; int* pArray[3]; p = &n; ポインタにアドレスを代入しているのでOK.
高度プログラミング演習 (05).
高度プログラミング演習 (05).
ソフトウェア制作論 平成30年11月21日.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
アルゴリズムとプログラミング (Algorithms and Programming)
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
アルゴリズムとプログラミング (Algorithms and Programming)
暗号技術 ~JAVAプログラム②~ (6週目)
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
精密工学科プログラミング基礎 第7回資料 (11/27実施)
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
プログラミング入門2 第5回 配列 変数宣言、初期化について
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹

課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示 ● 2次方程式の判別式で処理を分岐し、虚数解も出力 ● 課題提出の際は授業中に指示された行列を使うこと! (さもないと減点) ● 固有ベクトルの第1要素は1として、ベクトルの大きさ(ノル ム)が 1となるようにプログラムを書くこと。

課題2の提出について 提出方法 : 以下の事項に留意して記述したメールを あてに送付。 1. プログラムの実行結果とソースコード( java ファイル) をメールの本文に書く。順番は 実行結果、ソースコード どちらか一方だけでは提出とみなさない 2. メールの件名は必ず課題番号:学籍番号:氏名。 例:課題 2 : 2007xxx xx:山田太郎 メール本文の末尾にも名前くらいは入れましょう。 締め切りは 12 月 21 日 ( 金 ) 、 10:00am

今日の実習 2×2 型行列の行列式と逆行列を計算するための EigMatrix.java という名前のプログラムを作成する。 1.行列 A は double 型の二次元配列、二つの固有 ベクトル x1 、 x2 を double 型の配列として宣言 2. 行列 A の各要素 aij はコマンド・プロンプトから入 力 for 文を使い配列(行列) A に値を代入 3. 行列 A の要素を整列して出力 4.計算した固有値 λ 1、 λ 2と固有ベクトル x1 、 x2 を 出力(固有ベクトルは長さが1となるようにせ よ) 5. If … else if … else 文を使って、判別式の値をソー ト

固有値の求め方(2*2型)

ヒント( 1 ) : 課題2の雛形 import java.io.*; public class EigMatrix { public static void main(String[] args) { double a[][] =new double[2][2]; // 2X2 行列のための配列の定義と領域確保 String line; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { System.out.println("a"+(i+1)+(j+1)+"="); // 代入する成分を表示する line = reader.readLine(); a[i][j]= Double.parseDouble(line); } } // ここにプログラムを書く( sample2 参照) } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println(" 値が正しくありません "); }

ヒント(2):行列要素の整列表示(3 *3型) System.out.println("A="); for (int i = 0; i < 3; i++) { System.out.print(“|"); for (int j = 0; j < 3; j++) { System.out.printf("%8.3f\t", a[i][j]); } System.out.println(“|"); } sample1 と同じ

実行結果の例 --a11= 1 … A= | | | | L1= 5.0+i*0.0, L2=-1.0-i*0.0 X1=[…, …], x2=[…, …] ・・・第1要素は1として、ベクトルの大きさ(ノルム)が1と なるように プログラムを書くこと。 A[0][1]=0 の時はどうする?自分で 考えて みよ。(ボーナス・ポイント)

ヒント(3):2次方程式の解法 D=b*b-4*a*c; // 解の判別式 ( sample2 を見よ) if(D>0){Re1=(-b+Math.sqrt(D))/(2*a); //Re1, Re2 は実部 Re2=(-b-Math.sqrt(D))/(2*a); Im=0;} //Im は虚部 else if(D==0){Re1=-b/(2*a); Re2=Im=0;} else {Re1=-b/(2*a); Re2=Re1; Im=Math.sqrt(-D)/(2*a); } //Math.sqrt の中身に注意 注意:雛形(ヒント(1))では配列の定義で a[][] を使っている。 sample2 での a は2次方程式の係数の一つ。重複して使うと・・・

ヒント(3):続き 出力の際も判別式の値で分岐 if(D==0){ System.out.println( Re1 + "+" + "i*" + Im); } else { System.out.println( Re1 + "+" + "i*" + Im); // Im に虚数単位 i を掛けておく System.out.println( Re2 + "-" + "i*" + Im); }