ラベル 編集用タグ の投稿を表示しています。 すべての投稿を表示
ラベル 編集用タグ の投稿を表示しています。 すべての投稿を表示

2019年8月12日月曜日

C++のコンパイルいろいろ(基礎から応用まで) --- その1

最近、他の言語のことや、コンパイラ周りのことを勉強して、今更ながら分割コンパイルのことを理解してきたので、全く知識ゼロ向けの人に向けて、導入編を書いてみたいと思います。

自分が当時わからなかったこととか、あるいはこんな記事があればいいのにな、ということを想定して書いていますが、わかりにくかったり、間違ったことを書いていれば教えて頂けるとありがたいです。

前提

前提としてclang++が入っていることを想定しています。

ざっくり言えば、よくサンプルコードとして紹介されるHello worldが動く状態です。

ちなみに、以前紹介したwhichコマンドを使って調べると、自分のパソコンにはclang++が入っていました。
$ which -a clang++
#二つありますよ、という意味で2行出てくる。
/Users/hiroshi/.pyenv/shims/clang++       #単にclang++ で実行するとこちらのコンパイラが動く。
/usr/bin/clang++    #これがXcode付属のコンパイラ
バージョンを確認すると、
/usr/bin/clang++
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
となっているが、ここはよくわからないので、そんなもんかということで先へ進むことにする。最新バージョンはclang10のようだけど。。。?

参考 : Clang 10 documentation


基本

まずは、なんのひねりもない、一番基本から。

Hello worldを表示するプログラムをコンパイルします。

コンパイルするコードは以下のコード。
// ファイル名はhello.cppとする。
#include<iostream>

using namespace std;

int main(){

  cout << "Hello world \n" ;

  return 0;
}

hello.cppがあるフォルダと同じフォルダに移動し、以下のコマンドでコンパイルする。
$  /usr/bin/clang++ -std=c++17  hello.cpp
-std=c++17 の部分はコマンドのオプションです。

「-std=なになに」でc++のどのバージョンとしてコンパイルできるかを指定できます。

このあたりの話は今回は省略します。また機会があれば詳しく書くかもしれません。

同じフォルダにa.outという実行ファイルができているので、それを実行します。
$  ./a.out      # くどい説明かもしれないけど、「./」で「現在のディレクトリの中の」の意味。現在いるディレクトリの中のa.outというファイルを実行している。
Hello world


分割コンパイル(ダメな例)

複数のソースコードをまとめてコンパイルすることもできます。

で、成功するやりかたの前に、誰しも一度はやってしまうであろう(そんなことない?)ダメなパターンを紹介します。

まず、以下のような2つのソースコードを作ります。
// 先ほどのhello.cpp
#include<iostream>

using namespace std;

int main(){

  cout << "Hello world \n" ;

  return 0;
}
// 2つめのファイルはmorning.cppとしておく。
#include<iostream>

using namespace std;

int main(){

  cout << "Good morning! \n" ;

  return 0;
}
これを、
$/usr/bin/clang++ -std=c++17  hello.cpp morning.cpp
と実行すると、
duplicate symbol _main in:
    /var/folders/3j/6lblgwg16hsf8kqx9wl_5r440000gn/T/hello-eafe6a.o
    /var/folders/3j/6lblgwg16hsf8kqx9wl_5r440000gn/T/morning-cca263.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
というエラーが掃き出される。

いくつかのファイルをまとめてコンパイルする場合、その中にmain関数は一個にしなければならないが、hello.cppのほうも、morning.cppのほうもmain関数になってしまっているのでエラーになっている。


分割コンパイル(うごく方法)


  その1

ヘッダファイルを介してインクルードする。

同じディレクトリの中に、以下の3つのソースコードを用意する。

ディレクトリ構造も、書くまでもないが一応書いておく。
  • greeting.cpp
  • morning.cpp
  • morning.hpp
// 今度はgreeting.cppという名前にする。
#include<iostream>
#include "morning.hpp"
using namespace std;

int main(){

  Morning();

  return 0;
}

//これはmorning.cppという名前にする。
#include<iostream>

using namespace std;

void Morning(){

  cout << "Good morning! \n" ;

}
// これはmorning.hppとする。
void Morning();
これで、
$ /usr/bin/clang++ -std=c++17  greeting.cpp morning.cpp
と実行する。そして、./a.outを実行すると、Good morning! と表示される。

  その2

直接.cppのファイルをインクルードすることもできる。

今度は、以下2つのファイルを用意する。
  • greeting.cpp
  • morning.cpp
// このファイルはgreeting.cppとする。
#include<iostream>
#include "morning.cpp"
using namespace std;

int main(){

  Morning();

  return 0;
}
 //これはmorning.cppとする
#include<iostream>

using namespace std;

void Morning(){

  cout << "Good morning! \n" ;

}
そして、コンパイルする際には、以下のようにgreeting.cppだけをコンパイルする。
 $/usr/bin/clang++ -std=c++17  greeting.cpp
これでも、またa.outを実行すれば、Good morning! と表示されるはず。

  その3

2つ以上のファイルを一度にコンパイルもできる。

再びヘッダファイルからインクルードする。

今度は以下のようなファイルを用意し同じディレクトリに置く。

ディレクトリ構造を書けば、
  • greeting.cpp
  • morning.cpp
  • afternoon.cpp
  • evening.cpp
  • morning.hpp
  • afternoon.hpp
  • evening.hpp
 // これはgreeting.cppという名前にしておく。
#include<iostream>

#include "morning.hpp"
#include "afternoon.hpp"
#include "evening.hpp"
using namespace std;

int main(){

  Morning();
  Afternoon();
  Evening();

  return 0;
}
 // これはmorning.cppという名前にしておく。
#include<iostream>

using namespace std;

void Morning(){

  cout << "Good morning! \n" ;

}
 //これはafternoon.cppという名前にしておく。
#include<iostream>

using namespace std;

void Afternoon(){

  cout << "Good afternoon! \n" ;

}
 //これはevening.cppという名前にしておく。
#include<iostream>

using namespace std;

void Evening(){

  cout << "Good evening! \n" ;

}

 //これはmorning.hppという名前にしておく。
void Morning();
 //これはafternoon.hppという名前にしておく。
void Afternoon();
 //これはevening.hppという名前にしておく。
void Evening();
それで、以下のようにコマンドを実行する。
$  /usr/bin/clang++ -std=c++17 greeting.cpp morning.cpp afternoon.cpp evening.cpp
$ ./a.out
そうすると以下のようになるはずです。
Good morning! 
Good afternoon! 
Good evening! 

  その4

ヘッダファイルだけを一つのディレクトリにまとめてしまうこともできる。

先ほどの、greeting.cpp〜evening.hppをまた使うことにする。

ソースコードはさすがにくどいので省略。

ディレクトリ構造は以下のようになっているとする。
  • greeting.cpp
  • morning.cpp
  • afternoon.cpp
  • evening.cpp
  • my_include    →このディレクトリは新しくつくる。その中に以下の3つを入れる。
    • morning.hpp
    • afternoon.hpp
    • evening.hpp
$  /usr/bin/clang++ -std=c++17 greeting.cpp morning.cpp afternoon.cpp evening.cpp  -I ./my_include
$ ./a.out
そうすると、また同様に以下のように表示されるはずです。
Good morning! 
Good afternoon! 
Good evening!


長くなってきたので、今回はここまでにしておきます。

まだまだいろいろあるので、また次回以降にしようと思います。

2019年6月26日水曜日

Tomcatの起動の仕方

随分久しぶりの更新となってしまった。

転職先の研修でJavaをやっているので、その絡みで、これまでの流れ?と話は変わるがTomcatについて書こうと思う。


今回書くのは、まずはTomcatのターミナルからの起動方法。

Tomcat自体は、単体でもインストールできるが、Eclipse(エクリプスorイクリプスと読みます)をインストールすればその中に入っているので、とりあえずそれを使うことにする。(Spring tool suite、通称STSでも同様。)

Tomcat自体のインストールやEclipseのインストールは検索すればすぐ出てくるので省略する。

もう少し具体的にいえば、途中までの行き方はインストールの仕方によってそれぞれ違うと思うので、ここでは、Tomcatの中のbinというディレクトリのところまで辿りつけたところから話を始める。

ちなみにbinというのはどういうディレクトリかというと、中にはこんなファイルやディレクトリがあるところ。

  • bootstrap.jar
  • commons-daemon.jar
  • makebase.sh
  • tomcat-juli.jar
  • catalina-tasks.xml
  • configtest.bat
  • setclasspath.bat
  • tomcat-native.tar.gz
  • catalina.bat
  • configtest.sh
  • setclasspath.sh
  • tool-wrapper.bat
  • catalina.sh
  • daemon.sh
  • shutdown.bat
  • tool-wrapper.sh
  • ciphers.bat
  • digest.bat
  • shutdown.sh
  • version.bat
  • ciphers.sh
  • digest.sh
  • startup.bat
  • version.sh
  • commons-daemon-native.tar.gz
  • makebase.bat
  • startup.sh
参考までに、今回の記事のようにEclipseの中のTomcatを使う場合、その場所は、

/Applications/Eclipse_2019-03.app/Contents/tomcat/9/bin

にある。

さて、binの中のstartup.shのコマンドを打ちたいが、このままではパーミッションが有効ではないので、カレントディレクトリがbinの状態で以下のようなコマンドを打つ。
$ chmod 755 *.sh
特に何か起こったようには見えないが、気にしない。

