著作物とその使用について

著作物についてです。
私はこういう事に関する専門家ではありません。インターネットで調べた結果なので、過信しないでください。

著作物が自由に使える場合


著作物が自由に使える条件とは何でしょうか。それは、
著作物が自由に使える場合は? -公益社団法人著作権情報センター
にまとめられています。
要件を満たす場合、著作権にかかわらず自由に使うことができます。

例(音源について)

例えば学園祭で音楽にのせてダンスを披露したい。この場合の音源に関する著作権はどうかというと、

非営利目的の演奏など(著作権法第38条)
営利を目的とせず、観客から料金をとらない場合は、著作物の上演・演奏・上映・口述(朗読)などができる。ただし、出演者などは無報酬である必要がある。

とあります。
つまり、無料かつ無報酬非営利目的であれば著作物であっても使用可能なのです。

では学園祭でコンテストが行われ、優勝、準優勝したら賞金や商品などがある場合はどうなるのでしょう。
この場合は営利目的かそうでないか、また、それは利益なのかが問題となるようです。

参加団体が継続的に活動を行い、収入の一部になり、その団体メンバーに得た利益を分配していれば利益目的です。
しかし、「営利」、「非営利」を調べてみると、

「営利」とは、構成員(株主など)の経済的利益を追求し、団体の利益を構成員が分配することを意味します。
 営利組織である会社は、株主が出資して会社を運転し、あがった利益を株主に配当するしくみになっています。
 それに対して、「非営利」とは、団体が利益を上げてもその利益を構成員(会員など)に分配しないという「非分配」を意味します。つまり、「非営利」とは、利益を上げてはいけないという意味ではなく、「利益があがっても構成員(社員など)に分配しないで、団体の活動目的を達成するための費用に充てること」と説明することができます。-NPOWEBより引用

にあるように、団体の活動目的のために使用する状態であれば非営利活動であるとみなせるようです。
ただし、最終的な判断は裁判所にゆだねられています。「営利目的」と「非営利目的」の間に明確な定義が無いのです。

すなわち、参加するために掛かった活動費用等と照らし合わせ、受け取った額(物)が利益に当たらないと判断できる、もしくは活動維持のために必要であるくらいならば、コンテストで賞金受け取ったとしても非営利目的なのです(補足有り)。

画像の使用


Webで画像を使用するときの利用はどうなのでしょうか。

表記がいらなく、自由に使える場合


著作者の表記等がいらなく、営利目的であっても、許可を得ずに複製・改変・翻案・配布・上演・演奏することが可能であるものというのは、パブリックドメイン状態にあるもの、もしくはクリエイティブコモンズライセンスがCC0にあるものです。

パブリックドメインとは、保護期間が終了したり、権利が放棄されている状態のことを言います。1.著作権全般 -日本著作権教育研究会によると、

    保護期間の満了により公有化された著作物。
    継承者不在により公有化された著作物。
    権利放棄により公有化された著作物。

がそれに当たります。

クリエイティブコモンズライセンスCC0とは、著作権者が利益を放棄してパブリックドメインに置くことに同意している画像のことです。ただし、いくら著作権者が権利を放棄したくて完全にパブリックドメインに置きたいと考えても、著作権を完全に放棄することは上記条件が満たされない限り法的には困難であるため、パブリックドメインという言葉ではなく、そう呼んでいるのです。

パブリックドメインクリエイティブコモンズライセンスCC0は、ほぼ等しいものなのです。
パブリックドメインは一般的な言葉、クリエイティブコモンズライセンスCC0は民間で作られた言葉で、パブリックドメインのことを指す。という考えで良いでしょう。

例えば、この記事↓
無料で商用利用できる写真を13のサイトから一気に串刺し検索してゲット可能な「LibreStock」-GIGAZINEより
で紹介されているサイト「LibreStock」の画像は全てクリエイティブコモンズライセンスCC0に属しています。
なので、勝手にとってきて保存して、営利目的であろうが改変しようが再配布しようが構わないのです。ただし、パブリックドメインもそうですが、著作権は消えても著作者人格権という権利は残されるため、自分が作ったものだと言い張って損害を与えたり、作者をけなすような悪質な改変行為等は許されません。

