2014年10月18日土曜日

2次元球面のガウス曲率

数学には面の曲がり具合を表現するガウス曲率がある。この記事では2次元球面におけるガウス曲率を計算してみる。

2次元球面の定義

3次元ユークリッド空間R3の2次元球面S2を
S2 = { (x,y,z) ∈ R3 | x2 + y2 + z2 = r2 }
で定義する(rは定数)。
このときベクトルrを

としておく。さらにθ(0<θ<π)、φ(0<φ<2π)で
  • x = r sinθ cosφ
  • y = r sinθ sinφ
  • z = r cosθ
のようにパラメータ付けされているとする。

自然基底

ベクトルrをθとφで偏微分したものをそれぞれe1, e2とすると、自然基底{e1, e2}は

となる。

計量テンソル

計量テンソルgijを行列表示した[gij]は、

ここでE,F,Gを

とする。また[gij]は対角行列なので対角成分の逆数をとると、逆行列[gij]が

と計算できる。

第二基本形式の係数

自然基底{e1, e2}がなす平面に垂直なベクトルnを、

とする。ベクトルrの二回微分は、

となる。これらを用いて第二基本形式 II = L dθ2 + 2M dθdφ + N dφ2 の係数L,M,Nは、

と計算できる。

ガウス曲率

上で計算したE,F,G,L,M,Nによりガウス曲率Kは、

と計算できる。
球面の場合θとφによらない一定値になるようだ。

次は、2次元球面のクリストッフェル記号を計算してみる。
wxMaximaでのガウス曲率の計算もしてみた。

2014年2月21日金曜日

Linux Mint を CUPS プリンタサーバにする(その3)

 前回まででWindows7から印刷できるようになった。今回はiPad、Android、Ubuntuから印刷できるようにしたい。

5. Avahiのインストール

iPadからAirPrintで印刷できるように、Avahiをインストールしようと思ったが
$ service --status-all
をすると
avahi-daemon
が見つかり、私の環境では既にあったため特にインストールする必要がなかった。

もしなければ、
$ sudo apt-get install avahi-daemon
が必要かもしれない。

6. iPad(iOS6)からの印刷

iBooksを使って試しに印刷してみる。印刷したいファイルを開き、下図のようにタップして進める。


 ここでプリントを選択。プリンタを選ぶとプリンタサーバのDCP350Cがあるのでそれを選ぶ。「プリンタオプション」で「プリント」がタップできるようになったので、タップすると印刷ができた。


7. Androidからの印刷

※現在JfCupsPrintはGooglePlayにないようです。そのためこの項目は削除しました。(2015/09/26追記)

8. Ubuntu13.10(32bit)からの印刷

「プリンター」ウインドウを開く。

「追加」を選ぶ。

「新しいプリンター」ダイアログ(「デバイスを選択」)が開くので、「ネットワーク」から設定したプリンタサーバ(この例ではmyserver-System-Product-Name)を選び、「進む」をクリック。

「プリンターの説明」では「プリンター名」と「説明」には共に「DCP350C」を入力、「場所」は空欄にしたまま「適用」をクリック。

「テストページを印刷しますか?」では「テストページの印刷」を選択した。

「プリンターのプロパティ」で「OK」をクリックして終了。

 以上でプリンタサーバ(Linux Mint)を設定し、Windows、iPad、Android、Ubuntuから印刷することができた。

2014年2月20日木曜日

Linux Mint を CUPS プリンタサーバにする(その2)

 前回はLinuxをインストールして、PCから直接プリンタへ印刷するまでだった。今回はそのPCがプリンタサーバとして動くように設定する。また、Windows7(クライアント)から自宅のネットワークを介して、Linux PC(プリンタサーバ)に接続されているプリンタで印刷してみる。

3. プリンタサーバとしての設定

3.1. プリンタの共有設定

「設定」 > 「プリンタ」を選び「プリンター」ウインドウを表示する。「サーバー」 > 「設定...」で下図のように共有できるよう設定する。


さらに、「プロパティ」 > 「ポリシー」で共有するにチェックする。



3.2. 同一ネットワークからの印刷を許可する

$ sudo gedit /etc/cups/cupsd.conf
で以下の箇所に追記する(赤が追記箇所)。

<Location />
  # Allow shared printing...
  Order allow,deny
  Allow @LOCAL
  Allow 192.168.11.0/24
</Location>

cupsd.confの編集後、cupsを再起動する。
$ sudo /etc/init.d/cups restart

「設定」 > 「プリンター」でダイアログを開き、「サーバー」 > 「接続...」を選ぶ。
「CUPS サーバーに接続」ダイアログで、「CUPS サーバー:」を「/var/run/cups/cups.sock」を選ぶ。「接続」を押す。




これで他のPCから印刷ができるようになった。

参考:

4. Windows7からの印刷