そうすれば、startup.shが実行できるようになるので、以下のようにコマンドを打つ。
 #くどいようだけど、カレントディレクトリがbinフォルダであるという前提。
$ ./startup.sh
そうすると以下のようになれば成功。
Using CATALINA_BASE:   /Applications/Eclipse_2019-03.app/Contents/tomcat/9
Using CATALINA_HOME:   /Applications/Eclipse_2019-03.app/Contents/tomcat/9
Using CATALINA_TMPDIR: /Applications/Eclipse_2019-03.app/Contents/tomcat/9/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
Using CLASSPATH:       /Applications/Eclipse_2019-03.app/Contents/tomcat/9/bin/bootstrap.jar:/Applications/Eclipse_2019-03.app/Contents/tomcat/9/bin/tomcat-juli.jar
Tomcat started.
適当なブラウザを開き、http://localhost:8080/というURLに移動すれば、Tomcatのページが表示される。

2018年11月23日金曜日

『死刑 その哲学的考察』


「死刑」というより「哲学的考察」に興味があり読んでみました。

つまり、哲学的考察を現実の問題への適用の仕方をみてみたかったからです


他の本と比較したわけではないですが、この本は好印象を持ちました。

この本の主張としては最終的に「死刑廃止論」という結論になるのですが、冒頭にもしつこく書かれているように、結論ありきの議論ではありませんでした。

哲学的、論理的な考察から死刑廃止論を導きだしています。

こういう哲学的考察は好きなんですけどねー。

哲学科の学生みたいに、ひたすら翻訳とか哲学者の背景を知るために文献を漁るみたいなのは、僕は苦手なのです。

哲学科でいつか学んでみたい、と思う一方そういう作業ばかりになるのは嫌だなぁーと思ったり。



この本の考察ではまず、文化相対主義と普遍主義の特徴について触れています。

「人は人、自分は自分」というような相対主義に立つことは議論を放棄することになるとのこと。
ことあと、結論が死刑を肯定することになるにしろ、否定することになるにしろ、そのロジックは普遍主義の立場で組み立てられなければいけないと書かれています。
相対主義に立っていると、「人は人、自分は自分」なので、外国で日本人が外国政府の法律に基づいて死刑を執行されたとしても、「外国は外国」なので、日本が意義を申し立てることもできなくなってしまって泣き寝入りするしかありません。

それは踏まえて死刑について考察していきます。
死刑というのは、「死ぬことによってしかつぐなえない罪がある」という道徳命題が真であるという前提のもとで成り立っているので、逆にいえばそれは「死ぬつもりであればなにをしてもいいのか」というような反対論を引き起こしてしまうとのこと。

実際の事件の例として「死刑になりたかったから人を殺した」みたいな最近増えているような事例をあげています。

そういうような「死刑になりたかったから」みたいなことをいう人間には生きて償う「終身刑」の方が刑罰として意味があるかもしれないとのこと。

そうなったとき、死刑を極刑とするのか、終身刑を極刑とするのか、両方を極刑にすることはできないので(理由は書籍本文をみてください)、どちらにすればいいのか。

どちらが道徳的なのか、なにが道徳的なのかという道徳的議論まで一旦遡ります。


その後、道徳的議論では「決定ができないということが哲学的、論理的に」示されます。

それを踏まえて、道徳的議論から政治哲学的議論へ移ります。

ここでは、冤罪の可能性について触れられます。

考察の結果、「冤罪とは(単なるヒューマンエラーではなく)公権力に構造的に内在されているもの」なので、冤罪が存在する以上、不可逆な刑罰である死刑は廃止すべきである、という結論に至っています。(死刑執行された人は生き返らない、生かしていれば万が一冤罪が判明した場合でも取り返しがつく。)


こういう哲学的考察ができるようになりたい。

僕もこの本を読むまでは、はっきりとした意見をもっていたわけではありませんが、どちらかというと「死刑廃止論」でした。どちらかというと、ですけど。

その根拠としては、可逆でない方法で刑罰を執行するのは、万が一のこと考えて取り返しがつかなくなるとまずいんじゃないんですかね?という、感覚だったからです。

この本のように主張されると、それはそれで納得。

考え方が偏らないように、反対の立場の本もいづれ読んでみたいと思います。

2018年2月15日木曜日

Syntaxhighlighterのサンプル

//preタグで記述する場合
print("hello world!!")

これはSyntaxhighlighterのテスト用の投稿です。

2018年2月14日水曜日

google-code-prettifyのサンプル

print("hello world!!")
これはgoogle-code-prettifyのテスト用の投稿です。

2017年10月9日月曜日

NCC総合英語学院に通うことにした理由

60万あったとき、何をするか。

大それたことや大きく舵を切るには、少し心許ない。

しかし、それなりにまとまった金額ではある。もうじきで30歳になろうかという時期、自分はそんな状況だった。




もともとは大学院へ戻るつもりで、資金を貯めていて、一時期100万円程度まで達しますが、それより先がなかなか増えないという状況でした。むしろ、なにかと出費がかさみ、徐々に減っていく状況。


このままだと、いつまでもたまらずに、何もできずに時だけがすぎて行ってしまう危機感を覚えていました。


30歳という節目であることも意識にあり、この先の人生についての方向性やリスクもいろいろ考えました。

そのとき軸になっていた考え方が、「手元にある約60万+α(これから入ってくる収入)」をどう活用するかということでした。

そのまま、引き続き貯金をし続けたとしても、十分な金額になるまでどのくらいかかるかわからない。

一方で、留学などを視野に入れる場合、資金面も去ることながら、英語力も必要だ。

では、今手元の資金を英語力の強化にあててはどうかという考えに至ります。

どのくらいの資金を充てるかという問題がまだあるにせよ、少なからず資金を失うわけです。その場合のリスクも考えました。

仮にその資金を留保し、現状のまま何もしなかった場合。その場合は中途半端な資金だけが手元に残り、このまま何もできずにずるずる行ってしまうだろう。

一方で、仮に英語力アップに投資し、万が一失敗した場合、何が変わるだろうか。
確かに資金は失って、様々な可能性は潰えるかもしれないが、少なくとも現状より状況が悪化することはないだろう。

逆に、しっかりと結果がついてきて英語力がアップすれば、大学院への受験のハードルも下がるだろうし、TOEFLなどでハイスコアがとれるレベルまで達すれば、奨学金などをとるチャンスもでてくるだろうし、そこまで達しなかったとしても、現状よりはキャリアの幅を広げるチャンスにもなるだろう。

それに論文とかももっとスラスラ読めるようになりたいし。


簡潔にいってしまえば、現状はほぼ失うものがないという感じだったということです。
だったら、賭けに使ってみようという算段でした。



そこから先、NCC総合英語学院を選ぶまでの思考過程はそれほど深くはありません。

強いていうのであれば、大学院時代、英語の教科書を読んではいましたが、中学以来まともに文法の勉強をしたことがないので、正直どのくらいのところからスタートすればいいのかわからない状況でした。

高校時代の英語は割と最初の放棄してしまったので、どんなことをやっていたのかほとんど記憶なし。そんなでも数学の本であれば英語で読めてしまうのです。あー怖い怖い。

いろいろ調べたのですが、TOEICとかでそれなりのスコアを出しているような人向けの学校が多い中、かなり初歩から上はすごいレベルまで面倒を見てくれそうなのがNCCでした。

あとそれに対する授業料の安さ。費用対効果が凄すぎる。

そんないきさつが、NCCへ入学した理由になります。



まだNCCへ入学し半年ほどですが、それでも十分すぎるほど効果を実感しています。

だからこそもっと加速してがんばろうと思います。

2017年10月8日日曜日

英検を受けてきました。

今日は英検を受けてきました。

実は半年ほど前から、NCC総合英語学院という英語学校へ通っていまして、現時点での力試しとして受けてみました。

(NCCへ通うことになった経緯はまたいずれ書きます。)

実は、前回(NCCへ通い始める前)に受けた準2級があとわずかで落ちてしまっていたようですが、今回は準2をすっ飛ばし、2級と準1をダブル受験しました。


時間的な順番として2級→準1と想像していたのですが、受験票が届きまさかの準1→2級の順番。
ウォーミングアップができないー!
ま、準1はもともとチャレンジのつもりだったのでいいですが。


今回、特に英検に特化した準備はせず、そのまま挑みました。
しかも若干なめてるのか、前日にオーケストラの本番をやり、その後の飲み会までがっつり参加。
結局朝から出て、帰ってきたのが夜で、帰ってそのまま寝てしまうという、あまりにもテスト前とは思えない生活笑)

まぁ、普段やっているから、今更小手先でどうこうしても変わらんだろ、とよくも悪くも開きなおりですね。



で、手応えとしてはまずまずでした。

準1級については、今回は落ちたような気はしますが、以前であれば全く箸にも棒にも引っかからないレベルだったかと思いますが、今回は、「これからもっと勉強すればなんとかなるかも」と思えるぐらいの手応えは感じました。


準1級を受けたあとからなのか、2級に関しては異様に簡単に感じました。サクサク答えられる♪

それこそ、前回準2級を受けたときは、準2級ですら苦労して(結果落ちていたのに)、それより上の級がすごい楽に感じるとは、すごい進歩だなと思いました。


当たり前かもしれないですが、問題の形式も若干違うんですね。

2級だと問題の説明とかは日本語ですが、準1だと問題の説明とか含めて全部英語。

あと、2級から英作文の問題もあることを、今日初めてしりました。



半年間NCCへ通って、着実に基礎体力があがっているなと感じた1日でした。

これからも一層ペースアップして頑張る。

2017年7月21日金曜日