公表された著作物の利用の場合


パブリックドメインまたはクリエイティブコモンズライセンスCC0以外の画像は引用という形で利用することができます。

公表された著作物に対しては、基本的には改変等をせず、引用にあたるのであれば利用可能です。
引用の詳細は、

引用と言えるためには、[1]引用する資料等は既に公表されているものであること、[2]「公正な慣行」に合致すること、[3]報道、批評、研究などのための「正当な範囲内」であること、[4]引用部分とそれ以外の部分の「主従関係」が明確であること、[5]カギ括弧などにより「引用部分」が明確になっていること、[6]引用を行う必然性があること、[7]出所の明示が必要なこと(複製以外はその慣行があるとき)(第48条)の要件を満たすことが必要です(第32条第1項)。-著作権なるほど質問箱より

であり、上の条件[1]~[7]が満たされていれば公表されている著作物も引用として利用可能なのです。

しかし、権利者の中には
『自分が元ネタであることは明記してほしいけど、改変とかは自由にしてもらいたい。』
『営利目的でなければ、この作品を、改変や再配布をしてもok。』
と考える場合もあるでしょう。
この細かい権利、利用条件を分かりやすく表示させようとしたシステムがクリエイティブ・コモンズ・ライセンスなのです。

クリエイティブ・コモンズ・ライセンスに関して


クリエイティブ・コモンズ・ライセンスに関する定義は、クリエイティブ・コモンズ・ライセンスとはに詳しく書かれています。
引用すると、

CCライセンスとはインターネット時代のための新しい著作権ルールで、作品を公開する作者が「この条件を守れば私の作品を自由に使って構いません。」という意思表示をするためのツールです。-creative commons JAPANより引用

というものです。
このクリエイティブコモンズライセンスに法的な根拠はありません。民間で作られた表記方法が世間一般に広く浸透したものです。現在では様々な機関、論文でも使用されることがあり、一般的な扱いを受けています。
wikipediaの画像にはクリエイティブコモンズライセンスが採用されています。

さて、クリエイティブ・コモンズ・ライセンスの表記はどのようにされるのでしょうか。
クリエイティブ・コモンズ・ライセンスとはによると、以下のような表示のいずれかがなされます。使用条件の緩い順に並べるとこうです。


表示 CC BY 4.0
by
(表示クリエイティブ・コモンズ・ライセンスとは -creative commons JAPAN より)
「表示」のみの場合、

◆元の作品の「Ⓒ 著作権者の名前 公表年」の3点セット(これを「著作権表示」又は「クレジット」と呼ぶことがあります)
→元の作品に記載されている場合には、必ず記載してください。

◆元の作品の作者名、スポンサー、タイトル
→元の作品に表示があれば記載してください。

◆元の作品の著作権表示かライセンス情報に関するページへの指定されたURL
→元の作品に表示があれば記載してください。
CCライセンスの作品を利用する際、何を記載すればよいのでしょうか。また、クリエイティブ・コモンズ・ライセンスのURLやアイコン、バナー等も表示しなければならないのでしょうか。FAQ よくある質問と回答

を記載すれば使うことができます。これを守っていれば、営利目的、改変、再配布したりすることができます。


表示-非営利 CC BY 2.1
by-nc
(表示—非営利クリエイティブ・コモンズ・ライセンスとは -creative commons JAPAN より)
「表示」+「非営利」であれば使用可能であることを示しています。
「表示」は上に同じ。
「非営利」であることは結局は裁判所の判断となります(「NC(非営利)」アイコンのついている作品を使用しても良いですか?-CCJ Q&A)。もしかしたら、些細な広告収入があるだけでも営利目的であると判断されるかもしれません。迷う場合は、非営利がついたものは使わないほうがいいでしょう。


表示-継承 CC BY-SA 3.0
by-sa
(表示—継承クリエイティブ・コモンズ・ライセンスとは -creative commons JAPAN より)
「表示」+「継承」するのであれば使用可能であることを示しています。
「表示」は上に同じ。
「継承」は、改変は許されるが、もし改変した場合、元の作品と同じCCライセンスで公開しなければなりません。ただし、その条件下で有れば営利目的での2次利用は許可されます。


