数値解析法 (数値計算 編), 2004-07-23 質問と回答, M は宮本による回答。 h02s2004: コンピュータ言語を一般的(日本語や英語など・・・)に変換させるという ことは大変なことなんですか? つまり、ビルゲイツは偉大な人なんですか? M: 「つまり」という接続詞の使い方を間違えていませんか ? h02s2007: 世の中に出ているOSで先生は不便を感じている事はありますか? M: 今のところ FreeBSD で特に不満はありません。 h02s2009: Fortranのようなソフトは、その気になれば個人でも作れるような代物 なんですか? M: たぶんそうです。 h02s2010: デスクトップにあるファイルが次回のログインでは削除されていますが、 これはどのような処理を通って行われているのですか? M: あなたが言っている通り, デスクトップにあるファイルを削除しているのでしょう。 h02s2014: プログラムでNAN NANってどういう意味なんですか? M: プログラムでの意味はわかりませんが, 実行結果の出力であれば, 「Not A Number」 すなわち「数値ではない」という意味です。*例えば* セロ割るゼロは数学的に未定義 ですから, もし意図せずにそういう計算を実行してしまったら, NAN とするしか ありませんね。 h02s2018: Linuxのタスクバーで右クリックをすると、殺すという項目があるのですが、 これを実行すると中の情報が消えるとということですか? 先生は使ったことありますか? M: なぜ「殺す」が「消える」と解釈されるのか謎ですが, たぶん kill コマンドの ことだと思われます。そのメニューからは使ったことありませんが。 h02s2020: モンテカルロ法によるエクササイズ3.8の8分球の体積のを求める方法で 最終的に計算式を解いていくとπが出てきますが、中学校で習った球の体積を求める 方法で (4πr^3)/3 とありますがこれをさらに8で割れば8分球の体積は求められると 思うのですが、この積分式を用いると (4πr^3)/3 で体積を求めるのとではどのように 違いが出てくるのでしょうか? ただ単に、体積を求めるだけなら後者を用いたほうがらくだと思うのですが・・・。 M: それがアルゴリズムの妙というものです。 体積を求めたい図形を表わす式が与えられている場合に, 前者の方法ではプログラムの 被積分関数をそのように置けばオシマイですが, 後者の方法では解析的に積分を実行 して体積を計算する公式をその図形ごとに個別に求めなければいけません。そもそも 被積分関数が素直じゃないときには ...... h02s2021: モンテカルロ法のところで、自分なりにプログラムしてコンパイルしようと したら、いつも undefined reference to "rrand" と出てくるのですが、rrandを定義 するにはどうしたらよいのでしょうか。 M: 文字通り, あなたのプログラムの中で rrand を定義すれば良いのでは ? ちなみに rrand の実装例は Listing 21 のプログラム中に示されています。 h02s2028: 7月10日までは、授業自体は終わっていても、自分が出したレポートに 対する先生の返事はもらえるんですか? M: 日付は 8/10 の間違いだと思いますが, 例えいつであっても提出したレポートに 対する私の意見を求めることは可能なはずですが ? h02s2029: 演習3.5でg(x)の範囲、無限遠をどうあらわせばよいかがわかりません。 擬似的に一億等の数字を入れても結果が0.としかでてこないのですが、どうすれば いいでしょう? M: 関与する変数は何で, その値はどういう意味なのか, よーーーく考えてみましょう。 h02s2032: 課題には直接書かれてはいないのですが、乱数の変化による解の変化も 記載してみてもよいのでしょうか ? そのとき乱数を変化させたときの解の変化は わかりやすくグラフに表せばよいでしょうか ? M: 直接書かれていないことは, 直接に要求あるいは禁止されているわけではありま せん。間接的には何かあるかもしれませんが。読者に優しいレポート (報告書) を作成 するための工夫は, 大いに推奨されます。あたりまえですが。 h02s2034: プログラムを組んで計算をするとき、単純なプログラムでは誤差がでます が、高度なプログラムを組んでいくとどの程度まで計算の精度を高めることができる のですか。 M: 誤差が出るのはプログラムが単純だから, あるいは高度なプログラムだから, では ありません。計算の精度を高める工夫をすれば高まるし, しなければそれなりという だけのことです。プログラムは作者の意図とは別に, 記述された通りに実行され, そしてその結果を返します。実に素直な話です。 h02s2040: 他の人の質問を一通り読んでたら質問したかったことがほとんど解決して しまいました‥‥。〆切が8月10日ということで他の教科のテストが一通り終わった らゆっくり考えながらやろうと思います。この講義はパズル感覚で、とても楽しかった です。全然質問じゃなくてすみません‥‥。 M: 逆に言えば, そのような質問はたいていプリミティブであり, 価値が低いことが多い ということですね。 「パズル感覚で楽しめた」ということは, 実はとても大切なことじゃないかなと個人的 には思っています。その意味で, たとえ質問じゃなくても, あなたの感想には価値が あると思います。 h02s2045: 二進法でコンピュータを作るのと十進法で作るのとでは、どちらがいいの ですか。また互いの利点・欠点を教えてください。 普及からみると二進法で作られている方が優れているのだろうと予想できますが... どうしてだろうか。 M: 真偽の二値論理とその電気のオン・オフによる実装とがなじみやすかったの でしょう。しかし実数の表現として二進数を使うと二進十進変換で誤差を生じる可能性 があります (テキストで説明済み)。世の中には一銭・一セントたりとも誤差があっては 困るというビジネスの世界もあります。そういう世界では十進で計算が行なわれている と聞いたことがあるような気がします。もちろん計算機自体は二進数で駆動しているの ですが。 h02s2048: rrandはrandと違い0から1までの範囲になってますが、rrandの一番初めの rは何を表してるんですか? M: さて何なんでしょうね ? 名前を変えてみたら何か違いはありますか ? h02s2049: 分割数の数を多くすると積分の精度があがるわけですが、採用する公式に よって違うとは思いますが、精度のよい分割数の目安は多くの人に知られているの ですか? M: もちろん「採用する公式」によっても違いますが, それだけで決まるものでもありま せんね。したがって一般解としての分割数の目安などあろうはずもありませんね。 h02s2051: コンピューター内ではsin・cosなどの三角関数の計算はテーラー展開を用い て値を求めていると思うのですが、実際はどのように計算が行われているのですか? M: もしテーラー展開ならば, それ以上特別なことは無いと思われます。それ以外にも, ある程度の結果を数表としてあらかじめ持っておくというのも有力な手段で, それを 元に簡単な補完で値を求め ... などという手もあるかと思われます。 ちなみに以前に Intel の Pentium プロセッサのバグ騒ぎがありましたが, あれは 割り算のための内部の数表のエラーでしたね。 h02s2053: もう授業がないのでおすすめの参考書を教えてください。 M: 実は授業期間中も授業期間外も言うことは同じなんです。すなわち推奨する文法書は ひとつ挙げてありますし, 何の参考にする参考書が必要なのかは本人以外に知りようが ないので自分で選んでもらうしかない。 h02s2054: 出席確認の質問とExerciseの課題の出来での点数はどのような比率で付くの でしょうか? M: ぎくっ, まだ決めていません。ところで, もし質問の比率が高かったとしたら, 合格点に達する人はどの程度になると予想しますか ? みなさんの質問はこうして公開 されているのですから, 採点者になったつもりで考えてみるというのはどうでしょう。 h02s2055: 必死になってプログラムを作っているのですがなかなかうまくいっていま せん。そんな私に救いはあるのでしょうか? M: お決まりの文句としては「そういう試行錯誤の過程が大事で, そうした経験が きっと後で効いてくるでしょう」というものでしょうか。 まあ「神のみぞ知る」でしょうね。 h02s2064: 夏休み中でも8月10日までは質問があればメールすれば教えていただけ ますか? M: 期間にも手段にも制限は無いと思われますが, 逆に制限があると予想する根拠は 何なんでしょうね。ついでに言うと, 質問したからといって期待した答えが直接的に 得られるという保証もないのです。しかしこれだって大学という高等教育機関ならば 当たり前のことですね。 h02s2068: FORMATについて質問させていただきます。 宮永先生の講義のLIST11で(*,*)の中身をいろいろ変えてコンパイルして実行して みたのですが、*の中身を変えても実行した中身に変化がありませんでした。これは、 FORMAT文が関係しているとききましたが、市販されている参考書の中で先生のお勧めが あったら教えて下さい。 M: あなたがどのようにプログラムを変更して実行したのかわかりませんので, 私が言う ことは何もありません。FORMAT 文については, きちんとした定義を参照できることが 重要と考えていますが, 推奨する文法書は既に示されています。 h02s2069: 前回の質問が、意味を取り違えられてしまったようなのでもう一度同じ 質問をしたいと思います。Windows、MacOS、UNIXそれぞれのOSについて、宮本先生が 個人的に感じている長所短所等を簡潔に教えてください。 M: 毎回の回答が意味を取り違えられているようなので, もう一度言いますが, 回答は 解答ではありませんよ。なぜなら私は全知全能ではない, すなわち私の答が正しいと いう保証は, 実はどこにも無いわけです。また大学というところは, 他人のいう断片的 な知識を記憶するところでもありません。せいぜい他人の意見は参考程度にとどめ, 自らが主体的に学び・考える能力を身につける場所だと思います。結論として, 私と いう特定の個人の感想に意味があるとは思えない, それよりも借り物ではない自分の 意見を持つようにしてください。 h02s2074: 科学計算で使われるプログラム言語はfortran以外なにがあるのですか? M: 一般に用いられるプログラム言語の種類と大きな違いは無いと思われます。すなわち 最近では C/C++ なども使われるかもしれませんし, 特殊な用途のために特殊に設計 された独自の言語が用いられるかもしれません。 h00s2071: この講義のレポートの提出についての質問なのですが弘前大学より送信 しないといけないでしょうか? M: そのような制限をした記憶はありませんし, 制限する意味があるとも思えません。