2017年07月03日

便利な公式辞典 〜公式を検索できるようにしました〜

応援クリックを1日1回宜しくお願いいたします。




数学公式集 〜IT化のメリットを考察・実装できるか〜で述べた公式辞典の検索UIを考察し、実装しました。
↓↓↓
公式辞典



今回の公式辞典の検索UIについて
    1. 公式の数が膨大になったときのページ読み込み時の表示時間のため、読み込み時は公式は表示せず、「検索・表示」ボタンを押した後で表示するようにしました。
    1. AND検索とOR検索とNOT検索を同時に実行できるようにしました。
    1. 公式の名前、公式における文字・構造・関数名を検索対象としました。
    1. 公式の構造には分数、ルート、総和、総乗、ベキ乗(上付き添字)、下付き添字、三角関数のチェックボックスを用意しました。






1. 公式の数が膨大なときに、表示時間がかかることは公式に辿り着くまでの時間に大きく影響する要因であるため、必ずかかるものとして省略しました。


2. AND検索とOR検索とNOT検索を同時に実行する、というのは、AND検索の欄に入力した検索クエリはANDで、OR検索の欄はORで、NOT検索の欄はNOTで、それらの結果のANDをとる検索手法です。

各欄が空欄の場合、その検索クエリでは検索しません。



3. 公式の名前は漢字や平仮名の検索を想定していて、公式のジャンルを絞る目的に使えます。

公式における文字には、数式中の変数や数字の検索を想定していて、交差$r$や$5$次方程式の$5$などで絞る目的に使えます。

公式における構造では、種々のチェックボックスにチェックを入れることで、数式中の特徴的な構造や関数名で公式を絞る目的に使えます。



4. 公式における構造・関数名として設置したチェックボックスの種類は、現時点での公式辞典で使われている構造や関数名から考案しました。

もちろん、公式が増える際に検索UIに追加するものです。






AND・OR・NOTの検索を行うので、検索クエリに矛盾が無いよう、NOT検索の欄の入力がAND検索やOR検索の欄にあればエラーとします。

また、チェックボックスにチェックを入れると、同じ構造・関数名の他の検索手法(AND・OR・NOT)ではチェックボックスを無効化(disabled=true)します。




一応、公式における文字の欄には$\mathrm{\TeX}$のコマンドを受け付けないようにしました。

それを構造・関数名の検索で実装しているので、構造・関数名のチェックボックスで選択する形で$\mathrm{\TeX}$のコマンドを検索できることになります。



また、構造のチェックボックスの案に、$\pm$($\mp$)や$+$も考えられましたが、公式を検索するときの有用性が無いように思われたので、$\pm$は止めておきました。

文字の欄で「+」や「-」を入力すると検索はできます。




今回の実装で公式辞典において、検索対象・検索手法(AND・OR・NOT)、検索クエリ(公式の名前、公式中の文字・構造・関数名)が揃っていている状態となりました。

前回の記事に載せたようなIT化のメリット、Webページを表示して公式を探し始めてから各公式が目に入るまでが速くすることができ(検索クエリを入力せずにいきなり表示)、検索クエリによっては思わぬ項目(ジャンル)からも検索結果を得ることができる、紙のページをめくりまくらなくても良いのと同様にWebページを遷移しまくらなくても良い、といった特徴を満たしていると思います。


今後は
    1. 公式を増やす
    1. チェックボックス(構造・関数名)を増やす
    1. より詳細な数式検索を実装する
のうち、AとBを主に進めていくことになると思います。

Cについては、公式中のイコール「=」の個数(式変形の回数)、数(指定した数より大きい・小さい数を含む公式を検索)、複雑な構造・関数検索(例:ルートの中に分数があり分子にべき乗があるという構造を検索、$\sin$の引数に$\cos$がある関数を検索)などの工夫点が光ります。

ですが、まだまだ公式のサンプル数も少なく、追加する機能の要請が高まるのを待つのもありです。

さて、どんな公式を進めようかと。



ちなみに、物理学の法則・方程式については、公式辞典でなく専用のページを新規作成する目論見です。





posted by Line Segment at 18:00 | Comment(0) | TrackBack(0) | ホームページ | このブログの読者になる | 更新情報をチェックする

2017年07月02日

「パーセンタイルの数値計算」を更新 〜ビジュアル化と理論の追記〜

応援クリックを1日1回宜しくお願いいたします。