表示-非営利-継承 CC BY-NC-SA 2.1
by-nc-sa
(表示—非営利—継承クリエイティブ・コモンズ・ライセンスとは -creative commons JAPAN より)
「表示」、「非営利」、「継承」は上に出てきているのでここでは割愛します。


表示-改変禁止CC BY-ND 2.1
by-nd
(表示—改変禁止クリエイティブ・コモンズ・ライセンスとは -creative commons JAPAN より)
「表示」は上に同じ。
「改変禁止」は文字通り改変禁止です。トリミングも、拡張子の変換も、サイズの変更も許されません。ただし、それを守れば営利目的に利用、再配布もできるのです。


表示-非営利-改変禁止CC BY-NC-ND 2.1
by-nc-nd
(表示—非営利—改変禁止クリエイティブ・コモンズ・ライセンスとは -creative commons JAPAN より)
「表示」、「非営利」、「改変禁止」は上に出てきているのでここでは割愛します。

自分の作品にクリエイティブ・コモンズ・ライセンスを付ける


自分の作品にクリエイティブ・コモンズ・ライセンスを付けたい場合は、どこかに申請する必要など無く、自分で言い張ればいいんです。なぜならばあなたが作品を作り出した時に著作権は発生しているのですから。その作品にCCライセンスを付けるか否かは貴方の自由です。
もしもCCライセンスを付けたい場合はこちらのページに行けばどのように付ければいいかわかります。

※後からクリエイティブ・コモンズ・ライセンスの変更は行ってはなりません。
なぜならば、例えばはじめCC0ライセンスで公開し、皆が使い始めたところライセンスを変えたりしたらまるで使い物にならなくなってしまうからです。
なので、重要な事はその権利者、例えばページを運営している人が信用、信頼できるかどうかを見極めることが重要です。

公式のQ&Aにもありました。

・ライセンスを変更したい場合はどうしたらよいでしょうか。

クリエイティブ・コモンズ・ライセンスは取消ができません。つまり、クリエイティブ・コモンズ・ライセンスのついた作品を入手した誰かに対して、そのライセンスで認められている利用を止めるということはできません。
ライセンスを変更したい場合はどうしたらよいでしょうか。日本法準拠版クリエイティブ・コモンズ・ライセンスのFAQより引用

実例


では実際にwikipediaから画像を取ってきて、表記をしてみましょう。

表示のみの場合CC BY 2.0

りんご -wikipedia です。
Red_Applere_compressed
©Abhijit Tembhekar(2009)/Adapted/CC BY 4.0

必ず表記しなければならないのは、元の作品の「Ⓒ 著作権者の名前 公表年」の3点セットです。上画像の詳細ページに進むと、Date,Authorの欄を見つけることができますので、クレジットの表記は「©Abhijit Tembhekar(2009)」でokです。また、必須ではありませんが、念のためにその画像に対するリンクを張っています。またその他タイトル等はページには見つけることができませんでした。なのでこれでCCライセンスの「表示」はokです。

改変したのでAdaptedを付けました。また、この段階でこの画像は2次創作物になり、その時点からCCライセンスは僕が決める事ができます。表示と同じ、もしくはそれよりも制限が強いものに指定することができます(FAQ よくある質問と回答)。従って、この上の改変した画像に対し、All rights reservedとすることも可能なのです。今回は元のものと同じCC BY 2.0 表示にしました。

表示・継承の場合CC BY-SA 3.0

球面調和関数 -wikipedia にある画像を利用します。
1200px-Harmoniki_compressed
©Sarxos(2007)/Adapted/CC BY-SA 3.0

必ず表記しなければならないのは、元の作品の「Ⓒ 著作権者の名前 公表年」の3点セットです。上画像の詳細ページに進むと、Date,Authorの欄を見つけることができますので、クレジットの表記は「©Sarxos(2007)」でokです。また、必須ではありませんが、念のためにそのオリジナル画像に対するリンクを張っています。またその他タイトル等はページには見つけることができませんでした。なのでこれでCCライセンスの「表示」はokです。

