シミュレーション物理3 プログラミングの基本 その2

Slides:



Advertisements
Similar presentations
情報処理基礎演習Ⅱ 地球環境学科 伊藤,小黒 TA 川野,馬場. 講義の内容 UNIX 系の OS の使い方( Linux の使い方) (始めのうちは慣れないため扱いづらいか も・・・) 起動・終了 ディレクトリ(フォルダ)の構造 基本的なコマンドの使い方 エディタ( vi ) ファイルの操作,管理.
Advertisements

P HI T S スクリプト言語を用いた PHITS の連続 実行 Multi-Purpose Particle and Heavy Ion Transport code System title 年 2 月改訂.
実習1:コマンドシェルの使い方.
UNIX系コンピュータの使い方 CUIへのいざない 2006年6月20日  玉川.
配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
情報処理概論Ⅰ 2007 第3回 2007/5/2 情報処理概論Ⅰ 第3回.
UNIX利用法.
UNIX利用法 情報ネットワーク特論資料.
知能機械工学科 担当:長谷川晶一 TA:新・後藤・ナンバ
リスト1 DICOMデータの例 000: 010: 020: 030: 040: 050: 060: 070:
Fortran と有限差分法の 入門の入門の…
Unix生活 Vol.1
Java I 第2回 (4/18)
第3回 ファイルとフォルダ 伊藤 高廣 計算機リテラシーM 第3回 ファイルとフォルダ 伊藤 高廣
物理学情報処理演習 2. UNIX 補足自習用テキスト.
コンピュータリテラシー 第3回授業の復習 基本的なUNIXコマンド
UNIXマシン間のファイル転送 2002年10月20日 海谷 治彦.
Linux リテラシ 2006 第2回 基本コマンド2.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
運動方程式の方法: 惑星の軌道 出席のメール(件名に学生番号と氏名)に,中点法をサブルーチンを使って書いたプログラムを添付
基礎ゼミナールⅠ報告書 番号000000  内田一徳 2009年度前期.
Advanced Unix Commands
数値計算及び実習 第3回 プログラミングの基礎(1).
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
基礎プログラミングおよび演習 第9回
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
シミュレーション物理5 運動方程式の方法: サブルーチンの使い方.
数値計算及び実習 第7回 プログラミングの基礎(5).
xxxxxx . yyy xxxxxx Linuxにおける情報管理 一般的なファイル UNIX における情報管理の単位 ファイルの種類を表す
情報科学1(G1) 2016年度.
初年次セミナー 第2回 文字の出力.
09 06/23 PHP と SQL (MySQL) の連携 その2
スクリプト言語を用いたPHITSの連続実行
インターネット技術特論 B:コマンドライン, shell 山口 実靖
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
計算物理学基礎 第1回 UNIXの基礎 C言語の基本.
繰り返し計算 while文, for文.
情報処理概論Ⅰ 2007 第4回 2018/11/30 情報処理概論Ⅰ 第4回.
行列による画像処理 デジタル表現論 担当者:劉 雪峰 2017年6月1日.
第二回 VB講座 電卓を作ろう.
プログラミング応用 printfと変数.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
KEK 波戸 、平山 最終変更 テキスト:installation_guide.pdf
情報とコンピュータ 静岡大学工学部 安藤和敏
情報とコンピュータ 静岡大学工学部 安藤和敏
第4回 コンピューティングの要素と構成 平成22年5月10日(月)
デジタル画像とC言語.
UNIX演習 情報ネットワーク特論.
コンピュータ プレゼンテーション.
2013年度 プログラミングⅡ ~ 計算してみよう ~.
2015年度 プログラミングⅡ ~ 計算してみよう ~.
シミュレーション物理2 プログラミングの基本
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
情報とコンピュータ 静岡大学工学部 安藤和敏
UNIX演習 情報ネットワーク特論資料.
統計ソフトウエアRの基礎.
UNIX演習 情報ネットワーク特論資料.
UNIX演習 情報ネットワーク特論資料.
情報処理概論Ⅰ 2007 第6回 2019/5/16 情報処理概論Ⅰ 第6回.
第4回 プログラム作成,情報検索 伊藤 高廣 計算機リテラシーM 第4回 プログラム作成,情報検索 伊藤 高廣
シミュレーション物理4 運動方程式の方法.
ネットワークプロトコル.
ネットワーク・プログラミング Linuxシステムとソフトウェア開発.
情報処理Ⅱ 第2回 2004年10月12日(火).
Sftp の使い方 牧之内研究室 修士1年 安部智貴 2004/04/13.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

シミュレーション物理3 プログラミングの基本 その2 シミュレーション物理3 プログラミングの基本 その2 大槻東巳 ohtsuki@sophia.ac.jpに出席確認のメールを出してください。件名に必ず,学生番号,氏名を書いてください。

Unix のコマンド whoami date who cal cal 07 1986 (1986年7月のカレンダー) man date 以上のコマンドをdahlmanにログインして、実際に試す

ディレクトリ(フォルダ)の移動 まず、unixの階層構造を理解しましょう pwdと打ってください /shome/.….とでたのが皆さんの今いる場所です cd public_html pwd で移動したことがわかります。 上の階層に行きたいときは cd ..

ファイル操作 コピー cd cp public_html/index.html index.html 移動したいときは mv public_html/index.html index.html フォルダ(ディレクトリ)を作る mkdir test/ 例 cp public_html/index.html test/index.html

