Processing math: 22%

情報領域演習第一:P演習

電気通信大学情報理工学域I類 (情報系)
2017年度後学期


[一覧に戻る]


課題F3

問題

グラム・シュミットの直交化法は,線形代数において,空間の正規直交基底を得るための重要な手法である.ここでは,3次元の場合に限定して説明をする. 線形独立である3つの3次元実ベクトル v1, v2, v3 に対して,次の操作によって得られるベクトル u1, u2, u3e1, e2, e3 を考える. ただし,2つの3次元実ベクトル \mathbb{u}=(u_x, u_y, u_z)^\top, \mathbb{v}=(v_x, v_y, v_z)^\top に対して, \langle\mathbb{u}, \mathbb{v}\rangle = u_x v_x + u_y v_y + u_z v_z という内積を表し,\|u\| = \sqrt{ \langle u, u\rangle } である. ベクトル \mathbb{e}_1, \mathbb{e}_2, \mathbb{e}_3 がグラム・シュミットの直交化法によって得られるベクトルである. 3次元実ベクトル \mathbb{v}_1, \mathbb{v}_2, \mathbb{v}_3 がこの順で与えられたとき,グラム・シュミットの直交化法によって得られるベクトル \mathbb{e}_1, \mathbb{e}_2, \mathbb{e}_3 を計算するCプログラムを作成せよ.

入力仕様

出力仕様

作成したプログラムのファイル名を f3.c としたときの実行例
% gcc -lm f3.c
% ./a.out 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000
1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000
% ./a.out 1.000 1.000 1.000 1.000 2.000 3.000 1.000 4.000 9.000
0.577 0.577 0.577 -0.707 0.000 0.707 0.408 -0.816 0.408
% ./a.out 1.000 0.000 0.000 1.000 1.000 1.000 -1.000 -2.000 3.000
1.000 0.000 0.000 0.000 0.707 0.707 0.000 -0.707 0.707
% ./a.out 1.234 2.345 3.456 4.567 5.678 6.789 -7.890 -8.901 9.012
0.283 0.538 0.794 0.868 0.208 -0.451 0.408 -0.816 0.408

提出法

CEDにて,プログラムを作成したディレクトリで以下を実行せよ.
% ~oa000833/enshu1p/checker_f3.rb ファイル名
「Submission successfully completed.」と表示されれば,提出が完了したことになる.


[一覧に戻る]


[Teaching Top] [Top]
okamotoy@uec.ac.jp