また、サイズの変更を行ったのでこれは改変に当たります。なので、それを示すAdaptedを記述しています。改変を行った時点で2次創作物であり、その時点からCCライセンスは僕が決める事ができますが(※)、今回は継承の表記があります。なのでCCライセンスは元作品と同じライセンスを提示しなければなりません。CCライセンスの提示は上のように何のライセンスであるかということと、リンク先を張ればokです。

⒝ 元の作品に改変を加えて二次的著作物を創作した場合によると、2次創作物のCCライセンスは、元の作品よりも制限を課す場合でしか認められていません。今回は継承なので気にする余地はありませんが、勝手に改変したものを「表示」だけにして公表してはなりません。

パブリックドメイン、もしくはCC0の場合

自然 wikipediaにあるパブリックドメインの画像です。
Bachalpseeflowers
クレジットの表記はまるで必要ありません。営利目的であっても、許可を得ずに複製・改変・翻案・配布することが可能です。

これはCC0の例です。
https://commons.wikimedia.org/wiki/File:%22A_mixed_flock_of_ducks_and_geese_fly_from_a_wetland_area%22.jpg
-A_mixed_flock_of_ducks_and_geese_fly_from_a_wetland_area-
CC0もクレジットの表記はまるで必要ありません。営利目的であっても、許可を得ずに複製・改変・翻案・配布することが可能です。

wikipediaにはCC0の画像一覧が存在します。

その他CCライセンスの場合

非営利の場合はここでは載せません。というのも、広告収入がどう判断されるかわからないため、実例を挙げるわけにはいかないからです。また、非営利は難しい言葉ではないため、載せる必要がないとも考えています。
また、改変禁止も載せません。改変せずに載せればいいだけなので…。

補足

分かりやすく解説された著作権に関する事柄は著作者にはどんな権利がある? -公益社団法人著作権情報センターをご覧ください。

そのクレジット表記で大丈夫?クリエイティブ・コモンズ(CC)画像の使い方。

gnuplotとアニメーション

gnuplot上の様々なアニメーションを作ります。
dofor構文を使うのでgnuplot ver4.6以降じゃないとこの方法は出来ません。

  1. 解析解の表示
    1. 1次元のアニメーション
    2. 2次元のアニメーション
    3. 点をグラフ上に沿って動かす
    4. グラフをだんだんと書く
  2. データの表示
    1. 複数のデータを次々とプロット
    2. 複数のデータの同時プロット
    3. グラフをだんだんと書く
  3. 応用
    1. グラフを回転させる
    2. 大きさの違う球体
    3. PSO2の転送装置
    4. 「見せてあげよう!ラピュタの雷を!!」
    5. 魔女の宅急便
    6. 第5使徒ラミエル1
    7. 第5使徒ラミエル2
    8. 魔貫光殺砲
    9. マリオ
    10. SCP-1968 「世界を包む逆因果の円環」っぽい数式
    11. FGO召喚
    12. パンジャンドラム
  4. 動画の作成について
    1. gifアニメの作成方法
    2. ffmpegを用いてavi動画を作る

[adsense1]

1次元の場合の具体例


試しに量子力学で現れる、ガウシアン波束の時間発展を考えましょう。
こんな形の方程式を考えます。
\(
\displaystyle y(x,t)=\left(\frac{1}{1+t^2}\right)^{1/2}\exp\left[-\frac{(x-t)^2}{1+t^2}\right]
\)

これをgnuplot上で時間発展させるスクリプトはこちら。

do for [i = 0:400 ] {
   t=i*0.02
   plot sqrt(1/(1+t*t))*exp(-(x-t)**2/(1+t*t))
   }

適宜xrangeとかyrangeとか変更してください。実行するとこんな感じ。
gauss_low

上のgifアニメを得るには、

set term gif animate optimize delay 2 size 480,360
set output 'movie.gif'

do for [i = 0:400 ] {
   t=i*0.02
   plot sqrt(1/(1+t*t))*exp(-(x-t)**2/(1+t*t)) lw 2
   }

set out
set terminal wxt enhanced

というスクリプトを使ってください。
同ディレクトリにmovie.gifが作成されます。
ターミナルとかは各々の環境に合わせてください。

2次元の場合の具体例


