Pythonによる並列計算
Pythonでは基本的に、Global Interpreter Lockといって、一つのプロセスでしか動かせない、という制約がある。これは、複数スレッドを立ち上げてPythonコードを実行しようとしても、CPUでの計算を…
Pythonでは基本的に、Global Interpreter Lockといって、一つのプロセスでしか動かせない、という制約がある。これは、複数スレッドを立ち上げてPythonコードを実行しようとしても、CPUでの計算を…
自分用のメモです。回転同士の距離がどういうものか、といったことはここに日本語で詳しく書いてあります(とても良いページ!)。 from pyquaternion import Quaternion import numpy…
はじめに 3次元回転(金谷健一著)を読んで、あるコスト関数を最小化するための3次元回転の最適化について、リー代数の方法、の理論的なところを少なくとも一部理解したので、実際に実装してみようというのが今回の目的。 リー代数と…
Scipyによる最適化計算 Pythonで最適化計算を行う場合、Scipyのoptimizationパッケージを使うことになると思う。これには、いろいろな最適化アルゴリズム(Nelder-Mead, Powell, BF…
クロフトンの公式 CTなどのボリュームデータにおいて、何らかの方法でセグメンテーションを行ったあと、そのラベルデータの表面積を計算したいときがあります。このとき、クロフトンの公式というものを使うと正確に計算できます。これ…
方針 簡単のために単位球を考えます。乱数tで緯度を決め、乱数uで経度を決めます。ただし、緯度ごとに、緯線の長さが異なるため、球面上に均一に分布させるために、この緯線の長さに比例した頻度でtを生成する必要があります。 なお…
Pythonでの生成方法を書いていきますが、根底にある考え方は他の言語でも共通です。 手始めに、一様乱数から 確立密度関数で表現すると、[0, 1)において、P(x) = 1。 # [0, 1)の乱数を生成 import…
解析解(数学解)が求められない場合に、数値解析で数値解を計算するが、計算機で扱うためには離散化が必要である。ここでは、微分方程式を解く時に必要な離散化を考える。 微分方程式を解くための離散化には、時間の離散化と、空間の離…
反時計回りに角度θだけ回転させる回転行列は $$\begin{eqnarray} R(\theta) = \left( \begin{array}{cc} ~\cos \theta & -\sin \theta…
3次元空間上の3点A,B,Cが与えられたとき、この3点で囲む三角形の面積を求めます。実はこれはベクトルの外積を使うと簡単に計算できます。 まずベクトルABとACを計算します。ベクトルの外積の大きさは外積の計算に用いた2つ…