久しぶりの演奏会

いまさらながら、という投稿ではありますが、先日7月8日、FAF管弦楽団の演奏会で演奏してしました。っていうか、宣伝の意味もかねて本番前に、書けよって話しですよね(^^;)






まさかの本番近い時期に夏風邪をひいてしまい、未だに体調が100パーセントではないのですが、とりあえず本番とかはできる程度には回復し、咳も治った状態で演奏会へ望めました。

で、来場者人数は1024人!すごい。。。っていうかここまで集客できるってすごいですよね。



去年の10月、高校のOBオケが終わってから社会人オケを探していました。

前回ショスタコのときもエキストラで誘われましたが、他にもいろいろ見てまわりたかったのと、曲が曲なので、そのときは一旦見送りにしました。

他のオケもいろいろ見学しに行き比較した結果なんとなくいいなーと思い、今回ドボルザークプログラムで試し参加として誘われ参加。

何回か参加し、このオケに入団することになりました。

色々なオケに見学に行きましたが、個人個人が技量が足りていないオケとか引き散らかしているようなオケもある中、このオケはうまい人が多く、オケとしても一つの音にしようとする姿勢が伝わってくるので、弾きやすいです。(もちろんこのオケよりもはるかにうまいアマオケもたくさんありますが、一方でレベルが低いオケもあるということです。)

あと、来てくださる先生方が豪華すぎる!

毎回練習のあとに行きつけの飲み屋があり、飲み会も充実!


今回のドボルザークは、エキストラとしてよくわからない身分で参加しておりましたが、その間もよくして頂き、みなさま人柄もいいです。


っていう感じでステマっぽくなってしまいましたが、こんな感じです。

団員絶賛募集中状態なので、興味ある方は是非♪

2017年3月21日火曜日

一回限りのオケに参加しました

先日のことになりますが、一発オケの演奏会本番に出演してきました。

オルケーストル・ウリープカというオケでした。



昨年、ヴィオラの練習を再開し、以前の記事でも書いた高校オケの記念オケ(『50周年記念演奏会を終えて』)が終わったあと、どこか所属するオケを探そうと思って探している最中に、見つけたオケ。

ネットから応募して参加。

継続的に所属するオケを決めるには、もう少し色々なオケを見学してみたいし、かといってなにか演奏会にも乗りたいし。。。と思っているところへ、ラフマニノフの交響曲2番をやるというところに目が行き、練習日程なども都合がつきそうだったので参加しました。
(このオケ自体の目的はハチャトゥリアンのバイオリン協奏曲をやるのが本来の目的ですが)


ラフマニノフ交響曲2番は大学2年のときに1回やりました。しかしそのときは難しすぎて、若干トラウマになっており、いつかリベンジしたいと思っておりました。

2回目なので、重点的に練習しなければいけない箇所や曲全体の理解も深まっているはずでしたが、それでもなお難しい!

改めてといか、2回目にしてようやく、「ラフマニノフは難しい」というのを理解した気がします。同じ「難しい」でもただただ難しいとしか思っていなかった1回目と比べれば、「難しいということを理解」したので、少しは成長したのかなと。

難しかったですが、全体的に1回目よりは弾けたので、そういう意味ではトラウマは少し克服できたかなと思います。



一発オケとはいいつつも、一応母体のオケ、オーケストラ・ソリーソからのスピンオフ的なオケだったので、大半のメンバーは中心メンバーからの知り合いの人たち。その他自分のように、全くの知り合いなしにネットから応募した人も。

なので、本来であれば一人も知り合いはいないはずでしたが、知り合いの知り合いがいることが判明。
改めて世界は狭いなと思いました。

このオケで全く新しく知り合いになった人もいたりして、この狭い世界、またどこかで会うんだろうなということはそれほど想像に難くない。

そうやってまた仲間が増えました。

そうやって、ふらふらしながら、新しい人間関係を築いていく、その集団に溶け込んでいくのは、楽しいです。

コミュニケーション能力は低いのにね笑)

2017年1月16日月曜日

Sklearnを使ってみる2

以前、といってもかなり前になってしまいますが、『Sklearnを使ってみる1』という投稿で、『実践 機械学習システム』という本を読み進めようとしていましたが、かなり間があいてしまいましたが、続きをやっていこうと思います。


前回、とりあえず以下のコードが動きました。
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
import numpy as np

data = load_iris()

features=data["data"]
feature_names=data["feature_names"]
target=data["target"]
target_names=data["target_names"]
labels=target_names[target]

for t,marker,c in zip (xrange(3),">ox","rgb"):

 plt.scatter(features[target == t,0],features[target == t,1],marker=marker,c=c)


とりあえず、この先
for t,marker,c in zip (xrange(3),">ox","rgb"):

 plt.scatter(features[target == t,0],features[target == t,1],marker=marker,c=c)


の部分は使わないので、コメントアウトするなり消すなりしておきます。
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
import numpy as np

data = load_iris()

features=data["data"]
feature_names=data["feature_names"]
target=data["target"]
target_names=data["target_names"]
labels=target_names[target]

#for t,marker,c in zip (xrange(3),">ox","rgb"):

 #plt.scatter(features[target == t,0],features[target == t,1],marker=marker,c=c)


で代わりにコードを継ぎ足して以下のようにします。
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
import numpy as np

data = load_iris()

features=data["data"]
feature_names=data["feature_names"]
target=data["target"]
target_names=data["target_names"]
labels=target_names[target]

#for t,marker,c in zip (xrange(3),">ox","rgb"):

 #plt.scatter(features[target == t,0],features[target == t,1],marker=marker,c=c)


###追加した部分
plength=features[:,2]
is_setosa=(labels=='setosa')

max_setosa=plength[is_setosa].max()
min_non_setosa=plength[~is_setosa].min()

print("Maximum of setosa:{0}".format(max_setosa))
print("Minimum of others:{0}".format(min_non_setosa))



一行一行説明していきます。

plengthの行

まず、plengthの行は、生データから花弁の長さ(plength)の値だけからなる新しい配列を作成しています。

前回、Irisデータセットは辞書型配列になっていて、その"data"要素には生データの一覧がarray型で格納されているということを確認しました。

それで、そのdata要素をfeaturesという変数に格納しました。(なので当然featuresにも生データが入っている。)

featuresの中は特徴量がarray型としてデータ別に入っているわけです。各要素の3番目の要素(インデックスとしては2番目)には花弁の長さの値が入っているので、インデックス2番目だけをすべて抽出して、plengthという変数に配列として格納しますよ、という意味。

厳密に言えば、plengthの型はarray型です。気になるようであれば、print(type(plength))として確認する。

plengthの部分だけ確認するのであれば、print(plength)を一番最後に追記しておけば、本当かどうか確かめられる。


from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
import numpy as np

data = load_iris()

features=data["data"]
feature_names=data["feature_names"]
target=data["target"]
target_names=data["target_names"]
labels=target_names[target]

#for t,marker,c in zip (xrange(3),">ox","rgb"):

 #plt.scatter(features[target == t,0],features[target == t,1],marker=marker,c=c)


###追加した部分
plength=features[:,2]
is_setosa=(labels=='setosa')

max_setosa=plength[is_setosa].max()
min_non_setosa=plength[~is_setosa].min()

#print("Maximum of setosa:{0}".format(max_setosa))
#print("Minimum of others:{0}".format(min_non_setosa))

print(plength)
print(type(plength))



これを実行すれば、
[ 1.4  1.4  1.3  1.5  1.4  1.7  1.4  1.5  1.4  1.5  1.5  1.6  1.4  1.1  1.2
  1.5  1.3  1.4  1.7  1.5  1.7  1.5  1.   1.7  1.9  1.6  1.6  1.5  1.4  1.6
  1.6  1.5  1.5  1.4  1.5  1.2  1.3  1.5  1.3  1.5  1.3  1.3  1.3  1.6  1.9
  1.4  1.6  1.4  1.5  1.4  4.7  4.5  4.9  4.   4.6  4.5  4.7  3.3  4.6  3.9
  3.5  4.2  4.   4.7  3.6  4.4  4.5  4.1  4.5  3.9  4.8  4.   4.9  4.7  4.3
  4.4  4.8  5.   4.5  3.5  3.8  3.7  3.9  5.1  4.5  4.5  4.7  4.4  4.1  4.
  4.4  4.6  4.   3.3  4.2  4.2  4.2  4.3  3.   4.1  6.   5.1  5.9  5.6  5.8
  6.6  4.5  6.3  5.8  6.1  5.1  5.3  5.5  5.   5.1  5.3  5.5  6.7  6.9  5.
  5.7  4.9  6.7  4.9  5.7  6.   4.8  4.9  5.6  5.8  6.1  6.4  5.6  5.1  5.6
  6.1  5.6  5.5  4.8  5.4  5.6  5.1  5.1  5.9  5.7  5.2  5.   5.2  5.4  5.1]

こうなる。

is_setosaの行

次にis_setosaの行。
まさにリスト内包表記を使っている例。
前回でlabelという変数に、どのデータがどの花なのかという名前の対応リストを格納しました。

(label=='setosa')で、labelの中の名前の一覧と比較してsetosaに一致していればTrueを、そうでなければFalseを返してTrueかFalseから成る配列を生成しis_setosaに格納します。

もっとスマートにいえばブーリアン配列を生成するということです。

確認するには、例のごとくprint(is_setosa)を追記して実行すればいいです。面倒なのと、若干くどい気もするので、ここは省略。


max_setosaの行

次にmax_setosaの行へ行きます。