2次元だろうとこのように簡単にできます。
gauss2d_analytic
上の動画のスクリプトはこれです。gifアニメが欲しい場合はコメントアウトを外してください。

#set term gif animate optimize delay 10 size 480,480
#set output 'movie.gif'

set pm3d at b
set xr[-5:10]
set yr[-5:10]
set zr[0:1]
set cbr[0:1]
set isosamples 50

do for [i = 0:50 ] {
   t=i*0.05
   splot sqrt(1/(1+t*t))*exp(-(x-t)**2/(1+t*t))*sqrt(1/(1+t*t))*exp(-(y-2*t)**2/(1+t*t))
   }

#set out
#set terminal wxt enhanced

点をグラフ上に沿って動かす


parameter
のような動画を作りたいとします。この時は、媒介変数を用いて以下のスクリプトで再現されます。

#set term gif animate optimize delay 5 size 960,720
#set output 'movie.gif'

set param
set size ratio -1
set samples 10000

e = 1
omega=0.1

set tr[1:600]
do for [i = 1:200 ] {  
   plot e*cos(omega*t)/sqrt(t), sin(omega*t)/sqrt(t)
   set label 1 point pt 7 ps 3  at e*cos(omega*i*3)/sqrt(i*3),sin(omega*i*3)/sqrt(i*3)
   }

#set out
#set terminal wxt enhanced

点の表示は、

set label 1 point pt 7 ps 3  at e*cos(omega*i*3)/sqrt(i*3),sin(omega*i*3)/sqrt(i*3)

の文である1点だけを表示することができます。

グラフをだんだんと書いていく


グラフをちょっとずつ書いていきます。
解析的な解の場合
orbit

set param
set samples 10000
set tr[0.01:1]
imax=100
tmax=20e0*pi
ht=tmax/real(imax)

#set term gif animate optimize delay 6 size 600,600
#set output 'orbit.gif'

do for [i=1:imax] {
   th(t,i)=t*real(i)*ht
   plot 10e0*sin(th(t,i))/th(t,i),10e0*cos(th(t,i))/th(t,i) , \
   10e0*sin(th(t,i)-pi)/th(t,i),10e0*cos(th(t,i)-pi)/th(t,i) lt 1 lc 2
}

#set out
#set terminal wxt enhanced

データの場合(200行のデータ”outgraph.d”を一行目から順番に出力したい場合)

do for [i=1:200]{
   plot "outgraph.d" every ::0:0:i:0 using 1:2 w l
}

グラフを回転させる


ある3Dプロットがあり、それを回転させてみるような動画がほしいとします。例えばこんな感じのアニメーションが作りたいとします。
Riemann
これはリーマン面と呼ばれる関数です。(カラーバーの消去は ‘unset colorbox’ とすれば消せます。)
詳しい記述は角度に依存して色を付ける(gnuplot)に書いてあるので気になる人は参照してください。

set pm3d depthorder
set parametric
set ur[0.01:5]
set vr[0:4*pi]
i={0,1}
splot u*cos(v),u*sin(v),real(sqrt(u)*exp(i*0.5*v))

#set term gif animate optimize size 480,360
#set output 'movie.gif'

do for [j = 0:90 ] {
   set view 60,4*j,1,1
   replot
}

#set out
#set terminal wxt enhanced

参考先はamesyabodyの記述したモンテカルロ法のページからです。

複数のデータを次々とプロット


複数のデータを時間経過を表示させる場合はデータfort.100, fort.101, fort.102,…を用意し、dofor構文の中を変えて、

#set term gif animate optimize size 480,360
#set output 'movie.gif'
do for [j = 100:200 ] {
   splot sprintf("./fort.%d", j) u 1:2:3 w l t sprintf("./fort.%d", j)
}

#set out
#set terminal wxt enhanced

してloadすればいいです。

複数グラフの同時プロット


gnulotofdata_c
data1.d, data2.d, data3.d,data4.d,data5.d
を同時に出力したい時は、

plot for [i=1:5] sprintf("data%d.d",i) w l ti sprintf("data%d.d",i)

とすればいいです。

大きさの違う球体


sphere3

PSO2の転送装置


