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

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


[一覧に戻る]


課題F3

問題

グラム・シュミットの直交化法は,線形代数において,空間の正規直交基底を得るための重要な手法である.ここでは,3次元の場合に限定して説明をする. 線形独立である3つの3次元実ベクトル $\mathbb{v}_1$, $\mathbb{v}_2$, $\mathbb{v}_3$ に対して,次の操作によって得られるベクトル $\mathbb{u}_1$, $\mathbb{u}_2$, $\mathbb{u}_3$と$\mathbb{e}_1$, $\mathbb{e}_2$, $\mathbb{e}_3$ を考える. ただし,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にて,プログラムを作成したディレクトリで以下を実行せよ.
% ~ta001026/enshu1p/checker_f3.rb ファイル名
「Submission successfully completed.」と表示されれば,提出が完了したことになる.


[一覧に戻る]