いよいよ、クライアント側(Windows7)から印刷をしてみる。
「デバイスとプリンター」を開く。「プリンターの追加」を選ぶ。
「ネットワーク、ワイヤレスまたはBluetoothプリンターを追加します」を選ぶ。
「探しているプリンターはこの一覧にはありません」を選ぶ。
「共有プリンターを名前で選択する」に「http://192.168.11.11:631/printers/DCP350C」を入力。(この例は、プリンタサーバのIPアドレスが192.168.11.11の場合。)

「プリンターの追加ウィザード」では「製造元」に「Brother」を「プリンター」に「Brother DCP-350C Printer」を選ぶ。
必要に応じて、テストページを印刷する。

ここまででWindows7から印刷する環境ができた。
次はiPad、Android、Ubuntuから印刷してみる。

Linux Mint を CUPS プリンタサーバにする(その1)

 家のプリンタ(Brother DCP-350C)をネットワークプリンタにしたい。そして、次の機器から印刷できるようにしたい。
  • Windows 7 (64bit)
  • Ubuntu 13.10 (32bit)
  • iPad
  • Android
家にある古いPCをCUPSプリンタサーバにして、これらの条件をみたすようにしてみる。

1. Linux Mintをインストール

プリンタサーバではCUPSを動かす必要がある。そのため、OSはLinuxにした。Linux Mint 16 "Petra" Xfce版(32bit)をLinux Mint Japanからダウンロードしてインストールした。インストール中の「ユーザー名の入力:」は「myserver」とした。

 最初にデータベースとプログラムの更新を行った。
$ sudo apt-get update
$ sudo apt-get upgrade
その後、ホームのディレクトリ名を英語にした。
$ sudo apt-get install xdg-user-dirs-gtk
$ LANG=C  xdg-user-dirs-gtk-update
ダイアログで英語表記に変更するかを尋ねられるので「Update Names」を選ぶ。

2. プリンタのインストールと設定

2.1. プリンタドライバとCUPSのインストール

プリンタのUSBをつなぎ電源を入れておく。プリンタがBrotherのDCP-350Cなので、「LPD/LPRng 用ドライバー」と「CUPS 用ドライバー」をここからダウンロードする。そこの「インストール方法」に沿って、 「LPD/LPRng 用ドライバー」をインストールする。
$ sudo dpkg -i --force-all dcp350c-1.0.1-1.i386.deb

ディレクトリがないとエラーが出たので、
$ cd /var/spool/
$ sudo mkdir lpd
$ cd lpd
$ sudo mkdir dcp350c
でそのディレクトリを作成して、再度インストール。

次に「CUPS 用ドライバー」をインストールする。
$ sudo dpkg -i --force-all dcp350ccupswrapper-1.0.1-1.i386.deb

2016.5.3追記: Ubuntu16.04ではここの「Linux 簡易インストーラー」を使い、うまくいった。

2.2. プリンタの設定

「設定」 > 「プリンター」を見てみると「DCP350C」というプリンタが作成されている。
「プロパティ」 > 「テストページの印刷」で、今設定しているPCから(USBを通して)印刷できることを確認する。


 ここまででネットワークを介さずに印刷できるようになった。
次は、このPCにプリンタサーバとしての設定をして、Windows(クライアント)から印刷してみる。

2014年1月11日土曜日

ホッジスター作用素(n=2)と90度回転の関係

 *e1 = e2, *e2 = -e1であることと、ホッジスター作用素*が線形であることから分かること。
ae1+be2に*を作用させると


と計算できる。
 同様に、虚数単位をiとしたときa+biにiをかけると


となる。
 対応する結果になっていることから、ホッジスター作用素を作用させることが90度回転になっていることが分かる。

2013年12月10日火曜日

ホッジスター作用素が線形であること

前回の記事で定義したホッジ双対の*を作用素としてみたとき、この作用素のことをホッジスター作用素という。今回の記事ではこれが線形であることを示す。もし線形であることがいえれば、基底についてホッジ双対を計算を使い、任意のベクトルについても計算がしやすくなるためである。

*(λ+μ) = *λ + *μであること

まずは和について示す。λ,μ∈ΛpV、σ∈ΛnVのとき、任意のν∈Λn-pVについて


ここで、内積の双線形性とウェッジ積の多重線形性を使った。
σ≠0なので、


内積が非退化性(任意のuについて<z|u>=0ならばz=0となること)をもつので、



*(kλ) = k(*λ)であること

次はスカラー倍について示す。λ∈ΛpV、k∈R、σ∈ΛnVのとき、任意のν∈Λn-pVについて


ここで、内積の双線形性とウェッジ積の多重線形性を使った。
σ≠0なので、


内積が非退化性をもつので、


 以上より、k, m ∈R とλ,μ∈ΛpVについて *(kλ + mμ) = *(kλ) + *(mμ) = k(*λ) + m(*μ)がいえるため、ホッジスター作用素*は線形である。次回は2次元の任意のベクトルで実際に計算してみる。