• ベストアンサー

fortranについて

「ベクトルを入力して、それを正規化したものを出力するプログラムを作りなさい。ベクトルを正規化するとは、ベクトルをその長さで割り、長さを1にすることである。」  情報処理の講義で上記のような問題がでたのですが、どうすればいいのか分かりません。親切な方よかったら教えてください。ちなみにプログラムとはfortranのプログラムのことです。

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

  • ベストアンサー
  • selju
  • ベストアンサー率57% (100/173)
回答No.2

では、こちらの先生の講義ノートの例題プログラムを 参照されては如何でしょうか。 http://www.media.kyoto-u.ac.jp/htomita/ 初心者向けに詳しく、わかり易く書かれています。 お勧めです。 例題の中に、計算部分を前回答のように、 ちょっと変更するだけで、この問題の答えになるものがあると思います。 ではでは。

tka9999
質問者

お礼

ありがとうございます。上記のアドレスたいへん役に立ちました。最後まで質問につきあっていただき感謝しております。

その他の回答 (1)

  • selju
  • ベストアンサー率57% (100/173)
回答No.1

ベクトルとは、向きと量(大きさ)を表します。 たとえば、点1(1,1)から点2(4,5)への矢印を想像して下さい。 これを、ベクトルで表すと、a=(3,4)となります。 「3」がx成分、「4」がy成分です。 この時の量(大きさ)は、|a| = √3**2+4**2 = 5 Fortran的には、sqrt(3**2+4**2)でしょうか。 この量(大きさ)が、矢印の長さを表します。 「正規化する」というのは、「単位ベクトル化する」ということになり、 図的に言うと、「向きは同じで、長さ1の矢印を求めろ。」ということになります。 上記の場合の単位ベクトルを求めると、 e=a/|a|=(3/5,4/5)=(0.6,0.8)となり、 これは、0.6**2+0.8**2 = 1 長さが1となります。 Fortranでの入出力を具体的に言えば、 入力 3,4 出力 0.6,0.8 でしょうか。 3次元ベクトルの場合は、成分が3つになるだけで計算のやり方は一緒です。 格好良く作るなら、入力に成分数を加えて、 汎用的にすると独自性が出ると思います。 説明下手でごめんなさい。 わかるでしょうか。 プログラム化するときは、変数の型に注意してくださいね。 それでは、がんばって。

tka9999
質問者

補足

ていねいな回答どうもありがとうございます。仕組みというか内容はだいたいわかりました。しかし、具体的なプログラムがよく分からないのです。そのぐらい自分で考えろ!と思われるかもしれませんが本当に分からないのです。よかったら教えていただけないでしょうか?よろしくお願いします。