数値解析法 (Fortran 編), 2002-06-28 質問と回答 M は宮本による回答。 h99s2076: 宮本先生は実際にFORTRANを使ってどのような事(実験結果など)を 計算しているのですか? M: 6/21 分の質問と回答を見てください。 h00s2003: バックアップ機能はファイルを作れば付くと思いますが、容量の分を考えて 別にしないんですか? M: 「機能 (能力) がファイルを作れば付く」の意味がわかりません。 また何をどう「別にする」のでしょうか。 h00s2008: 四回目終了後、一週間以内にプログラムを製作して提出するということ ですが、プログラムを製作上どうしても分からないところが、出てくるとおもいます。 そこで参考になるテキストは何ですか? また完成しなかったらどうしたらいいんですか? M: 個人の資質や状況はまちまちですから, 常に正しい答えはありません。図書館や 書店で自分にあったものを探してください。 また, 試験を受けたときに制限時間内に答案を完成できなかったら, あなたはどう しますか ? h00s2009: ガウスのプログラムでgauss(xx, ss) とgauss(x, s) を使っていたの ですが何か違いがあるのですが? M: 見た通り, 字が違います。意味の違いを知りたければ, 文法書を見て考えて ください。コンピュータは自由に使えるので, 試してみることもできますね。 h00s2014: lapackなどのライブラリの入手方法を教えて下さい。 M: 例えば http://www.netlib.org/ には各種のライブラリがあります。 h00s2015: 出席しました。 M: そうですか, でもメールが要件 (何らかの質問を含むこと) を満たしていません。 h00s2018: 今、授業でやっていることは、プログラミングの基礎だと思いますが、 いったい今授業でやっていることは、どのような、プログラミング、職種などに、 対応できるのでしょうか? それとも、今やっていることは、どのプログラミングにも 共通していることでしょうか? M: 学校の語学の授業はその言語によるコミュニケーションの基礎だと思いますが, いったいそれはどのような場面でのコミュニケーション・職種などに対応できるもの だと思いますか ? h00s2022: コンピューターの容量が40を越えていて新しいファイルが作れなかったん ですがユニックスのファイルは圧縮できないんですか? その他、この講義が終わってもホームページは残しておくのでしょうか? また、課題でわからないこととか、メールで質問は受け付けてくれるのでしょうか? M: データの圧縮とはシステムに依存しない概念ですよね。したがって, そのための ツール (プログラム) があれば可能だというは予想できると思います。実際に man -k compress すると, まさしく compress というコマンド (プログラム) がある ことがわかりますね。最近はもっと圧縮効率の高い gzip や bzip2 を使う場合が多い ようです。必要ならばこれらの使い方は man で調べてください。 (その二) これまでの講義の Web ページは全て残してあります。ここから帰納的に 推定できることは ... (その三) メールでの質問を受け付けると, 授業中に言いました。 h00s2024: Emacsってwindowsだとどうゆうものにあたるんですか? M: (普通の答え) Emacs はエディターなので, Windows での 秀丸エディター・ Wz エディター・MIFES・Em エディター などなどに相当します。もちろん Windows 上 で動作する Emacs もあります。 (ひねった答え) Emacs は Elisp 言語処理系なので ... , Emacs はファイル操作環境 なので ... , Emacs は shell なので ... , Emacs はメールツールなので ... , キリがない。あなたにとって Emacs とは何ですか ? h00s2027: バッファーをウィンドウズに保存する具体的な方法、手順を教えて ください。どのコマンドを入力すればよいのかなど。 M: この質問の文面だけからでは, あなたが意図することがわかりません。何の バッファーですか ? ウィンドウズ (いわゆる基本ソフト) に保存するとはどういう 意味でしょうか ? 下の [*a] も参照してください。 h00s2028: 今日の授業で倍倍ゲームというプログラムをつくったんですけど、逆に 二分の一になるプログラムはどうやってつくるんでしょうか? M: プログラムを読んで自分で考えてください。試してみることもできますね。どういう 仕掛けで二倍になるのかがわかれば, 望み通りに修正することは容易でしょう。 h00s2030: 自分が作ったプログラムをコンパイルしたら、そのあとどのようにして メールで提出したらいいかよくわかりません。 あとWindows上にUnixを開いて行う方法も知りたいです。 M: 作成したプログラムのソースファイルをメールに添付して提出してください。 下の [*a] [*b] も参照してください。 Windows と Unix は別種の基本ソフトです。あなたの言う「Windows 上に Unix を 開く」とはどういう事ですか ? h00s2032: unixのプログラムを、windowsにする方法がわかりません。 M: いわゆる Windows はマイクロソフト社 (MS) の製品です。MS の許可無く別のものを MS の製品としてはいけないと思います。それともただ単にプログラム名を windows に するという話かな ? h00s2033: どうしてあのような記号で開けたりするかわかりません M: この質問の文面だけからでは, あなたが意図することがわかりません。 「あのような記号」や「開ける」を説明してください。 h00s2035: フォートランで作成した命令文中に間違いがあったらしいのですが命令 自体はうまくいきました。そういうときはそのままでよいのでしょうか? M: あなたが「間違いがあったらしい」とか「命令自体はうまくいった」と判断した 根拠は何でしょうか ? 一般には, 途中に間違いがあるのに結果が正しい という状態を 良しとするのは, 科学的・論理的な態度だとは思えません。 h00s2039: レポート課題の提出の仕方(UnixからWindowsに作ったプログラムを移す?) について授業中説明がありましたが、いまいちよくわかりません。もう一度詳細に 教えてください。 M: 下の [*a] [*b] も参照してください。 h00s2045: fortranを簡単にマスターするにはどうすればいいですか? M: 学問に王道なし。あえて言えば, 良く考えることと試してみることでしょうか。 h00s2050: 今の授業で作成したファイルの容量はどのように確認するのですか? M: man du h00s2052: fortranとwindowsはどのような関係ですか?fortranからwindowsのすべての ソフトは開くことかできるのですか? M: Fortran はプログラム言語の名称で, 一方 Windows は基本ソフト (Operating System, OS) の名称であってマイクロソフト社の製品です。 「Windows のソフトを開く」とはどういう事ですか ? (今回は説明しませんでしたが) Fortran にはファイルへのデータの入出力のために OPEN 文があります。もしこの 意味での「開く」を知りたければ, 文法書・入門書を見てください。 h00s2053: emacs とFortranはどのようにして繋がってるのか?同じデイレクトリに あるのですか? M: あなたの言う「繋がっている」とは, 何を意味していますか ? 同じディレクトリにあるのかどうかは, 自分で調べてみればわかることですね。 man which h00s2057: このあいだのPSファイルは結局何メガあったのですか? 今回のは? そして、UNIXで使えるファイルはWINDOWSでも消せるのですか? M: 古い方の PS ファイルは消してしまったので, 今ではそれらの大きさはわかりま せん。今回のものについては, 自分で調べてみればよろしいのでは ? (man ls) そして, Unix で *使える* ファイルとはどういう意味ですか ? 例えば emacs は Unix で使えるプログラムであり, ディスク上にファイルとして置いてありますが。 一方 Windows で消せるファイルとは, Windows からアクセスできて, 消去可能の 属性が付いた (というよりも Read only 属性ではない) ファイルであることは 御存じですよね。 h00s2058: プログラムを作ったあとlsで見ると似たような名前のファイルが2,3個 あるんですが(例えばX.f~とX*)、レポートとして提出するときはどれを提出すれば いいんですか。 M: 必要なファイルを提出すれば良いでしょう。どれが必要なのかは, ファイルの中身を 知らない私には答えようもありません。 h00s2059: fortramは主にどういう人が利用してるんですか? M: Fortran の事ですか ? Fortran 言語は科学技術計算のために開発されました。 h00s2060: 研究者は昔は自分でソフトを作っていたそうですが、今でも作る時は あるのですか? M: 研究とはまだ誰もやっていない新しいことをやらなければ意味がありません。 そのために必要な道具は, 市販品では間尺に合わないことも多々あります。 ソフトウェアはここで言う道具のうちに含まれます。 h00s2061: 今回の質問は数学などで出てくる極限や無限大などを扱う数式について 扱うことができるのかということです。 M: 扱い方しだいでしょう。 h00s2062: Listing 11の倍々ゲームで自分で好きな数字を入力したい時はプログラム をどう変えればいいんですか? M: キーボードからの数値の入力を受け付けるように命令文を書けば良いだけです。 h00s2063: プログラムを保存した後、#や〜などがついていたりしてるんですが何か 違いがあるんですか? M: どこに # や ~ が付くのでしょうか ? 勝手にそれらが付いたモノに変わってしまう のでしょうか ? 違いがあるのか調べてみれば良いのでは ? h00s2064: 画面右にだしている時計の出し方を教えてください。あと先生の声が 小さくて添付の仕方がわからなかったので教えてください。 M: man xclock のことでしょうか。 また, 添付の仕方については説明しませんでしたが, あなたは何を何処に添付する ことを考えているのでしょうか ? 下の [*b] も参照してください。 h00s2068: このプログラムでも、解けない公式というのはあるのですか。 M: 「このプログラム」とはどれのことでしょうか ? また「公式」に解けるものと 解けないものがあるのですか ? h00s2070: メールでプログラムを添付して送信するやり方がいまいち分からない。 M: そうですか。下の [*b] も参照してください。 h00s2072: Fortranをもっと簡単にしたのがマイコンなんですか? それとも全く別の ものなのですか? あと数式をプログラムで計算することをやってますが、Fortranの数式で表せる限界は あるのでしょうか? M: Fortran はプログラム言語の名称です。マイコンはマイクロコンピュータの略 でしょう。同一かどうか, 包含関係にあるかどうか, 調べて考えてみましょう。 「Fortran の数式で表わせる限界」の意味がよくわかりません。何を想定しているので しょうか。数式を紙上に鉛筆で書いて, それを日本語で説明できるのであれば, それに 沿って Fortran 言語で表現すれば良いだけでは ? h00s2075: プログラム『倍数』での入力数値77は76.999・・・と表示され ます。これはどうしてでしょうか? 77.000・・とするにはどうしたらよいで しょうか? また、プログラムを作成してwindowsのメールに添付して送るには、どのような手順を 踏めばよいか、詳しく教えてください。 M: 十進実数をコンピュータ内部での二進実数で表現するときの丸め誤差・打ち切り 誤差の可能性はありますが, 整数値で表現できる数値でこんなことが起きるとは, 簡単には理解できませんね。浮動小数点とその正規化について調べてみてください。 また, 下の [*a] [*b] も参照してください。 h00s2079: "Fortran"は人名ですか?それとも、何かの英単語をくっ付けた造語 でしょうか? M: 一応 ``formula translation (数式翻訳)'' の略語ということになっています。 文法書の中には Fortran の歴史的な話が書いてあるものもあるのでは ? h00s2082: Fortranの講義のホームページの内容を理解すればどの程度までFortranを 理解できたことになりますか? また、内容をコピーしたら、教科書として使えますか? emacsでグラフの書き方がわかりません。 M: 何らかの数値計算のプログラムを作るのに必要最低限の程度でしょう。 また教科書として使えるかどうかは, 使う人しだいでしょう。良い教科書かどうかは, また別の問題ですが。 エディターである emacs でグラフを描く方法は, 私にもわかりません。 h00s2083: 変数について、integerやrealやdoubl precisionなどさまざまなものが ありますが、万能なものはないんでしょうか? M: Fortran にはない。言語によっては, 変数の型が一つしかないものや, 変数に 明示的な型が無い (文脈により解釈が変わる) ものもあります。 h00s2084: 質問は、サブルーチンの使い方がいまいちなので、わかりやすく教えて ください。 あと、今回勉強しているFortranは、社会でどのように頻繁に使われているのですか。 また、「2.8.2 サブルーチン副プログラム」での15行目の「c」の意味は 何ですか? M: サブルーチンの使い方については, 適当な入門書をよく読んで考えてください。 あと, Fortran の使われ様については, 以前の質問と回答も見てください。 また, 行頭の「c」の意味についても, 文法書を見てください。 h00s5016: C言語とFortranでは、どちらのほうがより使いやすく、また人気が あるんですか? M: 目的によってどの言語が使いやすいか, また利用者集団によって人気があるかは 異なると思います。 h00s5018: 今回勉強しているunixはおもにどのようなところで扱われているのですか? 今後も発展していくものだと思いますか? M: 厳密に言えば「Unix」は登録商標であり, ある要件を満たしたものだけしかそれを 名乗れませんので, 扱っている場所は限られます。しかしここではそこまで厳しく 言わずに眷属全般を Unix と呼ぶことにしましょう。すると Unix はメインフレーム・ コンピュータやワークステーションを製造・販売している会社でも扱っていると言える でしょう。最近は Open Source な Linux や FreeBSD もありますので, これらは誰でも 扱えますね。 Unix 自体に新しい機能が追加されたりすることは, ほとんど無いと思われます。仕様が ある程度枯れた・安定した環境であることも Unix の特徴といえるかもしれません。 しかし個々の製品ごとに, 内部処理の効率化や, 周辺ソフトの充実などが計られていく ものと予想されます。 h00s5028: とくに質問はありません M: そうですか, でもメールが要件 (何らかの質問を含むこと) を満たしていません。 h00s5051: 前回のほかの人の質問でメールの送信する時間について回答では 15:30以前でもかまいません。とありましたが、WEBに掲載されている時間は 16:00〜18:00ですが? 授業の前に送信してもよかったということですか? M: (午後) 5:30 と 17:30 を足して二で割ったために 15:30 との表記になってしまった ようです (^_^;; 17:30 に修正しました。 [*a] 弘前大学総合情報処理センターの演習室のパソコンで, Unix で作成したファイル を Windows であつかう: Unix に login すると, 各自のホームディレクトリに windows というディレクトリが 用意されています。一方, Windows に login すると, 各自のディスクスペースとして H ドライブが割り当てられています。この二つの実体は同一のものです。 例えてみれば, 「デニス君の部屋の隣の部屋」と「ビル君の部屋」は実は同じ部屋の ことだということです。 この状況をどのように活用すれば良いでしょうかねぇ。 [*b] メールにプログラムを添付する: メールツールによって詳しい手順は異なります。AL-Mail の場合は ... ヘルプで 調べるか, マニュアルで調べるか, ネットで調べるか, 適当に使ってみるかしてみたら いかがでしょうか。 -- 文責: rmiya