H:   1次元グラフセクション -------------------------- 基本スタイル ~~~~~~~~~~~~ 基本スタイル1 ^^^^^^^^^^^^^^^ H: で始まる行は、その下にあるデータのコラムの定義が基本です。 入門例題1 のデータの一部を再録すると .. rubric:: List 2.3 ● 基本スタイル1 :name: list-2-3 :class: angel-list-caption .. code-block:: text 1: H: X Y 2: 0.5 10 3: 3 40 この場合、H: 行の示すところは、数値コラムが 2 つあり、最初が X コラム、次が Y コラム ということです。 データの行数は自動判定します。即ち、空白行 が来るか、他のセクションの 文字列が来るまでとします。 データの行数はメモリーの許す限り可能です。メモリーが足りない場合は、 angel00.inc の中の mdas を大きくして下さい。 基本スタイル2 ^^^^^^^^^^^^^^^ X コラムの数はひとつです。 Y コラムの数はひとつのセクションに最大 30 個です。 同じ X の値に対していくつかのグラフを同時に描くときに便利です。次のように書きます。 .. rubric:: List 2.4 ● 基本スタイル2 :name: list-2-4 :class: angel-list-caption .. code-block:: text 1: H: X Y1 Y2 Y3 Y4 2: 0.5 10 1 .4 10.5 3: 3 50 2 .5 13.3 4: 5 30 3 .6 12.3 この場合、同じ X の値に対して 4 本の線が引かれます。 ``Y1 Y2 Y3 Y4`` の Y に続く数字の番号は、 後述するエラーコラムや、関数の利用との関係で 必要になることがありますが、通常は省いてもかまいません。 つまり、\ ``Y Y Y Y`` とスペースを間に入れるだけで問題ありません。 また順番は自由です。 X コラムの位置は、先頭のコラムという規定はありません。従って、X, Y を反転する場合など、 単に H: 行の ``X Y`` を ``Y X`` と書き直すだけですみます。 基本スタイル3 ^^^^^^^^^^^^^^^ 次に、上のデータはそのままに、2 番目と 3 番目の Y コラムを描画したくないときは、 2 番目 3 番目の ``Y`` を ``N`` もしくは ``NY`` と書き換えるだけですみます。 すなわち、\ ``N`` か ``NY`` に対応するコラムのデータは 読み飛ばします。 しかしながら、部分的に X コラムに対応する Y コラムの位置にデータを書かない ということはエラーになります。例えば .. rubric:: List 2.5 ● 基本スタイル3 :name: list-2-5 :class: angel-list-caption .. code-block:: text 1: H: X Y1 NY2 N3 Y4 2: 0.5 10 1 .4 10.5 3: 3 50 2 13.3 4: 5 30 3 .6 12.3 は、エラーになります。すべての X の値に対応した Y コラムの値がないときは、 別の H: セクションに書かなければなりません。 以上が H: 行でのデータの数値コラムを指定する基本スタイルです。 ここまでで、H: 行でコラムを指定する基本パラメーターをまとめると .. container:: center .. table:: コラムパラメーター :name: p-colm ========================== ================= ============================== パラメーター 説明 備考 ========================== ================= ============================== ``X`` Xコラム 必ず一つだけ必要 ``Y`` Yコラム 最大 30 個、数字番号付加可 ``DX`` X座標エラーコラム 数字番号付加可 ``D`` Y座標エラーコラム 数字番号付加可 ``N, NX, NY, ND, NDX`` 読み飛ばしコラム ``NX, NDX`` 以外数字番号付加可 ========================== ================= ============================== ファクター ~~~~~~~~~~ X, Y, D, DX コラムの数値データについて、べき乗、定数倍、定数の加減、ができます。 例えば、 .. rubric:: List 2.6 ● ファクター例題 :name: list-2-6 :class: angel-list-caption .. code-block:: text 1: H: X Y*1.0E+03-500.0 2: 0.5 10 3: 3 40 | は、Y コラムの値に 1000 を掛けて 500 を引いた値をプロットすることになります。 X コラムについても同様です。 書式は .. container:: minipage angel-doublebox [ ``*`` :math:`r_1` ] [ { :math:`|` ``/`` } :math:`r_2` ] [ { ``+`` :math:`|` ``-`` } :math:`r_3` ] | です。この表記で、[   ] は省略可能の意味、{ :math:`A` :math:`|` :math:`B` } は、 :math:`A` か :math:`B` のいずれか一方を選択するという意味です。 ここで、\ :math:`r_1, r_2, r_3` は、正の実数。 もし負の数を用いる時は、 ``(``\ :math:`-r_1`\ ``)``, ``(``\ :math:`-r_2`\ ``)``, ``(``\ :math:`-r_3`\ ``)`` のように ``( )`` を 用いてください。 また、ユーザー定義定数、数式は :math:`r_1, r_2, r_3` として 使えません。 従って、 この書式では、複雑な計算はできません。この書式で計算できない コラム数値の変換は、後述する関数の使い方をご覧下さい。 この書式で注意すべき点は、 .. container:: minipage - べき乗、乗除、加減が入る場合は、べき乗、乗除、加減の順。 - 最初と途中に空白を入れてはいけない。 - 負の数を用いる時は、\ ``(   )`` を用いる。 | ということです。 凡例 ~~~~ 入門例題2で見たように、ひとつのグラフに複数のラインを描くときに 便利な凡例を簡単に入れることができます。 書式は、例えば .. rubric:: List 2.7 ● 凡例例題 :name: list-2-7 :class: angel-list-caption .. code-block:: text 1: H: X Y(Histogram),DH0 2: 0.0 0 3: 0.5 10 4: 1.5 20 のように、 Y もしくは Y3 のような番号の後、コンマ以前に ``( )`` の中に 文字列を挿入すると、その文字列がグラフの線種、もしくはシンボルとともに 自動的に座標軸枠の右側中央に順に表示されます。 凡例の表示順番は、入力ファイルで出現した順番です。 表示位置は、パラメーターによって自由に移動できます。 書式の注意点は .. container:: minipage - ``(    )`` の中に括弧を書くときは  ``\(   \)`` とする。 - ``(    )`` の前後に空白を入れない。 | ことです。勿論文字列の中の空白はかまいません。 またファクターとの前後関係は ありません。 凡例の表示位置や大きさを変更したり、体裁を整えるためのパラメーターを 以下にまとめます。これらは、パラメーターセクション P: に記述します。 凡例表示パラメーター ^^^^^^^^^^^^^^^^^^^^^^ .. container:: center .. table:: 凡例表示パラメーター +---------------------------------+----------------------------------------------------------+ | パラメーター |       説明 | +=================================+==========================================================+ | ``LEGN`` | 凡例を表示します。(default) | +---------------------------------+----------------------------------------------------------+ | ``NOLG`` | 凡例を表示しません。 | +---------------------------------+----------------------------------------------------------+ | ``LEGX(`` :math:`x` ``)`` | 凡例左端の位置をX座標の値で :math:`x` とします。 | +---------------------------------+----------------------------------------------------------+ | ``LEGY(`` :math:`y` ``)`` | 凡例上端の位置をY座標の値で :math:`y` とします。 | +---------------------------------+----------------------------------------------------------+ | ``LEGS(`` :math:`s` ``)`` | 凡例の大きさをデフォルト値を1として :math:`s` とします。 | +---------------------------------+----------------------------------------------------------+ | ``CLLG(`` :math:`c` ``)`` | 凡例の文字の色を :math:`c` [#lc]_ とします。(D=e) | +---------------------------------+----------------------------------------------------------+ | ``LBOX(`` :math:`boxname` ``)`` | 凡例全体を :math:`boxname` [#lb]_ の箱で囲みます。 | +---------------------------------+----------------------------------------------------------+ | ``LBCB(`` :math:`cb` ``)`` | 凡例箱の背景の色を :math:`cb` とします。(D=w) | +---------------------------------+----------------------------------------------------------+ | ``LBCL(`` :math:`cl` ``)`` | 凡例箱の枠の色を :math:`cl` とします。(D=e) | +---------------------------------+----------------------------------------------------------+ | ``LBCS(`` :math:`cs` ``)`` | 凡例箱の影の色を :math:`cs` とします。(D=e) | +---------------------------------+----------------------------------------------------------+ .. [#lc] 色の定義の仕方は、ラインパラメーターのところで解説します。 .. [#lb] :math:`boxname` の説明は、BOX: セクションのところで解説します。 ラインパラメーター ~~~~~~~~~~~~~~~~~~ Y パートのファクターや凡例の後のコンマで区切った部分は、 ラインの種類や、シンボルの形、補間の有無、ヒストグラム表示などを 指定するパラメーターを記述します。 例えば 入門例題2 で ``H: X Y(Histogram),DH0`` の場合、\ ``DH0`` が これにあたります。この場合、Dashed Line で Histogram 表示、 データポイントのシンボルは無し、を意味します。 線種 ^^^^^^ ラインの種類には次の 9 種類があり、アルファベットの 記号で指定します。 .. list-table:: ライン線種 :name: table-ref-line-types :align: center :class: image-table * - .. image:: assets/tab201.png :width: 386.8pt :class: responsive-figure 最後の Interior Shaded は、ラインで囲まれた領域を塗りつぶします。 塗りつぶすグレースケールや色は、別に指定できます。 ``I`` を指定した時は、他の線やシンボルと同様に軸フレームの中に クリッピングされますが、\ ``II`` とすれば、クリッピングされません。 線種パターン長変更 ^^^^^^^^^^^^^^^^^^^^ 線種のパターンの単位長さを変えたいときは、 パラメーターセクション P: で次のパラメーターを使います。 .. container:: center .. table:: 線種パターン長変更パラメーター +---------------------------+------------------------------------------------------------+ | パラメーター |       説明 | +===========================+============================================================+ | ``LPTL(`` :math:`r` ``)`` | パターンの長さをデフォルト値を1として :math:`r` とします。 | +---------------------------+------------------------------------------------------------+ により変更します。\ :math:`r` は、デフォルトを1とした単位で指定します。 線の太さ ^^^^^^^^^^ 線の太さは次のように、デフォルトを基準に ``Z`` で細く、 ``T`` で太くすることができます。 .. list-table:: 線の太さ :name: table-ref-line-widths :align: center :class: image-table * - .. image:: assets/tab202.png :width: 386.8pt :class: responsive-figure 補間 Spline ^^^^^^^^^^^^^ データポイント間をラインで結ぶとき、デフォルトでは直線で結びますが、 ラインパラメーターに S を加えることにより、なめらかな曲線でデータポイントを 結びます。入門例題2に補間の例題があります。 | デフォルトでは、データポイント間を4点で補間します。この補間点数を 変える時は、 .. container:: minipage angel-doublebox ``S[`` :math:`n` ``]`` | のように、\ ``[ ]`` を使い点数を :math:`n` で指定します。 シンボル ^^^^^^^^^^ データポイントに表示するシンボルは数字で指定して、 以下のように 16 種類あります。 .. list-table:: シンボル :name: table-ref-symbols :align: center :class: image-table * - .. image:: assets/tab203.png :width: 386.8pt :class: responsive-figure シンボルのオプション ^^^^^^^^^^^^^^^^^^^^^^ シンボル番号 3 :math:`\sim` 14 の奇数番のシンボルは、中抜きのシンボルです。 しかし、これらは先に書いたシンボルやライン、 また、同時に書いたラインに対しては、不透明です (入門例題2のSplineのグラフをご覧下さい)。 内側を白色にしています。 中抜きを白色ではなく、透明にしたい場合は、 それらシンボル番号に20を加えたシンボル番号をお使い下さい。 中抜きは、全て透明となります。 また、これらのシンボル番号 3 :math:`\sim` 14 の奇数番のシンボルの 中抜き部分は、デフォルトで白色です。 シンボルの色を指定すると、シンボルラインはその色になりますが、 中抜き部分は白色のままです。中抜き部分の色を変える場合は、 これらのシンボル番号の後に続けて、\ ``5[R]`` というように ``[  ]`` を用い色を指定できます。 シンボルの線の太さは、大きさとともに太くなりますが、 パラメーターで指定することもできます。 シンボルを描く線の太さを変えるパラメーター は、パラメーターセクション P: に次の様に記述します。 全てのシンボルに作用します。 .. container:: center .. table:: シンボルパラメーター +---------------------------+--------------------------------------------------------------------+ | パラメーター |       説明 | +===========================+====================================================================+ | ``SYBW(`` :math:`r` ``)`` | シンボルを描く線の太さをデフォルト値を1として :math:`r` とします。 | +---------------------------+--------------------------------------------------------------------+ シンボルの大きさ ^^^^^^^^^^^^^^^^^^ シンボルの大きさは次のように、 デフォルトを基準に X で小さく、A で大きくすることができます。 .. list-table:: シンボルの大きさ :name: table-ref-symbol-sizes :align: center :class: image-table * - .. image:: assets/tab204.png :width: 386.8pt :class: responsive-figure グレースケール ^^^^^^^^^^^^^^^^ 線種、シンボル及び領域のグレースケールは、以下のように記号によって指定します。 white から black まで、6 段階です。 後述する\ ``C[``\ :math:`f`\ ``]``\ を使えば、数値もしくは名前による連続的な 指定もできます。 プリンターによってグレーの度合いが違いますので、注意が必要です。 .. list-table:: グレースケール :name: table-ref-grayscale :align: center :class: image-table * - .. image:: assets/tab206.png :width: 386.8pt :class: responsive-figure カラー ^^^^^^^^ 線種、シンボル及び領域の色は、以下のように記号によって指定します。 red から blue まで、5 色、中間色は文字を繰り返して指定します。 ``C[``\ :math:`f`\ ``]``\ を使えば、数値もしくは名前による連続的な 指定もできます。 記号による指定は色相数値のみの指定で、彩度、明度は1です。 HSB数値による指定では、色相のほかに彩度と明度も指定できます。 プリンターによって色合いが違いますので、注意が必要です。 .. list-table:: 記号による色指定 :name: table-ref-color-symbols :align: center :class: image-table * - .. image:: assets/tab205.png :width: 386.8pt :class: responsive-figure カラー、グレースケールの数値及び名前による指定 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | カラー、グレースケールを数値で連続的に、もしくは名前で指定したい時には、 .. container:: minipage angel-doublebox ``C[`` :math:`H(色相) \, S(彩度) \, B(明度)` ``|`` 名前 ``]`` | のように、\ ``[ ]`` を使いカラーを :math:`H(色相) \, S(彩度) \, B(明度)` か、 名前によって指定します。 ``C``\ は、カラーのCyanでも用いていますが、続けて\ ``[ ]``\ が ある場合に、数値指定もしくは名前によるカラー、グレースケールの定義となります。 :math:`H(色相) \, S(彩度) \, B(明度)` の意味は、 :math:`H`\ が負の場合は、グレースケール、正の場合がカラーです。 グレースケールの時の\ :math:`S \, B` は、意味が無く省略可能です。 カラーの場合、 :math:`H` が色相、\ :math:`S` が彩度、\ :math:`B` が明度で、何れも0と1の間の数値で 指定します。数値の間には少なくとも1個の空白が必要です。 :math:`S \, B` を省略して色相のみを指定した時は、彩度と明度は 1が仮定されます。 次の頁に\ :math:`H(色相) \, S(彩度) \, B(明度)` のカラーマップを、 また、その次の頁に名前による色指定の見本を示します。 他のパラメーターで色を指定するときには、記号、名前、数値のいずれの 指定も可能です。 .. figure:: assets/col33.png :name: fig-ref-2-3 :width: 595.1pt :align: center :class: responsive-figure カラーマップ .. figure:: assets/tab207.png :name: fig-ref-2-4 :width: 416.6pt :align: center :class: responsive-figure 名前、数値による色指定 ヒストグラム ^^^^^^^^^^^^^^ 入門例題2にあるように、ラインパラメーターに H を加えると ヒストグラム表示になります。 ヒストグラムの場合、データポイントとヒストグラムの折れるところの 位置関係を選択することができます。 デフォルトでは、データポイントのY値が次のデータポイントのX値まで 継続します。即ち、データポイントはヒストグラムの左側に位置します。 例題で見てみましょう。 .. rubric:: List 2.8 ● ヒストグラム例題 :name: list-2-8 :class: angel-list-caption .. code-block:: text 1: H: X Y(例題1 H),LH6 2: 0.0 0 3: 0.5 10 4: 1.5 20 5: 2.5 35 6: 3.5 30 7: 4.5 45 8: 5.5 70 9: 6.5 0 .. figure:: assets/fig202.png :name: fig-ref-2-5 :width: 297.5pt :align: center :class: responsive-figure ヒストグラム例題1 データポイントとヒストグラムの関係が上の図に示されています。 両者の位置関係を変えるには、上のリストの1行目で H を HH もしくは HHH に変えます。 .. container:: figure-grid figure-grid-2 .. figure:: assets/fig203.png :name: fig-ref-2-6 :width: 297.5pt :align: center :class: responsive-figure ヒストグラム例題2 .. figure:: assets/fig204.png :name: fig-ref-2-7 :width: 297.5pt :align: center :class: responsive-figure ヒストグラム例題3 このように、データポイントとヒストグラムの位置関係を選択することが できます。 Y コラム書式まとめ及び注意点 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ここまでの、Y コラムの書式と注意点を以下にまとめます。 .. container:: minipage - | ``Y[``\ ID番号\ ``][``\ (凡例文字列)\ ``][``\ ファクター\ ``]``, | ``[``\ 線種\ ``][``\ 線の太さ\ ``][``\ シンボル ``][``\ シンボルの大きさ\ ``][``\ 補間\ ``][``\ ヒストグラム\ ``]`` - 凡例文字列以外に空白を入れてはいけない。 | エラーバー ~~~~~~~~~~ 実験データのようにエラーバーがある場合、その大きさを D, DX で指定されるコラムで 記述します。 エラーコラムの数値は、エラー幅の絶対値を表します。 エラーが % もしくは、相対誤差で与えられているときは、 後に説明するコラム関数を利用して下さい。 Y 座標エラーバー ^^^^^^^^^^^^^^^^^^ 基本スタイルは、エラーバーをつける Y コラムの直後に D で指定したコラムを 準備し、そこに値を入れます。 .. rubric:: List 2.9 ● エラー基本スタイル1 :name: list-2-9 :class: angel-list-caption .. code-block:: text 1: H: X Y D 2: 1 10 3 3: 3 50 4 この場合、(1,10) のポイントに Y 軸方向に :math:`\pm`\ 3 のエラーバーがつきます。 ``+`` 側と ``-`` 側に異なる大きさのエラーバーをつけるには、\ ``D+ D-`` のように ふたつのコラムを用意して記述します。 .. rubric:: List 2.10 ● エラー基本スタイル2 :name: list-2-10 :class: angel-list-caption .. code-block:: text 1: H: X Y D+ D- 2: 1 10 3 2 3: 3 50 4 3 この場合、(1,10) のポイントには、Y 軸 ``+`` 側に 3、 Y 軸 ``-`` 側 に 2 のエラーバーがつきます。 ひとつのエラーコラムで ``+ -`` 両側のエラーバーを指定することを 明示的に記述するには、\ ``D+-`` を使います。これはデフォルトの ``D`` と同じ意味です。 ひとつの H: セクションにいくつかの Y コラムがあり、 各々に D によるエラーバーのコラムがある場合、 デフォルトでは Y の直後の D コラムが、 直前の Y 値のエラーバーとなります。このコラムの順番をより自由に使うには、 Y のパラメーターに ID 番号をつけます。例えば .. rubric:: List 2.11 ● エラー基本スタイル3 :name: list-2-11 :class: angel-list-caption .. code-block:: text 1: H: X Y1 Y2 D2 D1 2: 1 10 1.1 0.3 3 3: 3 50 1.3 0.4 4 この場合、Y1 の (1,10) ポイントには :math:`\pm`\ 3 のエラーバーがつき、 Y2 の (1,1.1) ポイントには :math:`\pm`\ 0.3 のエラーバーがつきます。 ID 番号は、1 から 10 までで、順番は自由です。ただし、ID をつけた Y コラムとつけない Y コラムが混在すると、不都合が生じる場合がありますから、 混在は避けて下さい。 | 以上、エラーバーコラム指定の書式をまとめると .. container:: minipage - ``D[``\ ID番号\ ``][+][-][``\ ファクター\ ``]`` - ``[+][-]`` と ``[``\ ファクター\ ``]`` を同時に 使うときは、必ず ``[+][-]`` を先にする。 | X 座標エラーバー ^^^^^^^^^^^^^^^^^^ | X 座標のエラーバーのコラムは、DX で指定します。書式はY 座標の場合とほぼ同じなので、 異なるところだけまとめると .. container:: minipage - ID 番号による指定はできない。 - | ひとつの H: セクションに複数の Y コラムがある場合、 | 全てのポイントに同じ X 座標のエラーバーがついてしまう。 | 従って、複数の X 座標のエラーバーを持ったラインを描く場合は、各々異なる H: セクションに 書かなければなりません。 コラム関数 ~~~~~~~~~~ ひとつのコラムの値のべき乗、定数倍、定数の加減は、ファクターを 用いて記述できますが、複雑な関数、もしくは、ふたつ以上のコラムの 値を用いた関数は、ここで述べるコラム関数を用いて記述します。 書式は、 .. container:: minipage angel-doublebox :math:`\langle` コラムパラメーター :math:`\rangle\langle` ID番号 :math:`\rangle`\ ``=[`` 数式  ``]`` | ここで、コラムパラメーターとは、:numref:`表%s ` の ``X, Y, DX, D, NY, ND`` を指します。 また、ID番号は、\ ``Y, D, NY, ND`` の時必要です。 ``=`` の前後には空白は入れられません。 ``[   ]`` の中の数式では、空白は用いることができます。 数式で使える変数は、実数、ユーザー定義定数、内部定数(``pi, ran``)、 内部関数、Fortranの数式、それと、 後に述べる、自走変数、関数フィット係数、そして、 現在の H: セクションで用いているX, Yコラムの値、これをコラムパラメーター プラスID番号で指定して使えます。 以下に例題を見てみましょう。 .. rubric:: List 2.12 ● コラム関数例題 :name: list-2-12 :class: angel-list-caption .. code-block:: text 1: H: X Y1,D6 NY2 DY1=[Y1*Y2/100] 2: 0.0 0.0 0.0 3: 1.0 0.4 50.0 4: 2.0 1.5 30.0 5: 3.0 2.5 20.0 6: 4.0 4.1 10.0 .. figure:: assets/fig205.png :name: fig-ref-2-8 :width: 297.5pt :align: center :class: responsive-figure コラム関数例題 この例題では、第1コラムがX値、第2コラムがY値、第3コラムがY値の 相対誤差が%表示で与えられています。 ANGEL では、誤差は誤差幅の絶対値で与えることになっているので、 このままでは、誤差を表示できません。そこで、 第3コラムを NY2 として、第4コラムとしてコラム関数を使います。 これを Y1 の誤差として ``DY1=[Y1*Y2/100]`` と定義しています。 結果が右図です。コラム関数の数式に使えるコラム値は、X, Yコラム値 ですから、第3コラムを ND1 とせずに NY2 としています。 コラム関数の注意点をまとめると .. container:: minipage - :math:`\langle` コラムパラメーター :math:`\rangle\langle` ID番号 :math:`\rangle`\ ``=[`` 数式  ``]`` - ``[   ]`` の中以外空白は入れてはいけない。 - 凡例、誤差の\ ``[+][-]``\ を併用するときは、コラム関数が先。 - 数式の中のコラムパラメーターは、N をつけない。(NY2 :math:`\to` Y2) 自走変数 V ~~~~~~~~~~ コラム関数を用いると、コラム値の多種多様の関数変換が 可能になりますが、解析的な与えられた関数を表示するには、 Xコラムの数値を与える必要があります。 そのために、ANGEL では、自走変数 ``V`` を定義できます。 書式は、 .. container:: minipage angel-doublebox ``V=[`` :math:`r_1`, :math:`r_2`, :math:`n` ``]`` | ここで、\ ``[   ]`` の中以外空白は使えません。 :math:`r_1`, :math:`r_2` は、最小値と最大値、\ :math:`n` は分点の数です。 :math:`r_1` と :math:`r_2` の間を :math:`n - 1` 等分に分割し :math:`n` 点の 値を順に与えます。 :math:`r_1` と :math:`r_2` には、定数や数式が使えます。 この自走変数とコラム関数を用いれば、 任意の関数がグラフとして表示できます。 例題を見てみましょう。 .. rubric:: List 2.13 ● 自走変数例題 :name: list-2-13 :class: angel-list-caption .. code-block:: text 1: H: V=[0,2*pi,100] X=[V/pi] Y=[0.8*sin(V)],L0 2: H: V=[0,2*pi,100] X=[1.0+0.5*cos(V)] Y=[0.5*sin(V)],D0 .. figure:: assets/fig206.png :name: fig-ref-2-9 :width: 297.5pt :align: center :class: responsive-figure 自走変数例題 上の例題では、自走変数\ ``V``\ を 0 から 2\ :math:`\pi` まで100点用意し、 1行目では、Xを :math:`\pi` を単位として 0 から 2 までの sin 関数、 2行目では、中心座標が (1.0, 0)、半径 0.5 の円を描いています。 自走変数の注意点をまとめると .. container:: minipage - ``V=[`` :math:`r_1`, :math:`r_2`, :math:`n` ``]`` - ``[   ]`` の中以外空白は入れてはいけない。 - :math:`r_1` と :math:`r_2` には、定数、数式が使える。 関数フィット ~~~~~~~~~~~~ ANGEL では、データポイントの関数フィットができます。 これは、(x,y)のデータポイントの組を、解析的な関数系で 最小二乗法でフィットするものです。 エラーバーが付いているときは、ウエイトとして考慮します。 書式は、コラム関数の様式に似たもので、 .. container:: minipage angel-doublebox :math:`\langle` コラムパラメーター1 :math:`\rangle\langle` ID番号 :math:`\rangle`\ ``=F{`` :math:`\langle` コラムパラメーター2 :math:`\rangle` ``}[`` 関数式( ``An`` ) ``]`` | ここで、コラムパラメーター1は、フィットした関数を格納するコラムで、 ``Y, NY`` です。また、コラムパラメーター2は、フィットする ``Y`` コラムです。 ``=F`` の前後には空白は入れられません。 ``{   }`` の中では、空白は用いることができます。 また、\ ``[   ]`` の中の関数式でも、空白は用いることができます。 関数式で使える変数は、実数、ユーザー定義定数、内部定数(``pi, ran``)、 内部関数、Fortranの数式、そして、 現在の H: セクションで用いているX, Yコラムの値、これをコラムパラメーター プラスID番号で指定して使えます。 フィットしたい関数形の係数は、関数フィット係数\ ``A``\ を用います。 係数名は、\ ``A1``\ から\ ``A99``\ まで使えます。 この関数フィット係数は、係数が求まった後は、ユーザー定義定数と 同じように他の場所でも使えます。 以下に例題を見てみましょう。 .. rubric:: List 2.14 ● 関数フィット例題 :name: list-2-14 :class: angel-list-caption .. code-block:: text 1: H: X Y1,D6 D1 NY2=F{ Y1 }[ A1 * X**2 ] 2: 0.0 0.0 0.0 3: 1.0 0.4 0.2 4: 2.0 1.5 0.45 5: 3.0 2.5 0.5 6: 4.0 4.1 0.41 7: H: V=[0,4.5,100] X=[ V ] Y=[ A1 * X**2 ],L0TT .. figure:: assets/fig207.png :name: fig-ref-2-10 :width: 297.5pt :align: center :class: responsive-figure 関数フィット例題 この例題のXコラムとY1コラムは、コラム関数の例題と同じです。 エラーコラムは、絶対誤差に直してあります。 これらのデータポイントを :math:`y = a_1 x^2` の関数でフィットしています。 ANGEL を走らせると、標準出力に、\ ``A1``\ の値の結果と、誤差の2乗 の値が出力されます。 フィットの方法は、メトロポリス法を用いていますので、 走らせるたびにフィット係数の値が多少違います。 特に、データポイントと関数形の相関が悪い場合は、 何度ANGEL を走らせても、 収束せずに係数がほぼゼロになる場合があります。 上の例題でもそうですが、フィットした関数を同じH:セクション で表示させると、データポイントと同じX値にしか値が与えられませんので、 滑らかな曲線が描けません。 そこで、フィットしているH:セクションでは、表示せず ( 例題では ``NY2`` としています)、 次のH:セクションに、自走変数を用いて、得られた関数を コラム関数で描いています。 その時、上で求めた関数フィット係数\ ``A1``\ を用いています。 得られた関数フィット係数は、 グラフの中に表示することが出来ます。 デフォルトの位置は、上の例題で描かれているように、 グラフの上側、X軸の左端です。 表示位置や大きさを変更したり、体裁を整えるためのパラメーターを 以下にまとめます。これらは、パラメーターセクション P: に記述します。 関数フィット係数表示パラメーター ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. container:: center .. table:: 関数フィット係数表示パラメーター +---------------------------------+--------------------------------------------------------------+ | パラメーター |       説明 | +=================================+==============================================================+ | ``PARA`` | 関数フィット係数を表示します。 | +---------------------------------+--------------------------------------------------------------+ | ``NOPA`` | 関数フィット係数を表示しません。 (default) | +---------------------------------+--------------------------------------------------------------+ | ``PARX(`` :math:`x` ``)`` | 係数表示左端の位置をX座標の値で :math:`x` とします。 | +---------------------------------+--------------------------------------------------------------+ | ``PARY(`` :math:`y` ``)`` | 係数表示上端の位置をY座標の値で :math:`y` とします。 | +---------------------------------+--------------------------------------------------------------+ | ``PARS(`` :math:`s` ``)`` | 係数表示の大きさをデフォルト値を1として :math:`s` とします。 | +---------------------------------+--------------------------------------------------------------+ | ``CLPA(`` :math:`c` ``)`` | 係数表示の文字の色を :math:`c` [#fit-color]_ とします。(D=e) | +---------------------------------+--------------------------------------------------------------+ | ``PBOX(`` :math:`boxname` ``)`` | 係数表示全体を :math:`boxname` [#fit-box]_ の箱で囲みます。 | +---------------------------------+--------------------------------------------------------------+ | ``PBCB(`` :math:`cb` ``)`` | 係数表示箱の背景の色を :math:`cb` とします。(D=w) | +---------------------------------+--------------------------------------------------------------+ | ``PBCL(`` :math:`cl` ``)`` | 係数表示箱の枠の色を :math:`cl` とします。(D=e) | +---------------------------------+--------------------------------------------------------------+ | ``PBCS(`` :math:`cs` ``)`` | 係数表示箱の影の色を :math:`cs` とします。(D=e) | +---------------------------------+--------------------------------------------------------------+ .. [#fit-color] 色の定義の仕方は、ラインパラメーターのところで解説します。 .. [#fit-box] :math:`boxname` の説明は、BOX: セクションのところで解説します。 | 関数フィットの注意点をまとめると .. container:: minipage - :math:`\langle` コラムパラメーター1 :math:`\rangle\langle` ID番号 :math:`\rangle`\ ``=F{`` :math:`\langle` コラムパラメーター2 :math:`\rangle` ``}[`` 関数式( ``An`` ) ``]`` - ``{   }, [   ]`` の中以外空白 は入れてはいけない。 - コラムパラメーター2は、N をつけない。(NY2 :math:`\to` Y2) - 数式の中のコラムパラメーターは、N をつけない。(NY2 :math:`\to` Y2)