computation

Home/Lectures/computation

Computational physics

30 05, 2020

1.15. Plotly

2020-07-07T17:03:41+09:00Python Tutorial|

 すでにMatplotlibを使ったFigure作成を紹介したが、plotlyというモジュールを用いると、グリグリいじることのできるインターラクティブな美しい図を描画することができる。現在のところ、AnacondaではデフォルトでインストールされていないモジュールでJupyterLab 1.1.4ではAnaconda Navigatorからもインストールできなくなったようなので、自分でインストールする必要がある。インストールした後でrebuildに失敗するとJupyterLab自体が起動しなくなったりするので、これ以降はpipによるモジュールのインストールに関する知識がそこそこあって、自分で問題解決できる中級者向けに説明する。初心者でもチャレンジしたい人は試してみるとよい。

26 05, 2020

1.14. SymPy

2020-07-07T17:02:32+09:00Python Tutorial|

 数値計算ではないが、数式の変形や簡略化をpythonにさせたい場合は、SymPyというモジュールを使うと便利である。商用の数式処理ソフトにMathematicaというものがあるが、これと似たことをpythonにやらせることができる。SymPyを使うときは、symbols(複数形のsがついていることに注意)というfunctionを使って、変数を明示的に宣言しないといけいない。なお、SymPyでは複素数はI(大文字のi)で表し、jではない。

26 05, 2020

1.13. Image Processing

2020-07-07T17:00:26+09:00Python Tutorial|

 class, function, 属性など基本的なpythonの使い方を習得したので、これまでの復習を兼ねて簡単な画像処理をしてみよう。matplotlibには画像データを読み込む関数image.imreadも用意されている。下記の画像はリンクフリーのサイトからダウンロードした。「白地図 japan05.jpg」で検索すると出てくる。

26 05, 2020

1.12. Classes and Objects

2020-07-07T16:59:28+09:00Python Tutorial|

 オブジェクト指向は現代のプログラミングにおいて欠かすことできない概念で、世の中で使われているほとんどのプログラミング言語はオブジェクト指向といっても過言ではない。例外的にC言語はオブジェクト指向ではないがCにオブジェクト指向を追加したものがC++である。数値計算のコードを一人で書く場合には、オブジェクト指向の対となる概念である「手続き型指向」で書くこともできるが、大規模なコードや複数の人で分担してコードを書く場合には、オブジェクト指向のご利益は絶大だ。せっかくpythonを勉強しているのに「オブジェクト指向がわからない」のはちょっと恥ずかしいので、本講義でもオブジェクト指向プログラミングについて少し説明する。より高度な内容については適宜専門書を読むことをお勧めする。

26 05, 2020

1.11. Functions

2020-07-07T16:58:35+09:00Python Tutorial|

 数学や物理でfunction(関数)といえば、sinとかexpのような初等関数をイメージすると思うが、情報処理の分野では、「ある入力に対して、何か出力してくれる手続きのまとまり」という意味でも使われる。この”function”という概念は、どのプログラミング言語でも極めて重要な概念である。どの言語でも基本的なfunctionは組み込まれているし(これをbuilt-in function、組み込み関数という)、module内で誰かが作ったfunctionを使うこともできる。同様に、自分で新たなfunctionを定義することもできる。なお、情報処理の分野では入力のことを一般に引数(ひきすう, argument)と呼び、出力のこと戻り値(return)と呼ぶ。

26 05, 2020

1.9. For-loops

2020-07-06T13:03:54+09:00Python Tutorial|

 繰り返し似たような作業を実行させるときには、forループを使う。書式は微妙に違うがC/C++やJava、その他の言語でも頻繁に使う構文だ。ただNumPyを上手に用いるとforループを使わなくても同じことができる場合が多く、実際のところforループを使わないでNumPyを利用した方が圧倒的に処理速度が速いので、NumPyに慣れてきたらなるべくforループを使わないように頭を働かせることをお勧めする。

Go to Top