Comments
Description
Transcript
14_slide
数値解析基礎・演習 Gnuplotを用いた可視化 教授:廣瀬壮一 助教:斎藤隆泰・鈴木啓悟・松崎裕 TA(博士学生):古川陽・ Padungsriborworn Worawit(ボート君) 数値解析における可視化の重要性 なぜ可視化は重要なのか? • 作成した数値解析プログラムの結果の検証 • 実験結果の検証 • プレゼンテーションには特に重要なスキル (可視化すれば、一目瞭然の結果に威力を発揮) (プレゼンは今の世の中、避けては通れない) エンジニア、研究者として可視化のスキルは必須! 可視化ソフトの紹介 • • • • • • Gnuplot(無料、講義で紹介) Excel(簡単な作図が可能) Kyplot(エクセルライクな使用感) Matlab(高価,信号処理や行列演算にも強い) Micro AVS, AVS Express(高価,3次元可視化可能) Voxler(高価,3次元可視化可能) 自分で使いやすいものを使えばよい ただし、美しい可視化には、当然それなりの技術が 必要となる 可視化結果の紹介(1) 非線形超音波法 異種材料接合界面におけるき裂を超音波で見つける 数値解析モデル き裂がない場合→超音波は透過(線形) 4MHzの入射波に対して4MHzの透過波 アルミニウム き裂がある場合→超音波の一部は透過 (き裂が開閉口するため非線形) 3mm 4MHzの透過波? 鋼 4MHzの入射波に対して4MHz以外の透過波 4MHzの入射波 このような現象を数値解析で追跡する (解析結果は当然可視可する) 1 20 perfect contact stick-slip 0 き裂あり(青線) の場合はき裂な し(赤線)に比べ て波形が歪む -10 -20 0.8 (き裂あり) amp amp u(nm) 10 Perfect contact Stick-Slip 0.6 高調波が励起 0.4 0.2 周波数解析 0 0.5 1 1.5 2 time ( s) 2.5 3 3.5 0 0 2 4 6 8 10 MHz 12 14 16 可視化結果の紹介(2)様々な波動現象 永久磁石 コイル アルミニウム 試験体 磁石が作る磁束密度の分布と ローレンツ力により励起される電磁超音波 電磁超音波が磁石付 近から発生 P波 S波 解析モデル Z方向の磁束密度 B 電磁超音波の伝搬過程 P波入射 空洞 粘弾性体中の波動伝搬の解析 岩盤力学,土質力学, 医療工学への応用 モード変換に よるS波 粘弾性効果により波動は 徐々に減衰 粘弾性体中のP波の散乱過程 可視化結果の紹介(3)開口合成 超音波非破壊試験 様々な波形データを得る 鋼材中の貫通横穴 ただし,単に波形だけ見 せられても熟練技術者に しかどこに欠陥があるか わからない 波形データ(実験データ) 3D 2D 実験で得られた波形 データを用いて欠陥 形状を画像化 Cavity 可視可によって欠陥 形状の位置や大きさ などを判別できる Gnuplotの紹介(1) Gnuplotの特徴 • • • • • • • 無料(フリーソフト) 歴史がある 書籍やインターネットで簡単な使い方を学べる Linux用, Windows用共に存在 コマンド操作が必要(GUI好きには不向き?) 簡単な演算や数式プロットも可能 可視化の美しさという点ではAVSやMatlabに劣る Gnuplotの紹介(2) 早速、Gnuplotを 使ってみよう! Gnuplotの起動 (左下の)スタート→すべてのプログラム →gnuplot→wgnuplotから起動 (既にインストール済み) 起動直後の画面 Gnuplotの バージョン等 確認できる 入力待ち, 目的に応じてコマンド操作する 簡単な使用例 Fortran演習で用いたコマンド プロンプトのような操作感 Gnuplot特有のコマンドを 覚える必要がある 簡単な演算が可能(整数扱い) 簡単な演算が可能(実数扱い) 関数のプロットを瞬時に行う こともできる.様々な関数が組み 込み関数(デフォルトで用意され ている)として利用可能. 様々な関数のプロット sin(x)のプロットができれば、 当然cos(x)も・・・・・・ Replotで別の関数を重ねること もできる 問1.各自、簡単な演算や plotができることを確認して みよう! 3次元プロット 3次元プロットも可能 関数z=f(x,y)の曲面を描く z=sin(x)*cos(y) の曲面を描く場合 各軸にラベルを付ける グラフの上にタイトルを付ける 再描画 問2.適当な関数z=f(x,y)を描画 せよ.その際,各軸のラベル、タイ トルも設定せよ Gnuplotによる波形歪みの確認 前のスライド「可視化結果の紹介(1) 非線形超音波法」で は,き裂が含まれる場合に高調波が発生する可能性がある ことについて紹介した.このことを踏まえて,次の問3につ いて考えてみよう 問3.関数y1=sin(x)の正弦波に,振幅Aのy2=Asin(3x)を重ね合わ せた場合,どのように波形が歪むかをGnuplotを用いて確認せよ. ただし振幅はA=0からA=0.1, A=0.5など適当に変化させてみるこ と 回答例 A=0.0 A=0.1 A=0.5をプロットした場合 高調波成分が大きいほど 波形が歪むことを確認で きればOK 数値解析への応用 問3 左のプログラムに対して,次の問 いに答えよ program plot implicit none integer::i,ndata real(8)::dx,xmax,xmin,x,f open(unit=11,file='fdata.dat') ndata=51 xmin=0.0d0 xmax=5.0d0 dx=(xmax-xmin)/dble(ndata-1) do i=1,ndata x=xmin+(i-1)*dx f=x**3-7.0d0*x**2+14.0d0*x-8.0d0 write(11,*)x,f end do 書式なし出力 end program plot このwirte文によりx,fが fdata.datへ出力される 問3-1 プログラムを解読し,どのような ことをしているか解読せよ 問3-2 左のプログラムを作成,実行し, fdata.datが作成されているこ とを確認せよ 問3-3 Gnuplotを用いて計算結果を 可視化せよ.ただしfdata.datを C:¥Program Files¥gnuplot45pl0w32¥gnuplot¥bin におき,Gnuplotで, plot “fdata.dat” とコマンドを与えること 問3-1で解読,予測した解析結果が 可視可されていればOK ニュートン法への応用 問4.以前作成したニュートン法のプログラムを用いて, 次の問いに答えよ 問4-1 関数 をGnuplotで可視化せよ 問4-2 以前作成したニュートン法のプログラムを改良し,関数f(x)の解 を求めるプログラムに変更せよ 問4-3 問4-1の可視可結果を利用して,3次方程式f(x)の3つの解のうち,最 大となる解を得るには,ニュートン法の初期値をどのように与えたら よいかを検討せよ.また,問4-2のプログラムを用いて,最大となる解 を求めよ set arrow 1 from -1,0 to 5,0 nohead set xrange [-1:5] x軸の範囲を指定 数値解析基礎・演習課題 問4の回答をWordファイルにまとめて 提出せよ.ただし,可視化結果はWordに 貼り付け,改良したプログラムや初期値 の設定方法についての考察もWordの Word 中に記述しておくこと 課題の提出先(下記の書式を守らない人は0 点になる恐れあり) [email protected] へメールにて ただし、メールの件名を必ず、下のようにすること 数値解析0708 東工五郎 数字は必ず半角 提出期限:7月15日(金)17:00 あなたの名前