数値解析法 (Fortran 編), 2005-06-24 質問と回答, M は宮本による回答。 h03s2001: 授業では2進法でプログラムしていますが、10進法でプログラムはでき ないのですか? M: 「2進法でプログラム」する, とはどういう事ですか ? Fortran 言語でプログラム しているのではないのですか ? h03s2002: 逆に、質問が浮かばないときはどうすればいいのか? M: 何の「逆に」なのでしょうか ? 前段がないのに逆接の接続語だけが登場しても, 意味不明です。また「答えがわからなくて答案用紙を埋めることができないのですが, どうしたらいいですか ?」に類する質問に対しては, どう対処されることを期待して いるのでしょうね。 h03s2003: コンピュータに見かけ上気まぐれな行動をさせる事は可能だと思いますが、 させるとするとどのような命令文を主に用いるのが楽だと思いますか? M: ある命令文は, 定義された通りの動作をするだけで, 気まぐれな動作をするわけでは ありません。逆に, そうでなければ困ったことになりますよね。したがって, コンピュータに見かけ上気まぐれな動作をさせるためには, 別な工夫が必要ですね。 h03s2004: リスト9の中にc、、、、、、、、、、、、、、、のようなものが真ん中に 入っていましたが、これはいったい何を表しているんですか?もしよろしければ教えて ください。[文字化けしていました, メールソフトの設定を直してください] M: 一桁目に c または * のある行は, どのように取り扱われるのか, 文法書で確認 してください。 h03s2005: 複素数の計算ができないのですが、integerやrealなど数値の種類を、 complexに変えるだけではだめなのですか? M: ここの「複素数の計算ができない」という言葉は, 何を意味しているのでしょうか。 だって複素数の和とか積とかの計算の仕方を, あなたはわかっているのでしょ ? h03s2006: Fortranはたくさんある言語の中でも最も古くからある言語のひとつとあり ましたが、Fortarnの他に古くからある言語はありますか?そして、歴史が新しく使い 勝手がいい言語などありますか? M: Cobol とか Lisp とかが, 最も古い部類に入るようです。使い勝手については, その言語の得手不得手や使用目的に依存する話だと思うので, 一概には言えません。 h03s2007: fortran以外に数式を使用するプログラムはありますか? M: ほとんどの言語で使用すると思いますが。また「add a, b」とか「a b +」とかいう ものも, 演算の表記法のひとつではあります。それを「数式」と呼ぶかどうかは, 言葉の定義次第。 h03s2008: 物質理工学科で今後役立つライブラリーとしてどのようなものが挙げられ ますか M: 「学科で役立つ」というのが, どういうことを想定しているのか, イメージがわき ません。そもそも学科改組により物質理工学科の寿命も残りわずか。 h03s2009: 数値解析法では今どんな分野が注目されているのですか? M: この分野の研究をしているわけではないので, わかりません。しかし最近の コンピュータは, 一台で高性能なスーパーコンピュータではなく, 大多数の並列計算 により能力をかせぐ方式が幅をきかせているようですので, 並列計算が注目されている のかもしれません。 h03s2011: いまいち、この授業の資料を読んでも分からないので、変な質問をするよう ですが、Linaxで記録した情報をWindousでテンプレートしてメールで送ることは可能 ですか?Windousにそのファイルが見つからない場合、Linaxからデータを送ればいいの でしょうか? M: (1) どこがどのように分からないのか, 指摘してもらうととても助かります。 (2) メールに関する質問については, 「可能です」と答えておきます。なにしろ情報は OS に依存しない性質のもののハズですから。(3) 見つからない場合というのが, なぜ 生じるのでしょうか, 探す場所を間違えているのではないでしょうか ? (4) もちろん 「こうしなければいけない」などの制限はほとんど無いハズなので, もし必要ならば, どこからでもあなたの好きなところから, データなりなんなりと送れば良いのでは ? (5) もしもダメだと言われたら, どうするつもりなんだろう ? h03s2017: GNOME端末上では虚数はどのように表されるのですか?普段我々が使っている ように(例えば1 + 2i)表示されるのでしょうか?それとも別な表記なのでしょうか? M: GNOME端末上であろうと別の所であろうと, 表示する方の都合で表示形式が選択 されるのではないでしょうか ? もっとも, あまりに奇抜で独自で, 他人に理解できない 形式での表示では, 情報の伝達という意味で難点がありますね。 h03s2018: 今日はネクタイをしていませんでしたが、先生はクールビズ賛成派ですか。 M: 普段からほとんどしていませんが ? h03s2019: いままでは数値をとりあつかうプログラムを作成してきましたが(数値 解析法の授業のなのであたりまえなのですが)、他にfortranをもちいてどのような プログラムを作成できるのですか? M: アドベンチャーゲームの dungeon は FORTRAN で記述されています。凄い !! 最も, 本当のプログラマーは全てを Fortran で記述するという joke が有るくらい ですから, 頑張ればたいていのことは出来るのでしょう。 h03s2022: 今まで学生が作成したプログラムの中で、先生が「これは凄い」と思った プログラムはありましたか?あるとしたら、どういったプログラムでしたか? M: 記憶にありません, ということは無かったのかな。残念ながら。 h03s2023: 質問に答えてください。や、質問に対する回答になってない。などの生徒の 多数の意見があるんですがどう受け止めますか?国語力がないので……などと軽く返し ますか? M: そういう意見は私のところまで伝わってきていませんが, 本当に多数あるので しょうか。また, そもそも質問に対する解答をしているつもりはありません。単なる 回答ですから, 極論を言えば何でもアリのはずです。ノーコメントですら回答であると 主張した総理大臣もいたのですから。 それとも「生徒の多数」は, 特に根拠も示されない切り売りされた知識を暗記する ことが, 大学の勉強だとでも思っているのでしょうか ? こっちが聞きたいくらいです。 また例えば私が生半可な事を言うよりは, ちゃんとした文法書なりを参照した方が, はるかに正確で詳細に説明されていると思うので, 文法書を見るようにと言っている のですが, それはいけないことなのでしょうか ? h03s2024: Listing9の19行目の3.141……8D0のDはどんな意味なのですか? M: 数値の表現の仕方について, 文法書を参照してください。 h03s2025: 文法書を見ていて(*,*)ではなく(5,*)を使っているプログラムが書いて あったのですが、(*,*)と(5,*)ではどのような違いが生まれるのですか? M: (5,*) と書かれたときの 5 番の装置は標準入力装置です。(*,*) と書けば入出力の 装置としてはそのシステムでの標準のものが指定されたことになります。5 番の装置は 出力装置ではありません。 h03s2027: Exercse2.7で奇数列の和を求めるのはどうやればいいんですか?ヒントでもいいんであったら教えてください。 M: 問題文に書いてある通りなんですけど。数列って, 何だか分かっていますか ? 最近は高校の数学で習わないのかなぁ ? h03s2029: fortranの使い勝手の悪さは解消できないのか? M: そのために, FORTRAN66, Fortran77, Fortran90/95 と改訂が続けられているの ですが。Fortran77 レベルでそれなりに満足のいく使い勝手だと思いますが。どの辺の 使い勝手が悪いと感じているのでしょうか ? そういえば, 一時 ratfor というプリ プロセッサも開発されましたが, 結局普及しませんでしたね。 h03s2030: なぜかファイルがたくさんできてたので余分なものも添付されてます。 2次方程式の解のプログラムを作るので解が虚数のばあいでも虚数で表示したりする ことはできないのですか?あと整数でだけじゃなくてどんなものをabcにあてはめても かなり正確にルートなどの表示を使って出せたりはしないのですか? M: (1) そんなワケのワカラナイものを送りつけられても, 迷惑ですねぇ。レポートは 他人に読んでもらうものだという意識を持ちましょう。自己都合で押し付けるものでは ありません。(2) もちろん虚数を表示することは出来ますし, あなたが良いと思う様に 表示させるようにプログラムを作成すれば良いだけでは ? (3) 「かなり正確」という 言い方では, 間違うことも許容されているように聞こえますが, 数値計算の結果って, そんなんで良いの ? (4) もちろん表示のさせ方は, ご自由にプログラムしてください。 ただし独り善がりではなくて, みんなに理解できる形式が好ましいと思いますが。 h03s2031: プログラムで微分はできると思うんですけど、例えば偏微分なんかは できるんですか? M: 紙の上ではどうしますか ? 手順が明確になっていれば, それをそのとおりに Fortran で記述すれば良いのではないでしょうか ? h03s2037: continue文は文番号以外に意味はないんですか? M: 文番号と continue 文とは独立な存在です。詳しくは文法書を見てください。 h03s2034: DO LoopにWhile Loopのように数値の大小で動作するようにはできないの ですか。fortranを数式以外のプログラムに使えないのか。ウィンドウズXPからfortran のファイルをメールに添付して送ってもいいですか。 M: (1) それぞれの命令文の動作については, 文法書に定義が書いてあります。定義 以外の動作を期待しているのでしょうか ? (2) h03s2019 を参照してください。 (3) ファイルの送り方についての制限をしたつもりはありません。 h03s2035: Problem2.1の表5は何の成績ですか? M: 何かの授業の成績だったかもしれませんが, 適当に乱数で作成したものだったかも しれません。忘れました。 h03s2039: g77・・・と打つと、プログラムの間違った箇所が出てきますが、それに ついての詳しい参考書はありませんか。 M: エラー行と簡単な英語なので, 文法がわかっていれば容易に理解可能と思いますが, あえて言えば g77 のマニュアルか info ファイルなのかなぁ。それ以外にはちょっと 思いつきません。でもそんなものを探しているよりも, エラーメッセージをちゃんと 読んでプログラムを見直して考えた方が早いと思いますが。 h03s2040: 先生はプログラムを作るという作業をすることに向いている人はどのような 人だと思いますか? M: きちんと, 論理的に, 緻密に, 考えることができる人。 h03s2041: プログラミングにはfortranの他に何があるのですか? M: 質問の意味がわかりません。プログラミングっていうのはプログラムを作成する ことだし, 一方 fortran は言語の名称だし。 h03s2042: FORTRANはどのような事を計算するのに便利なのですか? M: 名称の由来通りに数式の計算。と, 1.3 節 5 頁に簡単に書いたんですが ... h03s2043: FORTRANのプログラムは値段が安いとか高いとこあるんですか?また、 不得意な言語はあるんですか? M: (1) べつに Fortran だから値段がどうこうということは無いと思いますが。アプリ ケーションプログラムの規模や作成経費と市場規模と, その他種々の要因によって 商品の価格は決まるのだと思いますが。まあ, 詳しくは経済学の本でも見てください。 この授業の守備範囲とは違うような気がします。 h03s2044: 問題2-2でΠ(パイ)を使ってみたいのですが、Πはどう入力したら良いの ですか? M: いまここ (↑) に入力できているのではないのですか ? そうでないならば, 質問の 意図が分かりません。 h03s2045: 練習問題の2で、作成するプログラムで、使うグラフによっても成績は 違うのですか?やはり、難しいグラフの方が評価は高いのでしょうか? M: 「難しい」というのが, いったいどのくらいを想定しているのか, わかりません。 一般には関係ないと思われますが, でもさすがに単純な初等関数では, ちょっと不利 かもしれませんね。 h03s2046: 先生は SETI@home のプロジェクトに参加しているようですが,新しく 始まったBOINCのSETI@homeにも参加しますか? M: 新しいのが始まったとは知りませんでした。しかし敢えて移行する必要があるので しょうか ? h03s2050: 普通は行の7番目から文字を入力するのに、Listing7、Listing9などでは 行の一番初めから文字を入力する箇所があるのはどうしてか? また、Listing7と Listing8のBJゲームでは具体的に何が違うのか? M: (1) リスト 7 にその様な箇所は見当たりませんが ? 何行目のことを言っているの でしょうか。またリスト 9 については, 資料にも記載してあるし, 文法書を見れば 書いてあることだと思いますが。(2) 本文の説明のどこが理解できないのでしょうか。 教えていただけると, とても助かります。 h03s2051: 良くひとつの技術がこれ以上発展が望めない所までいくと別の概念が登場 する、と言われています。では、fortranに取って代わるような、新しい数値解析の 技術は生まれてきているのでしょうか? M: (1) そういう風に言われているとは, 寡聞にして知りませんでした。出典はどこで しょうか ? (2) Fortran は, プログラム言語であって数値解析の技術ではありません。 敢えて関連づけて言えば, 数値解析の技術を表現する言葉です。(3) Fortran の改訂に ついてや他の言語については, 資料にも少し書きました。またしかるべき本を見れば, いろいろと詳しく書いてあるのではないでしょうか。 h03s2055: Linuxの欠点は何だと思いますか? M: そうですねぇ, Linux であること (笑)。 h03s2056: windows用のfortranとunix用のfortranでは何が違うのですか? M: それぞれを比べたことがないので分かりません。想像するに, 前者では Windows の 機能が使えるように拡張されているかもしれませんね。 h03s2057: UNIXをPCにインストールする場合はCDーROMからインストールするしかない のでしょうか? M: Unix といっても一言では言えないし, ものによってはネットワーク経由での インストールというのもありますよ。もちろん磁気テープとかその他いろいろあるかも しれないし。 h03s2058: コンパイルしたあとに数値を入れたりしますが、グラフとかもプログラムは つくってくれるのでしょうか。 M: 質問の意味がイマイチ良く分かりませんが, そういう風にプログラムを作れば, できるでしょう。 h03s2060: Apple ComputerのMacもx86アーキテクチャを採用するという発表がありま したが、先生が使っているコンピュータのアーキテクチャもx86ですか?また、その場合 はどのような機種をお使いですか? M: たいてい高級言語レベルでのプログラミングをしているだけなので, 特にこだわり ませんが, 現在使用しているものは, Celeron, Pentium III, Pentium IV 等の様です。 h03s2064: 今年の夏にパソコンを買うつもりなんですが、宮本先生がパソコンを選ぶ ときに重視するのはどんな点ですか? M: 私は FreeBSD で使うので, 最新のハードウェアだと困ることもある。ある程度 枯れたハードウェアで, CPU クロックは最速でなくとも良い。ハードディスクは安い ので, 初めから大きくても, 後からの増設でも良い。メモリはやや多め。あとは お財布と相談ですかね。おっと, 以上はデスクトップの場合だ, ノートは別ね。 h03s2067: リスト9の19行目でpi = 3.141592......288D0 となっているのですが、 実行しようとすると、最後のD0?DO?の部分でエラーが出ます。最後はなんと書いて あるのですか? M: 「ディー・ゼロ」です。h03s2024 も参照してください。 h03s2070: 二進法だけでは実行できないプログラムはありますか?あるのなら、教えて 下さい。 M: 「プログラムが二進法で実行される」とは, どういうことですか ? プログラムは 書かれている通りに実行されるだけですけど。 h03s2071: 課題を提出する際に、windowsから実行結果を送る方法がわからないので 教えてください。Linuxからメールを送る方法も教えてください。 M: (1) もしも実行結果というものが, とあるファイルなのであれば, ファイルを送る のに特別な困難は無いと思いますが。(2) こういうこと (前半部分の様な事を含めて) を質問するレベルの人に Linux からメールを送ることの良し悪しまでを教えるコスト (教える方・教えられる方の両者にとっての労力) は非常に高いと予想され, この場では 簡単にはできません。 h03s2072: 1、Exercise2.6で作ったプログラムを添付してみます。この添付方法で プログラムは確認できますか?(今回のはレポートとして添付したのではありません。 後日、レポートの形で提出します。) 2、プログラムをコンパイルする際、宮本先生のHPの資料では 「 % f77 −o 〜」と入力するように書いてありましたが、実際の入力は鈴木 先生の授業で習った「g77 −o 〜」としてコンパイルしています。この違いには どのような理由があるのですか? 3、今回添付したプログラムに少々「条件分岐」を応用させた「終了の方法の分岐」を 付け加えてみました(起動してプログラムを実行してみると、わかると思います)。 レポートではこのような「付け足し」をして提出してもいいですか? M: [Fri, 24 Jun 2005 17:47:13 +0900] 発信分のメールについて (1) 添付されていません。 (2) 資料の 5 頁や 7 頁をも見たということでしょうか ? (3) プログラムが添付されていませんので, 何のことか分かりません。 [Fri, 24 Jun 2005 17:56:40 +0900] 発信分のメールにはファイルが添付されていた。 (1) 読めそうです。(2) 省略。(3) レポートとして何を提出するのかは, web ページに 記載してあります。記述に不明なところがあれば, 指摘してください。参考にさせて いただきます。またそもそもレポートというのはどういうものかということについては, しかるべき書き方の本がたくさん出版されていますし, h03s2030 の (1) にも少し書き ました。 h03s2073:[課題1 修正版] M: 質問が書いてありません。 h03s2075: fortranではコピーや貼り付け、漢字変換ができないのですか? できるのなら、やり方を教えてください。 M: Fortran はプログラム作成用の言語のことで, コピー・貼り付け・漢字変換したり するものじゃないと思うのですが。 h03s2077: 先生はどこまでFortranを使えるひとを一人前と思いますか? M: 文法要素は簡単なので, だれでもすぐに Fortran の一人前になると思います。 ただし Fortran の一人前と, プログラム作成の一人前は, ベツモノだと思います。 h03s2080: fortranは日頃馴染みがないプログラムなのですが、どのような分野で活用 されているのですか? M: 科学技術計算の分野, と簡単ですが資料には書いたんですけど ... h03s2081: if文の中にif文をつくると混同してしまって、うまくいかないのですが、 解決する方法はあるんですか? M: 「混同する」とか「うまくいかない」の主語は ? また, どううまくいかないので しょうか ? そのへんが分からないので, どうなれば解決したと言えるのかも不明です。 h03s2082: プログラムを今後つくる機会にあたって参考書などを活用をするとおもうの ですが、創造性を鍛えてみようとおもいます。プログラムを今後勉強していくのにいい 参考書はないですか。 M: パズル系の本はどうでしょうか。最近出たのでは, 結城浩著「プログラマの数学」。 古くてもよければ共立出版や近代科学社などから, いくつか出ていたような気もする けど ...