Download presentation
Presentation is loading. Please wait.
1
描画班班ゼミ資料 2004/10/27 飛田伸一
2
今週やったこと Sin関数を使えるように努力 mathlib タイマーを使った測定(続編) BS法 Hccプログラミング
rocket.hcc 非線形問題についての考察 Hcc manualの読み込み Hcc 処理系のソース読み Grifonのソース読み 時間測定についての考察 ※多体問題のサーベイはやらなかった
3
mathlib hccのマニュアルではsinなどの三角関数やrandom,absoluteなどの数学に関する関数については何も触れられていない srcディレクトリを見るとmathlib.cというファイルがありその中で定義してある。そしてそれをライブラリにして動的にリンクすることで、これらの関数を実現しようとしている #LIBRARY mathlibで使えるようにしてある ここで定義されている関数は、sin,pTsin,cos,pTcos,sqrt,pTsqrt,random,absolute,tan,signなどである
4
mathlib しかし、現在の処理系ではこれらは使えない 原因は探りきれなかった
試しにexamplesディレクトリのplane.hccを動かしてみた。
5
mathlib エラーメッセージは以下の通り
自分のマシン(WinXP)のcygwinのエラー dlopen: Win32 error 193 Segmentation fault (core dumped) banonのエラー ./bin/hybrid: /lib/libc.so.6: version `GLIBC_2.3' not found (required by ./bin/hybrid) Exit 1 brieのエラー ./mathlib.so: cannot open shared object file: No such file or directory セグメントエラー 139で終了しました 自分のマシンのwin版hccでやったときのエラー dlopen: Win32 error [main] hybrid 3272 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION 1550 [main] hybrid 3272 open_stackdumpfile: Dumping stack trace to hybrid.exe .stackdump
6
mathlib エラーについては 色々といじってみたが、結局解決しなかった sinなどはシミュレーションにとって非常に重要なものであるから、これが使えないというのは大問題 Uedalabなどに流して助けを求めても良いかもしれない
7
タイマーを使った測定(BS法) 先週、BS法の測定をやっていなかったのでやってみた 条件は先週のスライドを参照 使用マシンはbrie
#INTEGRATOR BS 条件は先週のスライドを参照 使用マシンはbrie RKQCとBSでは#INTEGRATION_INITが無効であるということが判明
8
タイマーを使った測定(BS法) 何故か、ものすごく処理に時間が掛かった しかし、タイムを見てみるとそんなに時間がたったわけではない
理由は不明 グラフ化は全データが集まってからにしたい
10
Hccプログラミング rocket.hcc ロケットが真上に飛んでいくプログラム 2段(多段)ロケットにしたい 詳細はプログラムを参照のこと
Waitは待ち時間。自分より下のロケットが燃えている状態 Fireは自分が燃えている状態 Nofuelは燃料が無くなり、ロケットから切り離されて落ちている状態
11
Hccプログラミング 課題点 ロケット間の関係を見るのにはlistが必要。現在のverではforallを使って自分の下のロケットを確認しているので、処理時間がO(n^2)となっている。→lists.hccを参照して勉強 フラグを使って状態遷移を制御しているが、現在うまくいっていない→hccプログラミングの工夫 自分よりも上の重さは、今は引数によって与えているが、自分で計算できるようにしたい 自分の高さは、下の高さと自分の長さを足したものだが、その辺をうまく計算できない
12
非線形問題についての考察 とりあえず非線形が何を示すのかが漠然としているのは先週と同じ
積分法について少し調べてみて、Euler法やニュートン・ラプソン法を使えば非線形方程式でも解けるという記述は発見した では何故非線形問題で解けないものがあると言われているのか?
13
非線形問題についての考察 結論としてはその辺はまだ良く分かっていないので、調べる必要がある。 教授に聞くのが早いかも知れない
おまけ:この前RKQCは4次と5次のRKをステップサイズを見て使い分けていると、中村さんに言ったが、間違っているということに気がついた。本当は4次と5次でやってみて、答えに差が出てきたらステップサイズを動的に小さくするという方法だった。 この辺(integrator)については、まとめたものをwikiに載せておいた方が良いだろう (参考:
14
Hcc mamualの読み込み 7章、8章辺りを読んだ ソースも参考にしてみると、かなり分かりやすかった
後で日本語化してpdfか何かにしておく予定 TRAIL_CHUNK (p22)が良く分からない
15
Grifonのソース読み(簡単に) Grifonとhccの境目辺りを読んでみた どこにバグがあるのかを見つけるのが重要
EclipseのCVSの使用をもう少し効果的にすると良い Grifonが使えるようになれば、視覚的効果が期待できる
16
時間測定についての考察 現在の処理系はclock()を使って時間を計っている。この関数をつかうと、精度は10ミリ秒ぐらいになる
若槻さんからgettimeofday()を使ってみてはとの提案があったのでそれについて考えてみた 調べてみたところgettimeofday()は、「CPU時間ではない」、「機種依存しない」、という特徴があることが分かった clock()はCPU時間で、機種に依存する
17
時間測定についての考察 結局CPU時間でないと、測定時に困るのでclock()のほうが良いのではないか
getrusage()というclock()の精度を良くした関数もある しかし、精度が10ミリ秒あれば、現行のhccでは困らないと思われる。何故なら、アニメーションの特性上、長時間hccを動かさなければならないはずなので、そうなってくると10ミリ秒の精度があればことが足りるからである というわけでclock()でもそんなに問題は無いはず 誰か暇な人がgetrusage()を使った処理系を実装 (参考:
18
来週の目標 多体問題のサーベイ(先が見えないので、やる気が起きない) Grifon周り(やっぱりアニメーションがあると説得力が出てくるため)
Hccのソース読み 来週は地味に
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.