少し好評なパーセンタイルの数値計算を更新しました。

<canvas>タグを用いて、正規分布関数を描画し、入力した値までの領域を緑で色付けします。

また、解説において、和を計算するときの近似を第200項までで良いとしてきましたが、その根拠を書きました。

200である必要性はなく、それまでの項で切っても精度に問題ないですが、200項までとれば充分精度が保証されるというものです。

また、数学的な根拠であり、プログラミングの有限桁の要因があります。

Wikiを参考にどこまで正しく計算できているかも少し書きました。






その際に、$\displaystyle\sum_{n=1}^{20}\left(\frac{1}{3}\right)^{2n}$などの式を書きましたが、その式をクリックすると計算結果を検索するページへのリンクを貼っています。

MathJaxによる数式レンダリングがあるわけですが、式をクリックしてリンクを跳べるのは少し新鮮で便利ですね。




posted by Line Segment at 18:00 | Comment(0) | TrackBack(0) | ホームページ | このブログの読者になる | 更新情報をチェックする

2017年07月01日

数学公式集 〜IT化のメリットを考察・実装できるか〜

応援クリックを1日1回宜しくお願いいたします。



数学の公式辞典なるものを作成しました。
↓↓↓
公式辞典


これからジャンルも数も増えていくと思いますが、数学公式集のように名称・目的から検索していけるようにすることはできると思います。



それをWebのUIとして有用な形にできるかという話です。


また、本の数学公式集の探し方を正しい順序とし、逆引き公式辞典すなわち公式(数式)からそのページに行き着くという提供手法もあると思います。

数式検索につなげるわけですが、公式をMathJaxという処理可能な形式で表示しているので、それらに対する検索処理を単なるプレーンテキストでなく実装した方が「式の検索」にもってこいです。





個人的に思っていることは、これまでの数式UIをそのまま持ってくるのも選択肢の最後の方にあっていいとは思います。

しかし、公式を検索する用に不要な部分を省略してUIを設置するのが良いと思います。

公式の検索に寄せるとは、ということになりますが、今後考えていけたらと思います。





現時点では「展開・因数分解」の項目(ジャンル)が尽くしたと思われます。

使いやすさを重視すると、通常の公式辞典として項目を選択した後に詳細な「1次」「2次」・・・「n次」の公式を表示していくのか、公式が全て表示されている状態で「展開・因数分解」へジャンプできるようにしておくのか、色々考えられます。

ただ、数学公式集では目的別に探せると言っても、大項目→中項目→・・・となって、そのページの公式をズラッと見て、見つけます。

「大項目→中項目→・・・となって」を抽出すると、それまでは公式を表示していなくても良く、

「そのページの公式をズラッと見て」を抽出すると、公式がズラッと表示されていてもまぁOKということもできます。

さすがに公式が膨大になると表示の時間もかかりますし、「中項目→小項目→さらなる小項目→・・・」となる前に「・・・→まぁまぁ大項目」の時点でその項目の公式を表示しておいた方が速くありつけるでしょう。

(なぜならズラッとなっていても探したい欲求が克つからです。ズラッとなっていないためにフラストレーションが生じる例はこちら

感情的な(心理?)話だけでなく、公式集のように「このページの中から見つけてね」の段階がなく、究極に詳細な項目まで来て初めて表示されるというのはある意味極端で誰から見ても遅めだからです。

どの時点で公式をズラッと表示するかは項目の分割化によりますが、UIとして使いやすいところを狙うべきです。(項目の段階が多すぎず少なすぎず・・・)




逆引きとしては、似た数式が少し離れた異なる項目(ジャンル)でヒットすることがIT化のメリットの1つだと思うので、変数のアルファベットの違いなどは完全一致とせず検索する構造検索などの検索手法が必要です。

積の可換なども考慮させて・・・などとなると種々の数式検索の論文の話になっていくと思われます。




IT化のメリットの他の例ととしては、本のようにページをめくりまくらなくても見つかるという点があります。

ただし、上記のような項目の分割を行うとWebページを遷移するか、いくつかのクリックが要ることになってしまうので、紙のページよりは速く正確にできるようになればと思います。

また、公式(数式)の方から検索できることも挙げられます。



考察・実装できたら、記事を書きます。



posted by Line Segment at 18:00 | Comment(0) | TrackBack(0) | ホームページ | このブログの読者になる | 更新情報をチェックする