数値解析法 (数値計算 編), 2003-07-11 質問と回答, M は宮本による回答。 h98s2024: モンテカルロ法のところで乱数の生成関数rrandが出てきますが、39ページListing 21 の28行目のパラメタの設定で L=843314861 と C=453816693 の数には何かこの数でなくてはならない意味があるのでしょうか? M: ここで紹介した混合型合同法を用いて一様乱数を得るのには, この値が良いのだそうです。 h01s2001: red hatでした。家でできるんですか?マトリックスのスクリーンセーバーがred hatに入っているのを見て思ったんですが、 映画のマトリックスのような仮想世界をコンピューターで実際作れますか? M: あなたの家にどんなコンピュータがあるのか分かりませんので, 確答はできませんが, PC であれば ``おそらく Yes'' です。 また後半について, どこまでリアルに実現するか, そのためのコストは, などによって実際に作れるかどうかが決まると思われます。 ちなみに, マトリックスの映画で使われた CG 画像は FreeBSD のシステムで, タイタニックは Linux システムで作成されたと聞いたことがあります。 h01s2002: 先生はなんのOSを使っているのでしょうか? M: ほとんど FreeBSD です。 h01s2003: ndivの数値を変えることによって誤差はどのようにかわるのですか? M: 講義資料や数値解析の本に書いてありませんか ? h01s2004: ニュートン_ラフソン法で解がたくさんあるときは、こちらで入力した値に一番近い解の近似がなされるのですか? M: 一般にはそうとも限らないと思います。単調に変化しない関数の場合や, 初期値が充分に解の ``近傍'' にない場合などが考えられるでしょう。 h01s2005: ex3.3がまったくわかりません。 M: 何が分からないのでしょうか ? 漠然とではなくて具体的に考えてみれば, 対処のための方針を立てることができます。 問題文の言葉の意味がわからないのですか ? どんなプログラムを作れば良いかが分からないのですか ? レポートとして何を書けばいいのかが分からないのですか ? h01s2007: 表示誤差などを未然に防ぐ方法はありますか? M: ``未然に'' っていうところや一般的な方法があるのかどうかというところが問題ですし, ``防ぐ'' と言っても完全に防ぐ (誤差をゼロにする) のかある閾値以下に誤差を小さくすればいいのか, あなたはどうしたいのでしょうか ? h01s2008: 授業後に問題を解いていて、わからないところがあった場合、先生に聞きに言っても良いのでしょうか? M: 特例の規則が無い場合には, 一般の規則に従うと考えるのが常識的判断でしょう。ちなみに Web ページに私は何と書いていたでしょうか ? h01s2009: Exercise3.3でnとaにどの値を入力しても解が同じ値になるのですがこれは、どこが間違ってるんですか? M: この情報だけからでは, プログラムがあなたの意図を正しく記述できていないのだろうということしか言えません。 h01s2011: 出席やレポート提出や質問の内容の点数配分はどうようになっているのでしょうか? M: シラバスには何と書いてありましたっけ ? h01s2012: fortranは、数値計算に向いたプログラムだということですが、それはなぜですか。 M: 文法が単純なのでコンパイラが作りやすい, オブジェクトの高速化をしやすい, 数式をそのままの形で記述できる, などのためだそうです。 h01s2013: exercise3.3の課題で、メイン文でn,aを宣言したのですが、f(x)、df(x)、を読み取るところで、きちんと読み取ってくれません。 コンパイルは、うまくいくのですが、どんなn,a,の値を入れても1近遍になってしまいます。 今日、ずっと考えていたのですが、わかりません。なにか、ヒントをください。 M: この情報だけからでは, プログラムがあなたの意図を正しく記述できていないのだろうということしか言えません。 h01s2014: 今授業で学んでいる内容は、将来使う機会は多いですか? M: あなたが将来なにをするかに依存するし, ``多い'' というのも基準がなければ何とも言えませんね。 h01s2015: プログラムを実行して、求めた答えの桁数はどのように決められているのですか? M: 質問の意図がわかりません。どういう答えが得られるのかは, プログラムしだい (プログラム作成者の意図しだい) だと思うのですが ?? h01s2016: 教科書を見てたら水準3000とか水準5000とかあったんですけれどもこれは何を意味するんですか? M: 昔の JIS での言い方だと思います。FORTRAN66 の時代の話でしょうか。 h01s2020: 先生が尊敬している人物は誰ですか?できればその人物を尊敬している理由も教えてほしいと思います。 M: Sherlock Holms !! h01s2021: 今日はまったく進みませんでした。質問は、問3−4のように問3−1も説明文をつけ加えて提出するとよいでしょうか。 M: どうすると ``よい'' かは, 自分で考えてください。何をどう書くかの全部がレポート作成者の責任なのでは ? h01s2022: Ctrl + x , Ctrl + s の組み合わせで上書き保存できますが、この操作はWindowsの方でも使えるのでしょうか? M: アプリケーション依存な話ですね (?) h01s2023: Fortranのプログラムの組み方によって処理速度が異なりますが、スーパーコンピュータの並列化の効率に影響があるほど、並列化を意識したものとしないものには差があるのですか? M: ``Fortranのプログラムの組み方によって処理速度が異なりますが'' と自分で書いているのでは ? まぁ, 意識するのとそれを実現するのは違うという話もあるけど。 h01s2025: 正しい結果が得られたのに、隣の人と多少違いがありました。同じ内容でも一通りではないのでしょうか? M: 何の話なのか, 何がどうしたのか, さっぱり分かりませんね。 h01s2026: レポートの配点などは、どんな風にするつもりなのでしょうか? M: ``レポートの配点'' とは, ひとつ目のレポートを 50\%, 二つ目を 30\%, 三つ目を 10 \%, ... とかいう意味でしょうか ? そんなことをする合理的な理由があると思いますか ? h01s2027: 実際、この授業は、どのような意味があるのか。 M: 意味付けは個個人の価値観に依存するのではないでしょうか。 h01s2028: 数値積分で、台形公式、中点公式、シンプソンの公式とありますが、シンプソンの公式が一番誤差が少なく優れているように思えますが、ほかの2つで計算するメリットはあるんですか? M: 教育的なメリットかな。他への発展性とかかも。 h01s2029: 0から∞の積分はどのようにやるんですか?繰り返し法をつかってできますか? M: それを考えるのが, 課題の主要部分のひとつです。 h01s2030: 先生は劉備元徳の行いについてどう思われますか?先生は授業中緊急に呼び出されたり、身内の不幸があった場合どうされますか? M: 彼のどんな行為についての質問でしょうか ? 後半の質問については, 切迫性と重要性に依存します。 h01s2033: (July 18) となっていますが、なぜ括弧なんですか? M: 私が担当した初めの日に, 口頭で説明したはずですが。 h01s2034: コンパイラにはg77、f77など数種類ありますが、コンパイラの違いによって処理能力に差が出ることはあるのですか。 実行形式に翻訳する作業はどのコンパイラでも共通なのではないのですか。 M: 目的を実現する為の手順/方法が一通りではないってことは常識では ? 複雑な仕事であればあるほど, 工夫の余地があるのでは ? h01s2036: Exercise3.1を添付しました。ほとんど質問に答えてないのになぜ質問させるんですか? M: 既出の質問です。 h01s2037: 作成したプログラミングのファイルの容量を確認することはできるのですか? M: man ls (唯一の解ではないと思うが) h01s2038: まだ、課題3.1をやってます。なかなかコンパイルがうまくいきません。そうしているうちに六時を回ってしまいました。 すいません・・・ですが、もうそろそろできあがりそうです。 M: そうですが, でも提出物が要件を満足していません。 h01s2039: この授業のレポートと出席は何点配分ですか? M: シラバスに書いてありませんか ? h01s2042: 無限大を表すときには、どうすればよいのでしょうか? M: 目的により手段が異なるのではないですか ? あなたの目的が上記の一文だけでは分かりませんので, 一般的な答えは出せません。 h01s2043: exercise3-3途中までやりました。先週の質問で、red hatを間違ってred hotと書いてる人がいたけど、意味は伝わってるはずなのになぜイヤミったらしい答えを返すんだろうか? M: 確かに観察された事実から隠れた意味を推定することは可能ですが, その推定は間違っている可能性もあります。 しかしコミュニケーションの場面では, 文面をあるがままに素直に受け取ることで, 少なくとも私が誤解曲解する愚を避けることはできます。 またプログラムでは, 一文字の書き損じのために意図した動作をしないのが普通です。 h01s2044: 時々、プログラミングなどをしていて成功すると喜びを感じたりしますが、最近ではあまりありません。先生はコンピューターをしていてどんな時に幸せを感じますか? M: ものを作るという意味で, 意図通りに動作するものを完成させたときの達成感でしょうか。うまいやり方を思いついたときなんかも, 嬉しいですね。 h01s2047: 体裁をなしていない提出物は、再提出しなくてはいけないのですか。 M: 受験者にはテストの答案で白紙回答する自由があります。ただし零点を覚悟することになると思いますが。 h01s2048: 表示誤差を防ぐ方法はないのでしょうか? M: この回の h01s2007 を参照 h01s2049: なぜスクリーンセーバーの設定を解除しないのですか? M: それだけの手間をかける必要性を感じないから。 h01s2052: Exercise3.6付近の問題で g77 -o pi1 pi1.f rrand.f と乱数関数をもコンパイルしても実行できません。この場合Listing21で作ったrrand(s)をいじる必要があるのでしょうか?  また二つのプログラムを用いるのではなく、またひとつのプログラムの中に乱数関数を定義して組みこむやり方でもいいんでしょうか? M: 上記の情報だけからでは, 何とも言えません。私の手元で講義資料中のプログラムは全てちゃんと動いてることは事実です。後半については, そういう判断をあなたは自分でできないのですか ? h01s2056: 課題を何個やると(優)になるのでしょうか? M: ダメダメなレポートは, たとえいくつ提出しても (優) にはならないと思いませんか ? 例えてみれば, 「零点×レポート五個」 のように。 h01s2057: セグメントエラーの後に増殖するファイルは、消しても大丈夫なのですか? M: 何の目的に対して大丈夫かを聞いているのでしょうか ? あなたの用途にとって欠かせないものならば, 消しちゃダメでしょう。 h01s2059: なぜUNIXで出席メールをしてはいけないのですか? M: メールのデータが, Unix 側と Windows 側とに分散してしまいます。この意味がわからない人には, データを一元管理することをおすすめしています。と, 鈴木先生の回に説明したと思うのですが ?? h01s2060: 点数はどのようにつけるんですか? M: 質問の意図が分かりません。良いレポートに良い点をつけるのが常識的だと思いますが。 h01s2064: ニュートン-ラフソン法でテーラー展開をするときにどの関数のときでも例題にのっている方法をとれば良いのでしょうか M: 関数によってテーラー展開の方法が違うのですか ? h01s2065: 理工系の人間で、これらのようなプログラムを使いこなせずに大学院に進学したり就職した場合、不利になると思いますか。 M: 進んだ分野に依存する話だと思います。 h01s2066: エクササイズ3.5で0から無限大への積分はできるんですか? M: それを工夫するのも課題のうち。 h01s2067: 範囲の値を無限大まで広げるとき関数を分割する数と範囲の値を、積分の値が変化しないくらい大きくしたのですが、この方法じゃだめですか? M: 自分で判断できないのでしょうか ? h01s2069: Fortran言語とC言語では何か違うのですか?またあるとすれば計算方法などの難易度はどうですか? M: 独語と仏語では違いがあると思いますか ? またあるとすれば作詞方法などの難易度はどうだと思いますか ? h01s2075: LINUX上で作られたFORTRANのプログラムをWINDOWS上で実行する方法はあるのですか?また、LINUXのテキストエディタ(emacs等)に文章を入力するとき、日本語を入力する方法はないのですか? M: コンパイルして生成したオブジェクトは, システム依存部分があるのでそのままでは他のシステムで実行できませんが, その違いを吸収する仕組みがあれば可能かもしれません。システムのエミュレーションをするという手もある。 ソースを持ってきてコンパイルし直すのなら, それは実行できる。でもシステムに依存する部分を使っているプログラムであればダメなこともあるかも。 で, 日本語を入力する方法はあるでしょうが, その方法はシステム依存です。