大阪工業大学 情報科学部 情報システム学科 宇宙物理・数理科学研究室(真貝)
卒業研究指導(4年)・情報ゼミナール(3年) 必要なツール
2020/8/3 update
Previous 卒論研究指導について < 卒業研究ツール > Next 計算機環境
卒業研究指導や情報ゼミナールのおおまかな内容については,ここに記載した.本ページは,具体的なツールについて,少々コメントしておく.
- Mathematicaについて
- プログラミングについて
- グラフ化について
- LaTeXについて
- htmlについて
- wikiクローンについて
- Mac OS Xで開発環境を整える
- Mac OS Xでオープンソースソフトウェアを利用する
- Raspberry Pi にはMathematicaがバンドルされている
- Raspberry Pi にJupyterLabを入れて,NumPy, Matplotlib, Sympy
Mathematica
- Mathematica は,Wolfram社の開発している 数式処理ソフトウェアで,計算や作図の道具として用いる.使い方は,ゼミ室にあるマニュアル本を参照のこと.
- 2010年3月,情報科学部内のすべてのPCから,Mathematicaが利用可能になりました.
- 同様の数式処理ソフトウェアに,Waterloo社の Maple がある.Einstein方程式を微分して モデル化するときなど,複雑すぎて手で負えない時は,MathematicaとMapleを両方使って計算をチェックすることもある. (卒論ではそれほどヘビーなことにはならないので,ご安心を.)
プログラミング
- 「プログラムを組め」と課題を出すが,プログラムの中身までは,指導しない.結果を出せれば,言語は自分の好きなものを使ってよい.
- Linux環境では,C, Java, Fortran が利用可能である.
- 多くの場合,力学の問題を「微分方程式として解く」ことになる.両者の関連については 「徹底攻略 微分積分」(真貝著,共立出版,2009年4月発売)の第6章「力学への応用」に概略を記載している.
- 「微分方程式を解く」ことが必要になる.解き方については,差分法やRunge-Kutta法をはじめとして,基本となる解き方は学ぶ必要がある. 「徹底攻略 常微分方程式」(真貝著,共立出版,2010年8月発売)の第7章には概略を記載している.
プログラムを組んで,計算した結果をグラフにする方法は,さまざまである.Javaなどで,グラフ化を含めてプログラムしていれば特に別のソフトウェアを使用する必要がないが,C/Java/Fortranなどで,数値計算だけ行って,データファイルからグラフ処理する時の話.
グラフ化
- Windows/Macintosh 環境
- エクセルでも出来ますが,..
- 市販のソフトで優れているものが多数ある.研究室の一部のマシンには, カレイダグラフをインストールしている. 軸の設定や,プロットスタイルを細かく調整できるので,論文用にグラフを仕上げるのに便利.eps形式で出力してLaTeXでグラフを 読み込めば良い.
- 上述の Mathematica でも,データファイルを読み込んで,グラフにすることができる.例えば,データ出力を file1.data に50こずつの固まりでいくつか書き出したとき,そのデータから立体プロットを作るには,例えば,次のように実行する.
!!file1.data t = ReadList["file1.data", {Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number, Number}] ListPlot3D[t, ViewPoint -> {4, 4, 3}, Shading -> False, Boxed -> False, Ticks -> {None, None, Automatic}, AxesLabel -> {x, time, " volume "}, BoxRatios -> {1, 1, 1}, PlotRange -> {0.0, 5.0}]Mathematicaは,「TeXで書き出し保存」すると,自動的にepsファイルが作成される.
- Linux/Macintosh 環境
- 計算したばかりのデータをcheckするのであれば,gnuplot が便利.研究室の一部のマシンにはインストール済み.
マニュアルは,ここが詳しい.
ちなみに,他のマシンでgnuplotを起動して,(X windows環境の)自分のマシン上で結果を見るのであれば,
ssh -X username@machine.ip.addressで「-X」のオプションをつけて,そのマシンにログインし,DISPLAY変数を 自分のマシンのIPアドレスをつけて設定すればよい.setenv DISPLAY 150.xxx.xxx.xxx:0- 個人的には,xgraph が便利.研究室の一部のマシンにはインストール済み. すでにサポートが終了しているが,興味がある人は,ここを参照のこと.
LaTeXは,ワープロソフトの1種である.数式が自由に描け,論文形式の文章を作成するのに非常に便利である. 当ゼミでは,卒論やレポートは,LaTeXで仕上げ,提出してもらうので,利用方法に習熟すること.
LaTeX
- LaTeXのサンプルファイル( latex_sample.tex)と生成したpdfファイル( latex_sample.pdf)を手元に置いて研究されたし.
- 卒論と修論の概要をtexで書く場合のパッケージも用意してある. 2024Bthesis_abstract_format.zip(卒論) あるいは 2024Mthesis_abstract_format.zip(修論) を参考のこと.ファイルの書き出し(プレアンプル)は機種によって違う可能性があるが,個別の質問は対応しない.
- LaTeXのインストール
LaTeXは無料で手に入る.最近では必要なものがすべて1つのパッケージになっているものもあり,とても便利になった.
- 多くのLinuxでは,すでに標準でlatexがインストールされているので,そのまま利用できる.
- Windowsユーザは, ダウンロードに関する全般的な説明を https://qiita.com/passive-radio/items/623c9a35e86b6666b89eなどを参考にせよ.
2023年2月,\参考にtexliveをインストールしてみた.ダウンロードに2時間かかった.- Macintoshユーザは, ここを参考に,MacTeXとTeXShopをインストールする.
- LaTeXの利用方法の流れ
大雑把にいうと,LaTeXは,文章作成のソースコードを書くようなものである.sample.tex というファイルを作成し,コンパイル作業を経てpdfを作成する.少し前までは,ターミナル画面で,以下のような手順を踏む必要があった.しかし,最近では,これらをまとめ,ボタン1つでpdf作成までできるような ソフトウェアが無料で手に入る.
- Linuxユーザは,ターミナルで,
platex sample.tex pxdvi sample.dvi dvipdfm sample.dvi acroread sample.pdf- Windowsユーザは,ターミナルで,
platex sample.tex dvipdfm sample.dvi- Macintoshユーザは,ターミナルで,
platex sample.tex dvipdfmx sample.dvi- LaTeXでの文章の作成
レポートを作成するファイルのサンプルを format_report1.tex として 準備したので,参考にして欲しい.数式を書くためのコマンドなどは,本を参照してもらってもよいし, インターネットで,https://yokatoki.sakura.ne.jp/LaTeX/latex.htmlなどを参照すると良いだろう.documentclassで始まるのが,LaTeX2eという新しいversionのもの.documentstyleで始まるのがLaTeX2.09という古いversionの ものである.上位互換であるので,documentstyleで書いてあってもコンパイルは可能である.しかし,webでは両者の情報が混在しているので 注意が必要. 例えば,図を読み込むときには,以前使えたepsf.styパッケージが,LaTeX2eでは使えなくなっている.
- LaTeXでの文章の作成(2)
上記のファイルで,latexの概念に慣れたら,たとえば,プレゼンテーション用にA4横に原稿を用意したpdfファイル, slide_sample.pdfを見てみよう. このpdfの原稿は,slide_sample.zipとして ダウンロードできるので,解読していろいろ技を盗んでほしい.
- 図の入れ方について.
まず,図は,基本的には epsフォーマットで用意する.そして, texファイルと同じフォルダに,figure1.eps figure2.eps を用意する.
ファイルの初めに,epsf宣言をする. いろいろ方法はあるようだ.webで情報収集して研究しよう.
- LaTeX 2eでの記法.ファイル先頭の documentclass の直後に
¥usepackage[dvips]{graphicx}のプリアンブルを書く.図を入れるところで,¥begin{figure}[btp] ¥begin{center} ¥includegraphics[width=90mm,clip,keepaspectratio]{figure1.eps} ¥label{fig:fig1-1} ¥end{center} ¥caption{図の説明文はここ} ¥end{figure}- LaTeX 2eでの記法.pdfを入れる場合は,mediabb.sty というファイルをどこかから見つけ, texファイルと同じレベルのフォルダに置く.ファイル先頭の documentclass の直後に
¥usepackage{mediabb}と記入して,あとは,epsファイルを読み込む時と同じ手順で図を入れられる.
html
- htmlファイルの作成について
世の中,たくさんのwebページ作成ソフトがあるが,html文法の基礎を知っているだけで,テキストエディタを使って,それなりのページを 作成することができる.事実,私は,すべてのページをhtmlで直に記載している.
基本事項は,IS科2年生の授業「プログラミング環境」で用意したプリント(pdf)も参考に.
ブラウザで,「ソースファイル」を見れば,そのページに,実際何が 書かれているのかを研究することができる. 画像などの置き方,ウェブ全体のデザインに統一感を出すためのスタイルシート,閲覧者の要求に 応じて動作させるJavaScriptなど,興味があれば,どんどん習得して欲しい.- htmlファイルの公開について
研究室のLinuxマシンは,httpd/sshd を起動しており,学内からは,ssh/sftpでのアクセスも可能である.従って 自分のホームディレクトリにpublic_htmlディレクトリを作成し,そこにhtmlファイルを置けば, 他のマシンのブラウザからも閲覧可能になる.以下,手順を記しておく.
- Linuxマシンのアカウントを管理者に頼んで作成してもらう.
- 自分のホームディレクトリにpublic_htmlディレクトリを作成し,アクセス権を755にする.
mkdir public_html chmod 755 public_html- htmlファイルを作り、public_htmlディレクトリに、htmlファイルを置く(例えば,shinkaiが自分のpublic_htmlの下にtest.htmlを置いたとする)
- 研究室内のWindows/Macintosh/Linux 機のブラウザで、URLとして,例えば, http://null/‾shinkai/test.html あるいは http://xxx.xxx.xxx.11/‾shinkai/index.html とする。(xxxは,正しいIPアドレスを入れる.webでは,IPアドレスを公開しないので,研究室にて確かめること.)
Linuxのnullマシン自身で 確認するときには,http://localhost/
この方法でブラウザに表示されないときは,マシン null の httpd が起動していないことが考えられる. Linuxの設定に記載したように,null のマシンに root でログインし, 「コントロールセンター」の「システム管理」で,「サービス設定」の「httpd」を「実行」にする. これでも
- JavaScriptについて
JavaScriptを使うと, webページを作成するときに,マウスの動きに連動して表示を変えたり,ちょっとした計算をさせたりするミニプログラムを埋め込むことができる. 例えば電卓をつくるとこうなる. 文法は,本を参照してもらってもよいし, インターネットでも解説が見つけられる.例えば,http://www.openspc2.org/reibun/javascript/ http://www.sumnet.ne.jp/domp/jsbs/ http://www.ueda.info.waseda.ac.jp/‾gaku/js/
wiki
- wikiクローンについて
誰でも執筆できる百科事典ウィキペディアを,レポートに使った諸君もいることだろう. 逆に,執筆したことはあるだろうか.
wikiで開発された,多人数での共同web開発型のソフトは,コンテンツ管理システムとかコラボレーションソフトとかいうらしい. 各自で調べた知識を後世に役立てるため,知識のデータベース化を進めていきたい.そこで,世の中に出回っているwikiのクローンソフト から,pukiwikiを選び,研究室内でローカルに運用しようと考えている.
- 現在,Macintoshを使ったpukiwiki環境の構築が成功.Turbolinuxでは php の設定に手間取っている.サポートに問い合わせたところ,Turbolinux Fujiではサポート外だそうだ.Turbolinux Serverを買え,ということらしい.
- Macへのインストールと設定方法についての真貝の覚え書きはここ.
Mac OS Xで開発環境を整える (2013/3)
- Mac OS X を利用するなら,とりあえず 開発環境として Xcode をインストールしよう.Appleがサポートしている無償のソフト群である.
- App Storeからダウンロードする形になった.クレジットカードを持たない学生へのノウハウページはここ.
- 当然,ルートパスワードも必要になる. Mac OS X で「ルート」ユーザを有効にして使用する.
例えば,epsファイルのサイズを縮小したい,と考えたとする.世の中に,eps2epsというツールがあることを知る. オープンソースソフトウェアで手に入るが,附属するいろいろな他のソフトウェアも必要になる.以前はたいへん苦労したが, 最近では,このようなオープンソース・ソフトウェアを手軽にインストールする パッケージシステムとして, FinkとMacPortsがある.ここでは,MacPortsの利用方法を紹介する.
Mac OS Xでオープンソースソフトウェアを利用する (2013/3)
- 主要なリンク
- インストール方法
以上で,終了.
- .bashrc ファイルに下記を追加する.ファイルは /opt/local に入るので path をつくっておく.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH export DISPLAY=:0.0- 上記のサイトからdmgファイルをダウンロードして,インストール.
- ターミナルから,
$ sudo ports selfupdate- 例えば,pstoedit のインストール方法(eps2epsが入る)
$ sudo port install pstoeditこれだけであとはお任せ.ちなみに,インストールされるのは,Dependencies to be installed: ImageMagick bzip2 expat fftw-3 fontconfig freetype zlib libiconv ghostscript autoconf help2man gettext ncurses p5.12-locale-gettext perl5.12 gdbm m4 perl5 automake jbig2dec jpeg lcms2 tiff xz libidn libpaper libpng libtool pkgconfig xorg-libXext xorg-libX11 xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-libxcb python27 db46 libedit openssl python_select sqlite3 xorg-libpthread-stubs xorg-xcb-proto libxml2 xorg-xextproto xorg-libXt xorg-libsm xorg-libice urw-fonts webp plotutils- 時々メンテナンス.
$ sudo port upgrade outdated
Raspberry Pi にはMathematicaがバンドルされている (2017/3,2020/6)
- 35ドルPCとして売られているRaspberry Pi だが,そのOSであるRaspberianには,正規にMathematicaがバンドルされている. 組み込みソフトの練習機として使われているPCであるが,Linuxマシンの練習機としても申し分ない.2017年2月発売のものからは,技研マークも貼られている.
- 2017年3月現在,日本での本体(ボード,Raspberry Pi 3)価格は4700円前後.ボードにはUSB4つ,HDMI,電源,ethernet,Audio,GPIO 40ピンの口がある.1.2GHzのARMv8 (64bit)を搭載している.同時に購入が必要となるのは,電源ケーブル,USBキーボード,USBマウス,HDMIケーブルとそれにつなぐモニタ(すでにあればそれらは使える).さらにmicro SDカードが必要となる.micro SDカードは,そのままHDとなるものなので,容量は大きい方がいい(最低16GB以上).さらに,ケースも必要.
- 2020年6月現在,日本での本体(ボード,Raspberry Pi 4)価格は8GBのメモリ積んで8200円.ボードにはUSB2つ,micro HDMI 2つ,電源(USB type C),ethernet,GPIO 40ピンの口がある.1.5 GHzのARM Cortex-A72 (64bit)を搭載している.同時に購入が必要となるのは,電源ケーブル,USBキーボード,USBマウス,micro HDMIケーブルとそれにつなぐモニタ(すでにあればそれらは使える).さらにmicro SDカードが必要となる.micro SDカードは,そのままHDとなるものなので,容量は大きい方がいい(最低16GB以上).さらに,ケースも必要.
- OSは,https://www.raspberrypi.org/downloads/より,ダウンロードし,SDカードに入れる.
- 電源をつなぐとそのまま起動する.
- 起動したら,Debian系のLinuxと全く同じで,いろいろインストールできる.
$ sudo apt-get install gnuplot $ sudo apt-get install gfortran $ sudo apt-get install texlive-lang-cjk- もちろん,ときどきパッケージ情報を更新
$ sudo apt-get update $ sudo apt-get upgrade
Raspberry Pi にJupyterLabを入れて,NumPy, Matplotlib, Sympy (2017/5)
- 月刊「インターフェース」(CQ出版社)2017年6月号は,科学計算ソフト特集で,Python系の科学技術計算ソフトウェアパッケージ Numpy(数値計算), Matplotlib(グラフ表示), Scipy(科学技術ライブラリ), Sympy(数式表示), Pandas(データ分析)の使い方が紹介されていた.これらは,JupyterLabというwebブラウザ形式のインターフェースで使うことができる.
- とりあえず,Raspberry Piで利用できる環境を整える.Raspberry Piには,Pythonが初めから入っている.他のLinuxでPythonのインストールが必要なら,
sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y install build-essential sudo apt-get -y install libsqlite3-dev sudo apt-get -y install libreadline6-dev sudo apt-get -y install libgdbm-dev sudo apt-get -y install zlib1g-dev sudo apt-get -y install libbz2-dev sudo apt-get -y install sqlite3 sudo apt-get -y install tk-dev sudo apt-get -y install zip sudo apt-get -y install libssl-dev sudo apt-get -y install python-dev wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py- Raspberrianでは, python2.7 が入っているとして, まず, Raspbianのパッケージリストの更新
sudo aptitude updateインストール済みのパッケージをアップグレードsudo aptitude full-upgradeそして,python系のパッケージをインストールするときに使うpipをインストールsudo aptitude install python-pippip 起動確認pip --helpそれではいよいよ以下の呪文.sudo apt-get install python2.7-dev libpng-dev libfreetype6-dev sudo apt-get install libgtk2.0-dev sudo apt-get install python-gtk2-dev sudo pip install numpy sudo pip install jupyterlabここまでで,numpyとjupyterlabが入った.次にMatplotlibを入れる.sudo pip --no-cache-dir install matplotlib次にSympyを入れる.sudo pip install sympyScipyとPandasのインストールはまだ成功していない.- ターミナルで,
jupyter labといれると,ブラウザが立ち上がり,これらのパッケージの利用画面になる.FileでNew Notebookとして,右側にワークシートが出てきたらそこに呪文を 書き入れることでそれぞれのパッケージが使えるようになる.- Numpy(数値計算)を使うときは,[1]: ___ となっている箇所に,
import numpy as npとして,右矢印ボタンを押す.以降は,a=np.array([1,2,3]) b=np.array([4,5,6]) a+b a *=3 a np.sum(a)とか.- Matplotlib(グラフ表示)を使うときは,[1]: ___ となっている箇所に,
%matplotlib inline import numpy as np import matplotlib.pyplot as pltとして,右矢印ボタンを押す.以降は,x=np.linspace(0,10,100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x))とか.- Sympy(数式表示)を使うときは,[1]: ___ となっている箇所に,
from sympy import * init_printing()として,右矢印ボタンを押す.以降は,Mathematicaのように使える.x=symbols("x") y=symbols("y") (x+y)**2として結果が表示されたら,_.expand()とか,g=sin(x) plotting.plot(g)とか.
Previous 卒論研究指導について < 卒業研究ツール > Next 計算機環境
Copyright (c) 真貝寿明 Hisaaki Shinkai 2006-2020. All rights reserved.