PSO2の転送装置gnuplot

「見せてあげよう!ラピュタの雷を!!」


bulse2

魔女の宅急便


魔女の数式はこちらです。
witch like curve -wolfram alpha

kiki

第5使徒ラミエル1


ramiel

第5使徒ラミエル2


ramiel_trans

魔貫光殺砲


mk

マリオ


マリオのグラフは↓から。
Mario like curve -wolfram alpha

mario

[adsense2]

SCP-1968っぽい数式


SCP-1968 世界を包む逆因果の円環
に現れている数式です。
数式はTorus helix radius change equationより。

FGO召喚


特定の面と3D視点で見た場合

このリンク先(https://slpr.sakura.ne.jp/qp/supplement_data/FGO_gnuplot.zip)のデータも必要です。
(なんか良く分かりませんがメジェド様がバグるんですよね…)
▼ここクリックでこの場に展開

パンジャンドラム


gifアニメについて


gifアニメの描画時間を早くしたり遅くしたりするには、

set term gif animate delay 10 optimize size 480,360

などと「delay 10」という文を付け加えましょう。delayは遅延、後ろの数字は遅延時間で、単位は0.01sになっています。
例として、
delay 5の場合は1秒間に20枚、
delay 10の場合は1秒間に10枚、
delay 50の場合は1秒間に2枚
表示させるスピードだということです。
delayはどんなに早くしたくても4程度までがいいです。delayを1とかにするとそんなに早いgifアニメの描写が出来ず、ブラウザ上でうまく表示できず、結果として遅く表示されます。

Gif -gnuplot 4.2

ffmpegを用いてavi動画を作る


ffmpegのインストール方法はCompile FFmpeg on Ubuntu, Debian, or Mintを参考にしてください。
このページにもインストール方法を書きましたが、更新が早いので公式のページを見るほうが確実です。
ここではgnuplotの視点を変更した画像をたくさん用意して動画を作成する、という方法をとります。
ディレクトリ”dat/”と視点変更と連続した画像を出力するスクリプトは”image.plt”というファイルを用意して

do for [j = 0:180 ] {
   set view 60,2*j,0.5,3
   replot
   
   call "out.plt" "temp"
   
   if(0<=j && j<10){
      cv=sprintf("mv temp.jpg ./dat/image0000%d.jpg",j)
      }
   if(10<=j && j<100){
      cv=sprintf("mv temp.jpg ./dat/image000%d.jpg",j)
      }
   if(100<=j && j<1000){
      cv=sprintf("mv temp.jpg ./dat/image00%d.jpg",j)
      }
   if(1000<=j && j<10000){
      cv=sprintf("mv temp.jpg ./dat/image0%d.jpg",j)
      }
   if(10000<=j && j<100000){
      cv=sprintf("mv temp.jpg ./dat/image%d.jpg",j)
      }
   system cv   
}

#Using Imagemagick, convert
#cv=sprintf("convert -delay 20 -resize 100% -loop 0 ./dat/image*.jpg ./anime.gif")

#Using ffmpeg
cv=sprintf("ffmpeg -r 12 -i './dat/image%05d.jpg' -vcodec mjpeg -qscale 0 -s 1300x888 movieout.avi")
system cv

とすればディレクトリ./dat/の中に180枚の.jpg画像が作られ、その場所にファイル名”movieout.avi”という動画が作られます。

非線形Schrödinger方程式のソリトン解

非線形シュレディンガー方程式
\(
\displaystyle i\frac{\partial \Psi}{\partial t}=-\frac{1}{2}\frac{\partial^2 \Psi}{\partial x^2}-g|\Psi|^2\Psi
\)

にはある解析解が存在します。それがソリトン(soliton)解と呼ばれるもので,上式のソリトン解は
\(
\displaystyle \Psi(x,t)=\sqrt{\Omega}\ {\rm sech}\left\{\sqrt{\Omega}\left(x\sqrt{g}-\frac{gV}{2}t\right)\right\}\cdot \exp\left\{i\frac{V\sqrt{g}}{2}x-i\frac{g}{2}\left(\frac{V^2}{4}-\Omega\right)t\right\}
\)

です。(\(g>0\),\(\Omega\):ソリトンの振幅、\(V\):ソリトンの速度に関するパラメータ、ソリトン自体の速度は\(V\sqrt{g}/2\))

[adsense1]

ソリトンの歴史的背景


「非線形」とは重ね合わせの原理が成り立たない系です。

1844年、スコットランドのJ.Scott-Russellによって孤立した波(solitary wave)を観測した事が報告されました J.Scott-Russellによる報告”Report on Waves”(リンク先のSR44.pdf, 16.3MB))。
当時の認識では、波は波動方程式で記述され、その波の速度\(v\)は\(v=f\lambda\)の元、一定である。だからパルス状の波は異なる波長の波の重ね合わせで書けているはずで、時間と共に分散していくはず。なのになぜ時間が経過しても孤立した波が存在できるのか?という事で大きな論争となりました。