plength[is_setosa]の意味ですが、ブールインデックス参照という書き方です。

is_setosaがTrue or Falseからなる配列であることを上で書きました。そういうブーリアン配列をインデックスとして代入すると、plengthの要素の中からブーリアン配列のTrueに対応している要素だけを抽出して新しい配列を作成します。

Trueになっているのはsetosaのところでしたので、setosaに対応している花弁の長さだけが抽出できます。

plength[is_setosa]という名前の新しい配列なので、それにmax()メソッドを使っている。

つまり、setosaの花弁の長さの中で一番値が大きいものを、max_setosaに代入。

min_non_setosaの行

この行も、先ほど使ったブールインデックス参照が使われてます。

今度はsetosa以外のものの最小値を求めています。

setosa以外、ということはis_setosaにおいてはFalseにあたるものです。

Falseのままではブールインデックス参照ができないので、「~」演算子を使ってビット反転させis_setosaのTrueはFalseに、FalseはTrueにしてして代入しています。

printの行

最後は、処理というよりは、単純にpythonの文法ですが、一応自分なりに説明しておきます。

これは文字列に対するformatメソッドです。
調べてみると、formatメソッドにもいろいろ描き方のバリエーションがあるようですが、おそらく基本的な描き方は以下の形式かと思われます。

'文字列'.format(要素0,要素1,・・・)
ドットより前の文字列の中に、formatに引数として渡されている要素のインデックスの番号を代わりに代入して、最終的な出力文字列の体裁だけ整えるイメージです。

上記の"Maximum of setosa:{0}".format(max_setosa)とかであれば、この場合はformatメソッドに渡している要素が一つだけなので、それがインデックス0番目ということになりますが、それを「Maximum of setosa:{0}」という文字列の{0}をmax_setosaで置き換えたものが、結果としてできる文字列です。それをprintしている。
{数字}のところが、その番号に対応しているインデックスの要素で置きかわるという意味です。
詳しくは、下でまとめてあるリンクや本を参照。


で結局のところ、
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
import numpy as np

data = load_iris()

features=data["data"]
feature_names=data["feature_names"]
target=data["target"]
target_names=data["target_names"]
labels=target_names[target]


#for t,marker,c in zip (range(3),'>ox','rgb'):
#    
#    plt.scatter(features[target == t,0],features[target == t,1],marker=marker,c=c)
#
#plt.show()


plength=features[:,2]
is_setosa=(labels=='setosa')

max_setosa=plength[is_setosa].max()
min_non_setosa=plength[~is_setosa].min()

print('Maximum of setosa:{0}'.format(max_setosa))
print('Minimum of others:{0}'.format(min_non_setosa))

を実行すると、
hiroshi-no-MacBook-Air:Pro-tr hiroshi$ python3 others.py
Maximum of setosa:1.9
Minimum of others:3.0

という感じになります。
参考にしたページや文献・書籍
NumPy配列のブールインデックス参照 | hydroculのメモ
Python 3 の文字列フォーマット formatメソッド | TM Life
『実践 機械学習システム』(オライリー)

2016年11月30日水曜日

個展巡り

今日は(日付が変わってしまったので、厳密には昨日ですが)、個展を2件ハシゴしてきました。

最初は、林典子さんの「ヤズディーの祈り」を見に、銀座ニコンサロンへ行きました。



結構好きで見ているクレイジージャーニーという番組にゲスト出演してらっしゃって、そこで個展の紹介がされていたので、気になって見に行ってきました。

個展というものをみるのが、多分ほとんど初めてなので、他と比較した、イケている感想は言えないのですが、素直な感想を。


イスラム国に襲われ難民となってしまった人達の写真。

疎いことばかりで申し訳ないのですが、世界史とかを学ぶとき、教科書などでは「〜民族が〜民族を侵略した」とかいう感じで、せいぜい数ページ程度でさらっと書かれてしまうけど、当然ですが、現実には侵略する側とされる側がいるわけです。

ミクロな視点でみていけば、集団ではなく一人一人の人間が関与しているわけです。

それぞれの人には、当然それぞれの事情・背景があります。

そういう背景・事情を想像させるような写真たちでした。

林典子さんのブログに記載がありますが、「インパクトのある写真」を外したからそういう風にみえるのかもしれませんね。



見終わったあと、少し周囲をぶらついていたら、近辺には画廊が数箇所固まっていました。
このへんは画廊がたくさんあるなんて意外な発見。銀座くるときは大通り沿いをあるくことが多いので初めて知りました。


その中でも入りやすそうだった、シロタ画廊へ。展示している内容も版画ということで興味があったので。

この期間展示されていたのは吹田文明さんという方の作品。

これまた、自分は全く知らない方。中の紹介文などをみるとその業界では有名な人らしい。

版画とか小学校のときに少しやった程度で、全く疎い。。。

そんな素人でも、好きだなって思ったのが、『銀河を渡る』という作品と『美しき銀河を行く』という作品。

蝶々が星空を渡っていくような作品ですが、木目を利用している作品で、版画だからこそというか、木目の利用の仕方がうまい!と素人ながら思ってしまいました。



個展巡りとか初めてしたけど、なんか楽しい。

美術館とかよりも、その作者ともっと個人的に近づいている気になれるというか、自分だけしか知らない展示会をみにいっている感じとか。

完全に自己満だけど。

小さい画廊へ入るハードルが下がったので、今後も定期的にチェックしてみたいと思う。




というか本当は、今やっているクリスチャン・ボルタンスキーの『さざめく亡霊たち』を見に行きたかったけど、時間がなくなってしまったので予定変更したので、また時間あるときに今度は、クリスチャン・ボルタンスキーを見に行こうと思う。


2016年11月18日金曜日

ディリクレ指標の具体的計算---原始的(primitive)な指標を求めてみる

$N=3$の場合