ファイル操作2 cd test/ でtestというディレクトリに移動します biwa cp /home/work/test/test*.txt . dahlman cp /thome/rikou/gpscieng/test/text*.txt . で共通directoryの中にあるtest*.txtを取ってくる。(最後の.を忘れないこと。.はここに持ってくるという意味。) lsと打ち込んでみよう。ファイルが移動している。

ファイル操作3 ls でディレクトリ内のファイルの一覧が見える ls –la はファイルの詳しい属性を表示 rm filename でファイルを消去できます。 注意)ファイルは消したら復活できません

Unix上での文書ファイルの操作 cat text1.txt cat text2.txt wc text1.txt (文字数や行数を計算) more,head,tailを試す diff text1.txt text2.txt (ファイルの比較) grep -n critical text1.txt (critical を含んだ行) ispell text2.txt (スペルチェック)

Emacsの使い方 emacs filenameでファイルを開く,作る。 適当に編集して cntl-x cntl-sでセーブ cntl-x cntl-cで終了(ファイルが書き換えられていたら,セーブするか聞いてくる。) その他,cntl-sでサーチ。

プログラム中の変数 計算機はbitで処理。1byte=8bit 例:英数文字1byte=8bit=2**8(256通り) 日本語などは2バイトで処理(2**16=65536通り) 整数は4 byte=32bit=2**32=4294967296 でも符号があるのでこの半分,-20億から+20億程度までしか使えない。(正確には-2**31から2**31-1まで。銀行などでは20億は小さすぎる。) 実数は?

実数の型 通常の実数は整数と同じく4バイト。しかし,指数部分も表現しなければいけないので,精度(有効数字)はせいぜい7桁。 これでは高精度の計算は期待出来ない。 他に型はないか?

整数の型 integer 1 8bit, -2**7~2**7-1 2 16bit, -2**15~2**15-1 3 32bit, -2**31~2**31-1 4 64bit, -2**63~2**63-1

実際の使い方 学生番号を整数で宣言,名前はstudent_id integer(kind=2)::student_id Integer, parameter::digit10=selected_int_kind(10) Integer(kind=digit10)::m,n

実数の型 32ビット(7桁の有効数字):単精度 64ビット(14桁の有効数字):倍精度 Real(kind=1)::z !単精度。(kind=1)は省略可 Real(kind=2)::z !倍精度。(kind=2)は省略不可 例えば精度を10桁以上でやりたい Integer, parameter::precision10=selected_real_kind(10) Real(kind=precision10)::a,b 有効数字の桁p,指数の大きさr(10**rということ)の場合, Integer, parameter::precision10=selected_real_kind(10,40)

ここまで言ったら複素数 Complex::a,b !これは単精度 Integer,parameter::dp=selected_real_kind(14) complex(kind=dp)::gamma !倍精度 ついでに複素数の操作 Real(z):実数部分,Aimag(z):虚数部分,conjg(z):複素共役,cmplx(x,y,kind=2):x+iyを作る。

配列 3次元ベクトル:3成分。N次元:n成分 構文:例5次元配列 Real(kind=dp),dimension(5)::a Real(kind=dp)::a(5) 便利な配列関数:maxval(a),maxloc(a),minval(a),minloc(a),product(a),sum(a),dot_product(a,b)

program precision !プログラムのタイトル !------------------------- ! This is a program to demonstrate the data types !2005/4/25 Written by T. Ohtsuki ! ここにプログラムの変更履歴を書く。 ! Modified by TO on 23rd Oct. 2009 implicit none ! Always begin with this statement integer,parameter::threedigit=selected_int_kind(3) ! parameter はプログラムの中で固定 integer,parameter::sixdigit=selected_int_kind(6) integer,parameter::sp=selected_real_kind(5) integer,parameter::dp=selected_real_kind(11,50) integer(kind=threedigit)::i1,i2,i3 integer(kind=sixdigit)::j1,j2,j3 real(kind=sp)::x1,x2,x3 real(kind=dp)::y1,y2,y3 i1=200 i2=2000 i3=i1*i2 print *,i1,"times",i2, "with 16bit integers" print *,i3 !print * は画面にかけという命令 j1=200 j2=2000 j3=j1*j2 print *,j1,"times",j2, "with 32bit integers" print *,j3 x1=1000000.0001 x2=1000000. print *, x1-x2 x1=4.0_sp x2=atan(1.0_sp) x3=x1*x2 print *,x1,"times",x2, "with 32bit real numbers" print *,x3 y1=4.0_dp y2=atan(1.0_dp) y3=y1*y2 print *,y1,"times",y2, "with 64bit real numbers" print *,y3 stop end !programがここで終わったことを示す。

program array !------------------------- ! This is a program to demonstrate the array usage !2005/4/25 Written by T. Ohtsuki implicit none ! Always begin with this statement integer,parameter::dp=selected_real_kind(11,50) integer,parameter::n=3 integer::i,j real(kind=dp),dimension(n)::y1,y2 real(kind=dp),dimension(n,n)::y3 complex(kind=dp),dimension(n)::y4 do i=1,n y1(i)=1._dp/real(i)**2 y2(i)=real(i)**2 end do print *, "sum of 1/i**2,i**2 are",sum(y1),sum(y2) print *, "dot product of y1 and y2 is",dot_product(y1,y2) do i=1,n do j=1,n y3(i,j)=i*j end do print *,"2-d array (matrix) y3 is",y3 y4(i)=cmplx(real(i),real(i)**2,kind=dp) print *,"Complex array y4 is ",y4 print *,"Cojugate of it is ",conjg(y4) print *, "Multiplying the complex numbers",y4(1),"times",y4(2),"is" print *, y4(1)*y4(2) print *,"exponential of ",y4(1),"is" print *,exp(y4(1)) stop end