60年後の1895年、オランダのKortewegとde Vriesによって”浅い水の波”を記述する非線形偏微分方程式(KdV方程式)が提出され、この方程式の特解として孤立波が与えられました。
孤立波は、

  1. 空間的に局在した波が、その性質(速さや形)を変えずに伝搬する
  2. 孤立波は互いの衝突に対して安定であり、各々の個別性を保持する

という性質を持つ非線形波動と定義されます[1]。
2番目の、粒子のような性質を持つことから、solitary に接頭語-on をつけ、soliton(ソリトン)と名づけられました。

その後、1981年に佐藤幹夫がソリトンの統一理論(佐藤理論やKP理論)を発表しました。
これによりソリトン方程式(ソリトンを記述し,かつ厳密に解ける方程式)に決着が付きました。
ソリトン方程式は非線形なのに厳密に解ける、可積分系である。

ソリトン方程式を解く方法は([4]を引用しますが)

上で指摘したように,logistic方程式が解けるからくりとソリトン方程式が解けるからくりはよく似ています.違いは,logistic方程式が変数変換一発で線形常微分方程式になってしまったのに対し,ソリトン方程式の場合は変数変換で双線形形式になり,双線形形式の解として行列式が現れ,行列式の中身に簡単な線形方程式が現れるというところです.しかし,離散化で保存するべき構造は明らかです.まず,解の中身の線形方程式を離散化し,行列式の構造をそのまま使って双線形形式を作る.最後に変数変換して非線形のレベルに戻ればよい.

となるそうです。

また、ソリトン方程式の特徴である、無限個の対称性(無限個の保存量)は、Gardner変換という変換をすることで証明できるそうです[5]。
これ以上はこの分野の専門家ではないので話せません。

ちなみに津波もソリトンの一つとみなせます。

ソリトン解が生まれるイメージ


なぜソリトン解が生まれるのでしょうか。
今、孤立した波(空間的に凸)を考えます。この時、

エネルギー的に安定になろうとして密度を均一にするために広がろうとする効果

粒子間を結び付ける引力相互作用(例えば水面だったら水と水との分子間力等)のため集まろうとする効果

のつり合いによって、丁度均衡が保たれるとき、このソリトン解が生まれます。

・・・実は、ソリトン解には2種類あります。
それは明るい(Bright)ソリトン解と暗い(Dark)ソリトン解です。
今まで話していたのは全て明るいソリトン解です。
暗いソリトン解とはどういったものでしょう。
暗いソリトン解とは、ある部分が空間的に凹んでいる、孤立した解です。

エネルギー的に安定になろうとして密度を均一にするためにその凹みを埋めようとする効果

粒子間の斥力相互作用のために粒子間を避けようとする効果

のつり合いによって、丁度均衡が保たれるとき、この暗いソリトン解が生まれます。
暗いソリトン解が生まれるのは斥力相互作用の時で、斥力相互作用を持つ系というのは、調べた限りでは量子力学のボーズ・アインシュタイン凝縮体で、暗いソリトンは渦ソリトンという形で現れるそうです。これ以上の具体例は分かりませんでした。もしも具体例を知っているという方は教えていただければ幸いです。
暗いソリトンの解析解は参考文献[1]の本に紹介されているので、それをご参考にしてください。

非線形シュレディンガー方程式におけるソリトン解