では$N=3$のときから順番に求めていきたいと思います。
$\left(\mathbb{Z}/3\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{2}\}=\left<\bar{2}\right>$となっています。 $$\begin{array}{|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{2}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{-1} \\ \end{array}$$ このぐらいであれば、元の数がまだ少ないので、最悪の場合でも行き当たりばったりでも、それぞれの元の写り先が求められます。 全ての元を1へ写す指標(=主指標)は必ずあるので、それが 上の表でいうところの$\chi_0$です。
その他に、$\bar{2}=\bar{-1}$であるので、$\chi$が準同型であることから$\chi(\bar{-1})=-1$であるような写像もなければなりません。それが上の表でいうところの$\chi_1$です。

これで、導手$N=3$の指標は尽きます。
というのも、$\chi(\bar{2})=e^{\frac{2\pi i k}{2}}$ ($k=0,1$)であるから、$\bar{2}$の写り先は$k=0$に対応する場合か$k=1$に対応する場合、つまり$1$か$-1$しかないので、上記の指標で尽くされます。
$\mathbb{N}$の元に対応する形で表を書いてみると、こうなります。
$$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & ・・・\\ \hline \chi_1 & 1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 & ・・・\\ \hline \end{array}$$

$N=4$の場合

$\left(\mathbb{Z}/4\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{3}\}=\left<\bar{3}\right>$となっています。
この場合も考え方は$N=3$のときとほとんど同じです。結果だけ書きます。 $$\begin{array}{|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{3}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{-1} \\ \end{array}$$
同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & ・・・\\ \hline \chi_1 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & ・・・\\ \hline \end{array}$$

$N=5$の場合

このあたりから様子がちょっと変わります。
$\left(\mathbb{Z}/5\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{2},\bar{3},\bar{4}\}=\left<\bar{2}\right>=\left< \bar{3} \right>$となるので、$\bar{2}$もしくは$\bar{3}$の行き先を決めれば、すべて決まります。 $$\begin{array}{|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{2}} & \Large{\bar{3}}& \Large{\bar{4}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{i} & \Large{-i} & \Large{-1}\\ \hline \Large{\chi_2} & \Large{1} & \Large{-i} & \Large{i} & \Large{-1}\\ \hline \Large{\chi_3} & \Large{1} & \Large{-1} & \Large{-1} & \Large{1}\\ \hline \end{array}$$ 以上で$N=5$の指標は尽くされます。 $N=3,4$のときと同様に、$\bar{2}$の行き先を決めるという方向性で考えていけば、($\bar{3}$から考えても結局は同じですが)  $\chi(\bar{2})=e^{\frac{2\pi i k}{4}}$ ($k=0,1,2,3$)で$k=0$に対応する場合を$\chi_0$、$k=1$に対応する場合を$\chi_1$という感じで決めていきます。(どれを$\chi_1$とするかは自由。)
同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 1 & 1 & 1 & 0 & 1 & 1 & 1 & 1 & 0 & 1 & 1 & 1 & 1 & 0 & ・・・\\ \hline \chi_1 & 1 & i &-i & -1 &0 & 1 & i & -i & -1 & 0 & 1 & i & -i & -1 & 0 & ・・・\\ \hline \chi_2 & 1 & -i & i & -1 & 0 & 1 & -i & i & -1 & 0 & 1 & -i & i & -1 & 0 & ・・・\\ \hline \chi_3 & 1 & -1 & -1 & 1 & 0 & 1 & -1 & -1 & 1 & 0 & 1 & -1 & -1 & 1 & 0 & ・・・\\ \hline \end{array}$$

$N=6$の場合

$\left(\mathbb{Z}/6\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{5}\}=\left<\bar{5}\right>$となっています。
これも$N=3,4$のときと同様です。なので結果だけ。 $$\begin{array}{|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{5}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{-1} \\ \end{array}$$
同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & ・・・\\ \hline \chi_1 & 1 & 0 & 0 & 0 & -1 & 0 & 1 & 0 & 0 & 0 & -1 & 0 & 1 & 0 & 0 & ・・・\\ \hline \end{array}$$

$N=7$の場合

これは$N=5$の場合に似ています。 $\left(\mathbb{Z}/7\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{2},\bar{3},\bar{4},\bar{5},\bar{6}\}=\left<\bar{3}\right>=\left< \bar{5} \right>$となるので、$\bar{3}$もしくは$\bar{5}$の行き先を決めれば、すべて決まります。
$\bar{3}$の行き先を決める方向性で決めていく($\bar{3}$の列をみる)と、 $$\begin{array}{|c|c|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{2}} & \Large{\bar{3}}& \Large{\bar{4}} & \Large{\bar{5}}& \Large{\bar{6}}\\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & e^{\frac{2\pi i }{3}}& e^{\frac{\pi i }{3}}& e^{\frac{4\pi i }{3}} &e^{\frac{5\pi i }{3}} & -1\\ \hline \Large{\chi_2} & \Large{1} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} &e^{\frac{2\pi i }{3}} &e^{\frac{4\pi i }{3}} & 1\\ \hline \Large{\chi_3} & \Large{1} & \Large{1} & \Large{-1} & \Large{1} & \Large{-1} & \Large{-1}\\ \hline \Large{\chi_4} & \Large{1} &e^{\frac{2\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} & 1\\ \hline \Large{\chi_5} & \Large{1} &e^{\frac{4\pi i }{3}} &e^{\frac{5\pi i }{3}} &e^{\frac{2\pi i }{3}} &e^{\frac{\pi i }{3}} & -1\\ \hline \end{array}$$ となります。
以上で$N=7$の指標は尽くされます。 同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 1 & ・・・\\ \hline \chi_1 & 1 & e^{\frac{2\pi i }{3}} & e^{\frac{\pi i }{3}} & e^{\frac{4\pi i }{3}} & e^{\frac{5\pi i }{3}} & -1 & 0 & 1 & e^{\frac{2\pi i }{3}} & e^{\frac{\pi i }{3}} & e^{\frac{4\pi i }{3}} & e^{\frac{5\pi i }{3}} & -1 & 0 & 1 & ・・・\\ \hline \chi_2 & 1 & e^{\frac{4\pi i }{3}} & e^{\frac{2\pi i }{3}} & e^{\frac{2\pi i }{3}} & e^{\frac{4\pi i }{3}} & 1 & 0 & 1 & e^{\frac{4\pi i }{3}} & e^{\frac{2\pi i }{3}} & e^{\frac{2\pi i }{3}} & e^{\frac{4\pi i }{3}} & 1 & 0 & 1 & ・・・\\ \hline \chi_3 & 1 & 1 & -1 & 1 & -1 & -1 & 0 & 1 & 1 & -1 & 1 & -1 & -1 & 0 & 1 & ・・・\\ \hline \chi_4 & 1 & e^{\frac{2\pi i }{3}} & e^{\frac{4\pi i }{3}} & e^{\frac{4\pi i }{3}} & e^{\frac{2\pi i }{3}} & 1 & 0 & 1 & e^{\frac{2\pi i }{3}} & e^{\frac{4\pi i }{3}} & e^{\frac{4\pi i }{3}} & e^{\frac{2\pi i }{3}} & 1 & 0 & 1 & ・・・\\ \hline \chi_5 & 1 & e^{\frac{4\pi i }{3}} & e^{\frac{5\pi i }{3}} & e^{\frac{2\pi i }{3}} & e^{\frac{\pi i }{3}} & -1 & 0 & 1 & e^{\frac{4\pi i }{3}} & e^{\frac{5\pi i }{3}} & e^{\frac{2\pi i }{3}} & e^{\frac{\pi i }{3}} & -1 & 0 & 1 & ・・・\\ \hline \end{array}$$

$N=8$の場合

ここでも、今までとは違ったパターンが出てきます。
$\left(\mathbb{Z}/8\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{3},\bar{5},\bar{7}\}=\left<\bar{3}\right> \times\left< \bar{5} \right>$となるので、$\bar{3}$と$\bar{5}$の両方の行き先を決めれば、すべて決まります。
$\bar{3}$も$\bar{5}$もそれぞれ位数が2なので、それぞれについて$N=3,4,6$のときと同じように$1$、$-1$を対応させます。
$\bar{3}$が$1$へいくか$-1$へいくか、$\bar{5}$が$1$へいくか$-1へいくか$なので、指標は全部で4つ出てきます。 $$\begin{array}{|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{3}} & \Large{\bar{5}}& \Large{\bar{7}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{1} & \Large{-1} & \Large{-1}\\ \hline \Large{\chi_2} & \Large{1} & \Large{-1} & \Large{1} & \Large{-1}\\ \hline \Large{\chi_3} & \Large{1} & \Large{-1} & \Large{-1} & \Large{1}\\ \hline \end{array}$$ 同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & ・・・\\ \hline \chi_1 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & ・・・\\ \hline \chi_2 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & ・・・\\ \hline \chi_3 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & ・・・\\ \hline \end{array}$$
便宜上、$N=n$のときの$i$番目の指標を$\chi_{i,n}$のような表記で書くことにする。

$\pi_{8,4}$を$\left(\mathbb{Z}/8\mathbb{Z}\right) ^{\times}$から$\left(\mathbb{Z}/4\mathbb{Z}\right) ^{\times}$への自然な全射準同型とすると、  \[ \chi_{2,8}=\pi_{8,4} \circ \chi_{1,4} \] となっています。
実際、比較してみれば$N=4$の指標表が、 $$\begin{array}{|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{3}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{-1} \\ \end{array}$$ $N=8$の指標表が、 $$\begin{array}{|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{3}} & \Large{\bar{5}}& \Large{\bar{7}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{1} & \Large{-1} & \Large{-1}\\ \hline \Large{\chi_2} & \Large{1} & \Large{-1} & \Large{1} & \Large{-1}\\ \hline \Large{\chi_3} & \Large{1} & \Large{-1} & \Large{-1} & \Large{1}\\ \hline \end{array}$$ となっています。

もしくは$\mathbb{N}$の元に対応する形の表であれば、$N=4$のときの$\chi_1$は、 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_1 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & ・・・\\ \hline \end{array}$$ 一方、$N=8$のときの$\chi_2$は、 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_2 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & ・・・\\ \hline \end{array}$$
つまり、$N=8$の指標 $\chi_2$は$N=4$の指標 $\chi_1$から誘導されます。さらに言い方と変えれば$N=8$の指標 $\chi_2$の導手は$4$となります。

$N=8$の $\chi_2$以外の指標(自明な指標 $\chi_0$は除く)は$N=4$の指標との合成では書けないので、原始的、primitiveな指標です。

これが、前回の記事(ディリクレ指標の定義)の定義1-2-2や定義2-2のように考えるやり方。

定義1-2方式で考える場合には8の約数(4と8)での指標全て、合計6個を対象にそれを$\rho$とします。$\rho$の選び方によっては$\rho(n) = \chi(n) ( \forall n , (n,8)=1)$ではあるものの必ずしも8の指標ではないものもあるので、そういう$\rho$が取れてしまう$\chi$は原始的ではありません。

$\chi_1$や$\chi_3$であれば、$\rho(n) = \chi(n) ( \forall n , (n,8)=1)$ならば、$M=8$が言えるので、原始的です。

定義1-2-2や定義2-2方式のほうが現代っぽくて、回りくどくないので、以下の例ではすべて定義1-2-2や定義2-2方式で書きます。

$N=9$の場合

同様に、$\left(\mathbb{Z}/9\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{2},\bar{4},\bar{5},\bar{7},\bar{8}\}=\left<\bar{2}\right>=\left< \bar{5} \right>$なので、$\bar{2}$か$\bar{5}$の行き先を決めれば、すべて決まります。
(結局同じことになりますがが)$\bar{2}$の行き先を決める方向で進めます。 $$\begin{array}{|c|c|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{2}} & \Large{\bar{4}}& \Large{\bar{5}} & \Large{\bar{7}}& \Large{\bar{8}}\\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & e^{\frac{\pi i }{3}}& e^{\frac{2\pi i }{3}}& e^{\frac{5\pi i }{3}} &e^{\frac{4\pi i }{3}} & -1\\ \hline \Large{\chi_2} & \Large{1} &e^{\frac{2\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} & 1\\ \hline \Large{\chi_3} & \Large{1} & \Large{-1} & \Large{1} & \Large{-1} & \Large{1} & \Large{-1}\\ \hline \Large{\chi_4} & \Large{1} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} &e^{\frac{2\pi i }{3}} &e^{\frac{4\pi i }{3}} & 1\\ \hline \Large{\chi_5} & \Large{1} &e^{\frac{5\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} & -1\\ \hline \end{array}$$ となります。
以上で$N=9$の指標は尽くされます。

同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & ・・・\\ \hline \chi_1 & 1 & e^{\frac{\pi i }{3}} & 0 & e^{\frac{2\pi i }{3}} & e^{\frac{5\pi i }{3}} & 0 & e^{\frac{4\pi i }{3}} & -1 & 0 & 1 & e^{\frac{\pi i }{3}} & 0 & e^{\frac{2\pi i }{3}} & e^{\frac{5\pi i }{3}} & 0 & ・・・\\ \hline \chi_2 & 1 & e^{\frac{2\pi i }{3}} & 0 & e^{\frac{4\pi i }{3}} & e^{\frac{4\pi i }{3}} & 0 & e^{\frac{2\pi i }{3}} & 1 & 0 & 1 & e^{\frac{2\pi i }{3}} & 0 & e^{\frac{4\pi i }{3}} & e^{\frac{4\pi i }{3}} & 0 & ・・・\\ \hline \chi_3 & 1 & -1 & 0 &1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 &1 & -1 & 0 & ・・・\\ \hline \chi_4 & 1 & e^{\frac{4\pi i }{3}} & 0 & e^{\frac{2\pi i }{3}} & e^{\frac{2\pi i }{3}} & 0 & e^{\frac{4\pi i }{3}} & 1 & 0 & 1 & e^{\frac{4\pi i }{3}} & 0 & e^{\frac{2\pi i }{3}} & e^{\frac{2\pi i }{3}} & 0& ・・・\\ \hline \chi_5 & 1 & e^{\frac{5\pi i }{3}} & 0 & e^{\frac{4\pi i }{3}} & e^{\frac{4\pi i }{3}} & 0 & e^{\frac{2\pi i }{3}} & -1 & 0 & 1 & e^{\frac{5\pi i }{3}} & 0 & e^{\frac{4\pi i }{3}} & e^{\frac{4\pi i }{3}} & 0& ・・・\\ \hline \end{array}$$
$\pi_{9,3}$を$\left(\mathbb{Z}/9\mathbb{Z}\right) ^{\times}$から$\left(\mathbb{Z}/3\mathbb{Z}\right) ^{\times}$への自然な全射準同型とすると、 \[ \chi_{3,9}=\pi_{9,3} \circ \chi_{1,3} \] となっています。
実際、比較してみれば、$N=3$の指標表が、 $$\begin{array}{|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{2}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{-1} \\ \end{array}$$ $N=9$の指標表が、 $$\begin{array}{|c|c|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{2}} & \Large{\bar{4}}& \Large{\bar{5}} & \Large{\bar{7}}& \Large{\bar{8}}\\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & e^{\frac{\pi i }{3}}& e^{\frac{2\pi i }{3}}& e^{\frac{5\pi i }{3}} &e^{\frac{4\pi i }{3}} & -1\\ \hline \Large{\chi_2} & \Large{1} &e^{\frac{2\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} & 1\\ \hline \Large{\chi_3} & \Large{1} & \Large{-1} & \Large{1} & \Large{-1} & \Large{1} & \Large{-1}\\ \hline \Large{\chi_4} & \Large{1} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} &e^{\frac{2\pi i }{3}} &e^{\frac{4\pi i }{3}} & 1\\ \hline \Large{\chi_5} & \Large{1} &e^{\frac{5\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{4\pi i }{3}} &e^{\frac{2\pi i }{3}} & -1\\ \hline \end{array}$$ となっています。

もしくは$\mathbb{N}$の元に対応する形の表であれば、$N=3$のときの$\chi_1$は、 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_1 & 1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 & ・・・\\ \hline \end{array}$$ 一方、$N=9$のときの$\chi_3$は、 同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_3 & 1 & -1 & 0 &1 & -1 & 0 & 1 & -1 & 0 & 1 & -1 & 0 &1 & -1 & 0 & ・・・\\ \hline \end{array}$$ つまり、$N=9$の指標 $\chi_3$は$N=3$の指標 $\chi_1$から誘導されます。さらに言い方と変えれば$N=9$の指標 $\chi_3$の導手は$3$となります。

$N=9$の $\chi_3$以外の指標(自明な指標 $\chi_0$は除く)は$N=3$の指標との合成では書けないので、原始的、primitiveな指標です。

$N=10$の場合

同様に、$\left(\mathbb{Z}/10\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{3},\bar{7},\bar{9}\}=\left<\bar{3}\right>=\left< \bar{7} \right>$なので、$\bar{3}$か$\bar{7}$の行き先を決めれば、すべて決まります。
(結局同じことになりますがが)$\bar{3}$の行き先を決める方向で進めます。 $$\begin{array}{|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{3}} & \Large{\bar{7}}& \Large{\bar{9}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{i} & \Large{-i} & \Large{-1}\\ \hline \Large{\chi_2} & \Large{1} & \Large{-1} & \Large{-1} & \Large{1}\\ \hline \Large{\chi_3} & \Large{1} & \Large{-i} & \Large{i} & \Large{-1}\\ \hline \end{array}$$ 以上で$N=10$の指標は尽くされます。

同様に$\mathbb{N}$の元に対応する形で書くとこうなります。 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_0 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0& ・・・\\ \hline \chi_1 & 1 & 0 &i & 0 &0 & 0 & -i & 0 & -1 & 0 & 1 & 0 &i & 0 &0 & ・・・\\ \hline \chi_2 & 1 & 0 & -1 & 0 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & ・・・\\ \hline \chi_3 & 1 & 0 & -i & 0 & 0 & 0 & i & 0 & -1 & 0 & 1 & 0 & -i & 0 & 0 & ・・・\\ \hline \end{array}$$ $\pi_{10,5}$を$\left(\mathbb{Z}/10\mathbb{Z}\right) ^{\times}$から$\left(\mathbb{Z}/5\mathbb{Z}\right) ^{\times}$への自然な全射準同型とすると、 \[ \chi_{10,1}=\pi_{10,5} \circ \chi_{2,5} \] \[ \chi_{10,3}=\pi_{10,5} \circ \chi_{1,5} \] となっています。($\chi$の対応の順番に注意。$\chi_1$に対して$\chi_2$が対応というように順番が入れ替わっている。)

実際、比較してみれば、$N=5$の指標表が、 $$\begin{array}{|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{2}} & \Large{\bar{3}}& \Large{\bar{4}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{i} & \Large{-i} & \Large{-1}\\ \hline \Large{\chi_2} & \Large{1} & \Large{-i} & \Large{i} & \Large{-1}\\ \hline \Large{\chi_3} & \Large{1} & \Large{-1} & \Large{-1} & \Large{1}\\ \hline \end{array}$$
$N=10$の指標表が、 $$\begin{array}{|c|c|c|c|c|} \hline \hline  & \Large{\bar{1}} & \Large{\bar{3}} & \Large{\bar{7}}& \Large{\bar{9}} \\ \hline \Large{\chi_0} & \Large{1} & \Large{1} & \Large{1} & \Large{1} \\ \hline \Large{\chi_1} & \Large{1} & \Large{i} & \Large{-i} & \Large{-1}\\ \hline \Large{\chi_2} & \Large{1} & \Large{-1} & \Large{-1} & \Large{1}\\ \hline \Large{\chi_3} & \Large{1} & \Large{-i} & \Large{i} & \Large{-1}\\ \hline \end{array}$$
もしくは$\mathbb{N}$の元に対応する形の表であれば、$N=5$のときの$\chi_2$は、 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_2 & 1 & -i & i & -1 & 0 & 1 & -i & i & -1 & 0 & 1 & -i & i & -1 & 0 & ・・・\\ \hline \end{array}$$
$N=10$のときの$\chi_1$は、 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_1 & 1 & 0 &i & 0 &0 & 0 & -i & 0 & -1 & 0 & 1 & 0 &i & 0 &0 & ・・・\\ \hline \end{array}$$ 従って$N=10$の指標 $\chi_1$は$N=5$の指標 $\chi_2$から誘導されます。さらに言い方と変えれば$N=10$の指標 $\chi_1$の導手は$5$となります。


さらに、$N=5$のときの$\chi_1$は、 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_1 & 1 & i &-i & -1 &0 & 1 & i & -i & -1 & 0 & 1 & i & -i & -1 & 0 & ・・・\\ \hline \end{array}$$ $N=10$のときの$\chi_3$は、 $$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline  & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 &11 & 12 & 13 & 14 & 15 & ・・・\\ \hline \chi_3 & 1 & 0 & -i & 0 & 0 & 0 & i & 0 & -1 & 0 & 1 & 0 & -i & 0 & 0 & ・・・\\ \hline \end{array}$$ 従って$N=10$の指標 $\chi_3$は$N=5$の指標 $\chi_1$から誘導されます。さらに言い方と変えれば$N=10$の指標 $\chi_3$の導手は$5$となります。

$N=10$の $\chi_1$と$\chi_3$以外の指標(自明な指標 $\chi_0$は除く)は$N=5$の指標との合成では書けないので、原始的、primitiveな指標です。

$N=11$の場合

$N=5,7$などのときと同様の流れなので省略します。この場合も指標はすべて原始的、primitiveです。

$N=12$の場合

同様に、$\left(\mathbb{Z}/12\mathbb{Z}\right) ^{\times}=\{\bar{1},\bar{5},\bar{7},\bar{11}\}=\left<\bar{5}\right>\times\left< \bar{7} \right>$なので、$\bar{5}$と$\bar{7}$の行き先を決めれば、すべて決まります。

ここあたりまでくれば、ほとんど今までの繰り返しです。$N=8$のときを参考に原始的指標まで求められると思います。

さすがに量が多くなってきたので具体的な指標表を書くのは省略します。

$N=13$以降

これについても大抵の場合は今までの繰り返しと組み合わせです。
指標表が大きくなってしまうので省略します。というか暇があれば、その先も書こう書こうかとも思いますが、いずれにせよ今回はここで終わりにします。
続きを書く場合には別記事にしようかと思います。


2016年11月16日水曜日

ディリクレ指標の定義

今までとは少し趣向を変えて、数学の話題についてもかこうと思います。

で、しかもいきなりですが、ディリクレ指標やL関数あたりのやや専門外の人にとってはマイナーな話題について書こうと思います。

まずは今回はディリクレ指標の定義などについて書きます。

ディリクレ指標の定義1-1

以下の3つの性質を満たす$\chi : \mathbb{N}\longrightarrow \mathbb{C}$を$\mod N$のディリクレ指標という。

  1. $a \equiv b \mod N \Longrightarrow \chi(a)=\chi(b)$
  2. $\chi(ab) = \chi(a)\chi(b)$
  3. $(a,N)\neq 1 \Longrightarrow \chi(a) = 0$

1.のは一度$\mathbb{N} \rightarrow \mathbb{Z}/N\mathbb{Z}$と写し、$\mathbb{N}$からの写像とはいいつつも実際は$\mathbb{Z}/N\mathbb{Z}$上の写像のように考えているという意味です。
2.はわざわざ説明するまでもないかと思いますが、$\chi$が準同型だという意味。
3.は1.に加えさらに、$\left( \mathbb{Z}/N\mathbb{Z} \right)^{\times}$上に制限して考え、それ以外は0にします、という意味です。

原始的ディリクレ指標の定義1-2-1

$\chi$が導手$N$の原始的ディリクレ指標とは、任意の$N$の約数$M>0$(真の約数ではないので、$N$の場合も含む)と、任意の$\mod M$のディリクレ指標$\rho$に対し、 $\rho(n)=\chi(n)$($\forall n , (n,N)=1$)ならば$M=N$となるものをいう。

$\rho$の条件を満たす指標で、導手が最小のものを$\chi$に付随する原始的指標という。

原始的ディリクレ指標の定義1-2-2

ほとんどいっていることは同じですが、間にワンクッション入れ、誘導される指標を定義してから原始的ディリクレ指標を定義する方法もあります。
  1. $M$を$N$の約数とする。また、$\psi$を$\mod M$のディリクレ指標とする。このとき、 \[ \chi(n)=\begin{cases} \psi(n) & ((n,N)=1) \\ 0 & ((n,N) \neq 1) \end{cases} \] と定めれば、$\chi$は$\mod N$のディリクレ指標になっている。(真面目になるならこれも確かめる必要がある。ほぼ明らかだけど。)

    このとき、$\chi$を$\psi$から誘導されたディリクレ指標という。
  2. $\chi$を$\mod N$のディリクレ指標とする。
    $M$を$N$の真の約数とする。また、$\psi$を$\mod M$のディリクレ指標とする。
    このとき、$\chi$が$\psi$から誘導されないのであれば、$\chi$を原始的ディリクレ指標という。
  3. $\chi$を誘導している指標で原始的なものの導手を $\chi$の導手ということもある。

ディリクレ指標の定義2-1

ディリクレ指標の定義自体も、まわりくどい言い方をせずにもっとシンプルな表現で定義する方法もあります。いっていることは同じ。

準同型写像$\chi : \mathbb{Z}/N\mathbb{Z} \rightarrow \mathbb{C}^{\times}$のことを$\mod N$のディリクレ指標という。

原始的ディリクレ指標の定義2-2

  1. $\mod N$のディリクレ指標$\chi$に対し、次の図式を可換にする$\mod n$のディリクレ指標 $\tilde{\chi}$が存在する最小の$n \mid N$を $\chi$の導手という。
  2. $\mod N$のディリクレ指標 $\chi$が原始的であるとは、$\chi$の導手が$N$であることをいう。

こちらの記事もどうぞ。
ディリクレ指標の具体的計算---原始的(primitive)な指標を求めてみる

2016年11月7日月曜日

水菜としめじの和風サラダ

今日も料理をつくってみました!

水菜としめじの和風サラダ。


味の調整についてまだまだ改良の余地はありますが、美味しかったです。
水菜の歯ごたえが心地いい。


2016年11月2日水曜日

50周年記念演奏会を終えて

つい先日10月30日に、高校の管弦楽団の50周年記念演奏会が終わりました。

なんと来場は家族や招待客などなど含めてではありますが1000人を超えたとのことです。

で、当日ホールにいた方々の中には、観客側にも演奏者側にもいたようです。

演奏者側でいえば、プロオケで活躍していらしたもしくは現在も活躍中の方が乗っておられました。(個人名は伏せます)

一方で観客側には、僕も又聞きではあるのですが、校歌の作詞をされた方ですとか、富士高校の前身である、第五高等女学校の卒業生の方などもいらしていたそうです。

特に校歌では泣いている方もいらしたとか。

そんな素晴らしい演奏会に演者として参加できたのは非常に光栄です。

もっといろいろな方の感想などは僕のFacebookからいろいろ探索したほうが、いろんなものが出てくると思います。


レセプション後の全体写真



もう二日経ち、今日は仕事もいったり日常が戻りつつありますが、熱が冷めないうちに、感じたことを書いておこうと思います。


苦手意識

まずは割と軽めの話題から。
僕は大学の時にデュカスの『魔法使いの弟子』をやって以来、8分の6拍子とかで、三つ区切りの音型が続いてところどころボーイングがアップアップが入るパターンが苦手でした。
そのアップアップ自体は割と良くある音型・ボーイングだと思いますが、早いテンポで一連のパッセージのなかで出てくるのがすごい苦手。

ボーイングそのものもそうですが、パッセージ全体としてみたときに、アップアップがどこにくるのかという、法則性のようなものが未だにわかりません。
ボーイングの都合上(どこかをダウンで弾きたいのでとか)少なくともどこかでアップアップを入れる必要があるだろうというのはなんとなくわかるのですが、じゃどこに入れるの?といったことが感覚的にわからない。

だから、いつも最終的に決まったボーイングを腕に刷り込んで対処しているという次第。
本当はあまり理解しないまま、行き当たりばったりで覚えるのはあまりよろしくはないのだとは思いますが。

幻想交響曲も5楽章がまさにそういうパッセージだらけ。

今回この幻想をやったからといってすぐに解決するわけではありませんが、しっかりさらって、本番では意識せず体が反応して演奏そのものに集中できたので、少し自信がつきました。

いつか絶対『魔法使いの弟子』はリベンジしたい。

ゲネプロ

意識した言葉

今回は節目の演奏会ということもあり、また数年ぶり楽器を再開して一回目の演奏会、むしろこの演奏会のために楽器を再開したという逆転の動機も半分ぐらいあり、思い入れがありました。
久しぶりに楽器を始めるにあたり、テクニカルな部分を思い出すのももちろんですが、心構え的なことも、思い出しながら日々練習してきました。

特に日々頭の中を駆け巡っていたのは、『心は熱く、頭は冷静に』『ゆっくりで弾けないものは速く弾けない、ゆっくり弾ければ速く弾ける。。。かもしれない』『速く正確に弾く訓練(音程もリズムも)』『暗譜してないのは弾けたうちに入らない』『本番で楽しむために苦しむ』

もうなんだかんだ楽器を初めて10年近くなり、本番も何度も経験し、音楽的なこと以外でも成長はしているので、頭は冷静にという部分は、自分なりにコントロールできていたのかなという気がします。

それがベースにあり、難しいパッセージも闇雲に練習するのではなく、テンポが速くなった場合でも対応できる現実的なフィンガリングを考えたりとか、なぜこのパッセージは難しいのかを分析してそれをどう対処すればいいか考えたり、スコアを読んでアンサンブルを理解したり、時にはひたすらメトロノームで少しずつテンポをあげていくといったような地味な練習もこなしたりしました。

本番で楽しむためには地味なことも必要。楽なことだけやっていても上達はしない。

すべてがすべて完全にできたわけでは、ないけれど前進はしているな、したなという実感があります。
魔笛のゲネプロ。自分はおり番で待機中。


自分のアイデンティティ

もともとはそんなに深く考えて、この演奏会へ参加表明したわけではありませんでした。
2年ブランクが開いていたので、これ以上ブランクが開くとさすがにやばいかな、そろそろ再開しようかなと思っていたところに、たまたま今回の演奏会の参加募集を見つけたので、景気付けにと思って参加表明しました。

本番に向けて半年ほど練習を重ねていく中、その期間音楽以外のことでもいろいろありました。

8月には29歳の誕生日を迎え、30歳まであと一年ということになってしまい、普段とは少し気持ちが違う誕生日を迎えました。
もうすぐ、20代の10年が終わってしまう、このままでいいのだろうか。そもそもこの10年何をしてきたのだろうか、そもそも「私」は何者なのか。
30歳まで一年を切った焦りも少しあり転職活動なども始めたことなどもきっかけで、考えるようになりました。
そんなことを考える過程で、必然的に音楽(ビオラ)は私にとってどういう位置付けなのかといったことにも考えが及びました。

もっと本番が近づいてくると、演奏会の告知などもし始めます。というより僕が楽器を始めたことも含め報告をすることもありましたし、ここ数年で出会った人については楽器をやっていること自体知らない人もいるので、そういうこともお知らせしました。

特に、僕がビオラを弾くことを知らない人に告知する際は、「なんの楽器をやっているのか」と聞かれます。そのときにビオラをやってますとお伝えするわけです。
そのとき、「ビオラ」以外の楽器を伝えることのイメージが湧かないのです。(バイオリンやチェロを弾けるわけではないので当たり前ですがそういう浅い話ではないような気がします)

ふとそう感じたときに、10年間ビオラとしての役割を果たしたりや立ち回りをしてきたので、そういう精神的な部分まで、ビオラという存在が根付いているのかなと思いました。

そして、改めてビオラをこれからも続けていきたい、またコミュニケーションが苦手な自分としては、第二、第三のコミュニケーションツールなんだからこれを手放さないようにしようと思いました。


自分の力

今までは演奏者側の表側の話。

今回、裏方の方も大変でした。

常設のオケではないので、このために集まった人たちの中で、そのなかで随時役割を分担し、担当外の人でもフォローしあい、係についていない人でも、意見を表明するという形で協力していました。

そのメンバーでこんなにも大きなイベントを行いました。

中心で活動していた人たちは本当大変だろうと思いました。ありがとうございます。

そして自分は何をできただろうかと思う。

仕事なんて探せばいくらでもあったと思う、探そうとしただろうか。

失敗を恐れて動き出そうとしなかったか?そもそも自分は、何で貢献できただろうか。自分の能力はあるのだろうか。

裏方の仕事など、目立ちはしないけど重要な仕事に関する部分では、自分はあまり成長していなかったのかなと、情けなく思ってくる。

裏方作業の方でも、もっと貢献して、運営を回していけるようになる、そういうのが生きるためのスキルなんだろうか。

そういう意味で、周りの人に助けられてばかり。周りの人に喜んでもらえるように、「与えられる人間」になりたいなと思いました。


レセプションは都庁の展望台貸切


こんなに大人数が一同に会する演奏会。
50年の歴史のうち、一桁の代の方々のご挨拶


2016年10月26日水曜日

小松菜とひき肉のオイマヨ炒め

今日はたまには料理してみました。

小松菜とひき肉のオイマヨ炒め。



本当、ほぼ炒めるだけって感じで簡単。
しかもこれはやみつきになるわ。
ごはんが進む進む。


レシピはクックパッドを参考にしました。
【やみつき】小松菜とひき肉のオイマヨ炒め by はまずみゆきこ [クックパッド] 簡単おいしいみんなのレシピが251万品


2016年10月6日木曜日

癌に気づかされるクオリア

「痛いの?それとも気持ち悪い感じなの?」

「うぅ、、、りょ、両方、、、」



母の癌が悪化した。今までは家の中ぐらいであればなんとか一人であるけて、一人で用もたせるぐらいは元気があったのだが、それも難しくなり入院となった。

貧血ですぐ倒れてしまう状態にもなっており、入院してからもさらに悪い方向へ進行したようにも思える。

こんなことは考えたくはないが、状態を実際近くでみていても、医者などからの見解などからしても、命の終わりが迫っているのを感じる。

家族、といっても、普段家にいるのは父だけだが、父含め親戚なども、「やばい」というような言葉などで表現はしたり、現実問題として母が安らかに死を迎えられるように環境を整えてあげることは必要なので、それに向けての準備なども進めてはいたのだが、「死」という言葉だけは意図的に避けているように感じる。

自分の身近な人がこういう状態になったのは始めてだから、「死」を薄々感じていても、それを言葉に出さないのが、そういう状況に置かれた場合の普通なのかはわからない。

遠方から祖父や祖母も見舞いに来たりもした。

彼らが帰ったあと、病室に数名が残ったが、そのときに「痛いのか、気持ち悪いのか」聞いてみたら、「両方」と返事が返ってきた。

そばでみていても、辛そうなのは痛いほど伝わってくる。

しかし、それが「どんな感じ」なのかというのは、想像ができなかった。




そんな光景を目の前にしているのにも関わらず、あるいはそんな光景を目の当たりにしたからなのか、どちらが適切な表現なのかわからないが、このとき巷で一時期話題になった「クオリア」の意味が少しわかったような気がした。




クオリアの説明自体は検索すれば、いろいろな説明が出てくるので詳細は省略するが、「あの青い感じ」、「頭がズキズキするあの感じ」などの「感じ」のことのようだ。

「感じ」という説明、定義が曖昧というか抽象的な感じがしてわかったようなわからないような感じを抱いていた。

非常に大雑把な説明であれば、色にしろ、痛みにしろ、外から入った刺激が神経を通り脳まで伝わり、脳内の電気信号を色や痛みととして感じるわけだ。

感覚を生み出す刺激の説明としては、電気信号の説明で済んでしまう。

しかし、「感じ」とはどれのことを指しているのか。

確かに、普段生きていて、いろいろな刺激に対して、いろいろ思うこと、考えること、感じることはある。

しかし、自分自身を一歩ひいて外からみることを考えたとき、「感じ」とは一体どれのことを指しているのか。

痛みと気持ち悪さ両方あるという返事を聞いて、その辛さを実際に自分で経験することができないもどかしさとともに、「あぁ、なるほど、これが『感じ』ということか」とわかったような気がする。

少し話の流れからは逸れるかもしれないが、違う種類のクオリア同士で比較してみるのも、理解が深まるのかなと思ったりもした。

例えば、「青い感じ」と「ズキズキする痛み」は、明らかに感じは違うと思う。

刺激が伝達される仕組みが違うんだから当たり前と言ってしまえばそれまでだが。



深く心に残る出来事はいろいろなことを考えさせる。

そして、考えること自体に必然性はないのに、なぜ考えるのか。

そのこと自体についても、また考えてしまう自分。



参考にしたページや文献・書籍
クオリア - Wikipedia

2016年9月22日木曜日

オーケストラの合宿

先日の連休のことになりますが、10月末に本番を控えるオケの合宿に行ってきました。とはいっても一泊ですが。

高校のオーケストラ部が50周年を迎えるので、その記念として今回限りのオーケストラです。

50周年という節目のタイミングで、自分も楽器の練習の再開を決断し、このオケに乗れたのは感慨深いです。

普段よりもがっつり練習できました。



夜はお決まりの(?)宴会。お酒の量がやばいです。写真には写っていませんが、右手前にはさらにビールサーバーがあります。
一応、宴会係の方がお酒の用意はしてくれてはいたのですが、それ以外に各々が差し入れをもってきた結果です。すごいな。下手なお店よりバリエーションがあるのでは。

夜はお決まりの(?)宴会。お酒の量がやばい。


これは通し二日目の通し練習の前の風景。


今年始めに楽器の練習を再開して、それでこんな大曲に乗ることになり大丈夫かなとは思いましたが、あんまり大丈夫ではなかったですが、それでも想像していたよりは弾けてます。

当たり前かもしれないけど、オケの練習などを始める前に、きちんと基礎練をしっかりやり直したからかな。

それと、多分、過去いろいろな先生方から言われてきたことを今になって噛み締めながら、練習しているからだとも思う。

特に「ゆっくり弾けないものは早く弾けない」という名言?と、「速く正確に弾けるようにする」という二つ。

急がば回れではないけれど、変に焦って無意味な練習をしなくなったことは大きいと思う。
練習した分だけ先へ進んでいる実感がある。

二年ブランクはあいたわけだけど、練習し感覚を取り戻しながら、今まで積み上げてきたものは、(良くも悪くも?)体に染み込んでいるなというのを感じながら充実感を感じております。



それに、50周年を機にオケに乗ることになり、本当にいろいろな人と関わることになったのですが、そうすると、自然にその他のお誘いなども受けるようになり、情報が寄ってくるようになりました。


「自分から情報を取りにいく」というのも重要だけど、いっそのこと「自分が属していたい業界に身ごと飛び込む」というか、コミュニティに入ってしまうのは割りと重要かなと実感もしたりしました。

直接そのコミュニティの人といろいろ会話をすれば、縁という形で情報がきて、それが次の縁に結びつくからね。


なんかいろいろ他にも書きたいことはあったはずだけど、10月30日の本番後にも同じようなことをまた書くと思うので、今回はとりあえずこれぐらいで。


で、しっかり最後には宣伝もしておきます。




2016年9月5日月曜日

数年ぶりのレッスン

先日のことにはなってしまいますが、ビオラのレッスンを再開しました。

今年に入り、ビオラの練習をまた始め、高校のOBオケとか大学オケのエキストラとかの予定を入れ、交響曲の譜面をさらっているのですが、やっぱり基礎力ももっと鍛えたいなーと欲張りだし、レッスンを再開しました。

札幌へ行く前までレッスンを受けていたときと同じ先生の元へ。

どこまで進んでいたのかわかってもらってるし、自分のレベルもだいたいわかってもらっているのでね。

しばらくは基礎力を徹底的に鍛えたいので、音階とボーイングをやることにしました。

ボーイングはセブシックをやります。

セブシック、いろんなパターンのボーイングが紹介されてて、7年やっているのにページ数でいったらあんまり進んでない。ありすぎだろ。。。

で今はスタッカート系の音型をやっています。次回の音型がこれ。163番。





八分でならまずまずいけるんだけど、三連符になった瞬間うまく音を区切れない。。。
この音型苦手。。。
まあオーケストラの譜面ではあまりでない音型だけど、網羅しておきたいのできちんとやろう。


音階の方は2オクターブの音階。二周目。

過去に全部の調性を一通りやってはいましたが、中には難しいやつもあり、心配なやつがあったので、簡単なやつは飛ばして、シャープとかフラットがたくさんあったりして難しいやつだけを復習。

今回はCis mollをやりました。

一回目にやったときは、ただの音階とはいえ、音を追うのに一杯一杯でしたが、二回目ともなると、ある程度体に染み込んでいるからか、余裕をもって冷静に弾けるようになっていました。

正しい音の場所に指が自然と反応するというか、多少ずれたとしても正しい音程に修正できたり、全体的な精度が格段に増しておりました。


基礎練をしっかりやると、実際オーケストラのあの難しい譜面でも少し弾けるようになっていて、着実に前進している感じがするので、地味だけど意外に好きです。

修行している感じというか、なんというか。