では本題の、非線形シュレディンガー方程式における(明るい)ソリトン解を考えましょう。
下の形の非線形シュレディンガー方程式を考えます。
\(
\displaystyle i\frac{\partial \Psi}{\partial t}=-\frac{1}{2}\frac{\partial^2 \Psi}{\partial x^2}-g|\Psi|^2\Psi
\)

ここで、\(\Psi=\Psi(x,t)\)で、\(g\)はの値で相互作用の強さ(この場合、引力相互作用)を表します。

この非線形シュレディンガー方程式のソリトン解\(\Psi(x,t)\)は、
\(
\displaystyle \Psi(x,t)=\sqrt{\Omega}\ {\rm sech}\left\{\sqrt{\Omega}\left(x\sqrt{g}-\frac{gV}{2}t\right)\right\}\cdot \exp\left\{i\frac{V\sqrt{g}}{2}x-i\frac{g}{2}\left(\frac{V^2}{4}-\Omega\right)t\right\}
\)

であり、\(\Omega\)はソリトンの振幅の大きさ、\(V\)はソリトンの速度を決めるパラメータを表します。ソリトン自体の速度は\(V\sqrt{g}/2\)となります([2]を参考)。
また、\({\rm sech}(x)\)は双曲線関数の一種(双曲線正割と呼ばれる)であり、
\(
\displaystyle {\rm sech}(x)=\frac{1}{\rm cosh(x)}=\frac{2}{e^{x}+e^{-x}}
\)
を表します。

解析解のプロット

解析解をプロットします。gnuplotコードは下のほうに載せておきます。
\(g=2, V=1, \Omega=1\)とすると、以下の振る舞いが観測されます。
ここで紫はソリトン解の実部、緑は虚部、青は絶対値2乗を表します。
動画は1枚当たり原子単位系で0.1秒、合計で10秒間のシミュレーションです。
また、このソリトンの速度は\(V\sqrt{g}/2\sim 0.7071\)です。
soliton1

[adsense2]

gnuplotコード


非線形シュレディンガー方程式のソリトン解(解析解)を出力します。
gnuplot上で下のスクリプトを実行してください。
(ただし、gnuplot ver4.6以降に限ります。)

omega=1e0
V=1e0
g=2e0
x0=-5e0 # initial position

set xr[-10:10]
set yr[-1.5:1.5]
set samples 1000
set xl "x[a.u.]"

sech(x)=2e0/(exp(x)+exp(-x))
amp(x,t)=sqrt(omega)*sech(sqrt(omega)*((x-x0)*sqrt(g)-g*V*t*0.5e0))
phase(x,t)=V*sqrt(g)*x*0.5e0-g*t*0.5e0*(V*V*0.25e0-omega)
soliton(x,t)=amp(x,t)*exp({0e0,1e0}*phase(x,t))


#set term gif animate delay 10 optimize size 960,720
#set output 'movie.gif'
do for[i=0:100:2]{
   t=i*0.1e0
   plot abs(soliton(x,t))**2 lw 3 lc 1 lt 1 ti sprintf("|\psi|^2, t=%2.1f",t),\
        real(soliton(x,t)) lw 3 lc 2 lt 2 ti "Real",\
        imag(soliton(x,t)) lw 3 lc 3 lt 3 ti "imag"
}
#set out
#set terminal wxt enhanced

もっとソリトンについて知りたい方はまず参考文献[3]を読むことをお勧めします。
その後、[4]を読み、[5]を読み、[1]の本を読むのが良いと思われます。
[3],[4]は簡単な表現を用いてソリトンとその後の発展について記述されています。

参考文献


[1]和達三樹著 『非線形波動 (現代物理学叢書) 』岩波書店 (2000年) p.7
[2]和達三樹著 『非線形波動 (現代物理学叢書) 』岩波書店 (2000年) p.29

[3]ソリトンの数学 – Researchmap
[4]ソリトン ~ 不思議な波が運んできた,古くて新しい数学の物語 ~
[5]〔連載〕非線形波動―ソリトンを中心として―第5章 逆散乱法


↑画像のフォントはキユマヤ園様による数式フォント -びゅんびゅん→SSSです!