関数f(x)・g(x)の比較グラフ計算機

関数f(x)・g(x)の比較グラフ計算機

関数f(x)とg(x)を同じx標本点で計算し、2系列を同一座標のSVG、数値表、TSVで比較します。未定義点は系列別に分断します。

入力

変数xだけを使う安全な実数式。許可制の演算子・定数・一引数関数で最大200文字です。

変数xだけを使う安全な実数式。許可制の演算子・定数・一引数関数で最大200文字です。

絶対値1,000,000以下。もう一方の端点と異なり、区間幅も1,000,000以下にします。

絶対値1,000,000以下。もう一方の端点と異なり、区間幅も1,000,000以下にします。

1〜200の整数。aとbの両端を含むため結果はn+1点です。

使い方

  1. 関数式へ変数xだけを使った式を入力します。2関数ページではf(x)とg(x)を別々に入力します。
  2. 区間の始点a、終点b、1〜200の整数で分割数nを指定します。a>bの逆向きも可能です。
  3. 「計算する」を押し、SVGの凡例、未定義セル、展開できる数値表を確認します。
  4. 必要に応じてTSVをコピーし、区間を狭めるかnを増やして標本依存性を再確認します。

計算式・考え方

h=(b−a)/n、x_i=a+i h(i=0,…,n)の同じn+1点でf(x)とg(x)を個別評価します。最終点x_n=bを直接使い、定義域外・0除算・overflow・絶対値1e100超過は系列ごとの未定義セルとして、その線だけを分断します。

注意事項

  • このページは二つの一変数関数を同じ座標へ重ね、値の大小、交差候補、増減の違いを観察する比較用グラフ計算機です。f(x)とg(x)へ別々の式を入れ、共通区間a〜bと分割数nを一度指定します。既定例f(x)=x−cos(x)、g(x)=x^2−2では、一次的な傾向と放物線的な変化を同じ標本位置で見比べられます。
  • 共通格子はh=(b−a)/n、x_i=a+i h(i=0,1,…,n)で作り、両系列を必ず同じn+1個のxで評価します。最終点は加算を繰り返さずx_n=bと直接合わせるため、fとgの終端比較で格子ずれが起きません。a>bの逆向き区間も入力順のまま処理しますが、a=bは比較する幅がないためエラーです。n=1は両端だけ、n=200は上限の201点です。
  • fとgの式で変数として認めるのはxだけです。定数pi、π、e、四則演算、べき乗^、丸括弧、単項の正負に加え、abs、sqrt、exp、ln、log、log10、sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、floor、ceilを使用できます。2*xの演算記号を省略した2x、複数引数、利用者定義関数、条件分岐、複素数はこの入力形式では扱いません。
  • 二つの入力は同じ安全なno-evalパーサーで別々に構文解析します。各式は200文字、128トークン、入れ子32段までで、許可リスト外の文字や名前が一つでもあれば計算全体を開始しません。eval、new Function、HTML、イベント属性、代入、配列アクセス、プロパティ参照、セミコロンをコードとして解釈しない設計なので、注入文字列はグラフ式にはならず入力エラーになります。
  • 区間端a・bの絶対値と幅|b−a|はそれぞれ1,000,000以下、分割数nは1〜200の整数に限定します。各関数値は有限で絶対値1e100以下のときだけ描画対象です。指数関数のoverflowや0除算をInfinityのまま軸へ渡さず、上限超過値を1e100へ切り詰めることもしません。安全境界を超えたセルは未定義にし、全系列の全点が未定義なら結果を成功扱いしません。
  • 未定義セルはfとgで独立です。例えばf(x)=sqrt(x)、g(x)=1/xを負から正へ描くと、fは負側が未定義で0以降に線が現れ、gは0だけが未定義でその位置にgapができます。fの失敗で同じ行のgを消したり、gの定義域外をfへ伝播したりしません。これにより、定義域の異なる関数を同じ表で比べても、各系列の有効範囲を区別できます。
  • 各系列の有限標本点は隣同士を直線で結びますが、その線は解析的な連続性、交点、根、極を保証しません。片方または両方の極が標本点の間にあると、未定義セルが存在せず極をまたいで線が結ばれる可能性があります。二本の線が画面上で交差して見えても、真の方程式f(x)=g(x)の解とは限らず、逆に短い区間の交点を飛び越えて見逃すこともあります。
  • 交点候補を調べるときは差d(x)=f(x)−g(x)を別途一関数として描く方法が有効です。ただしdの符号変化から解の存在を言うには、その区間でdが連続だと分かっている必要があります。このページは線形補間した交点座標、接触する重根、誤差範囲を計算しません。候補区間を狭め、零点探索の停止条件と残差を備えた専用手法で確認してください。
  • 同じ縦軸へ重ねるため、桁が大きく違う二関数では小さい系列がほぼ直線に見えることがあります。これは小さい値が失われたとは限らず、自動スケールが全有限値を収めた結果です。凡例で系列色を確認し、展開できる数値表やTSVで実値を比較してください。単位の異なる量や密度と累積確率のように意味の違う量を同一軸へ載せる場合は、見かけの交差に意味があるかを先に検討します。
  • 粗い格子ではfとgの差が急変する領域、周期の短い振動、狭いピークを捉えられません。nを50から100、200へ増やしたり、関心領域だけへaとbを寄せたりして、交差候補とgapが安定するかを比べてください。上限201点はスマートフォンのSVG・表・コピーを扱いやすくする計算量制限で、十分な解像度の証明ではありません。必要なら区間を分割して複数回調べます。
  • 表では各行にx、f(x)、g(x)を並べるため、同じ標本点での差を確認できます。TSVコピーは見出しを含み、未定義セルを数値へ偽装せず「未定義」と記録します。表ラッパーは狭い画面で横スクロールでき、グラフには二系列の凡例があります。資料へ転載するときは色だけに依存せず、系列名と入力式、区間、分割数を併記してください。
  • 二関数比較は近似式と基準式、モデルAとモデルB、変形前後の式を同じ格子で検算する用途に向きます。ただし標本一致は区間全体の同一性を証明せず、表示桁の一致も厳密な等号ではありません。重要な判断では、差の最大値評価、誤差境界、単位整合、独立実装との照合を行い、必要に応じて高精度演算や区間演算を備えた専門ソフトへ移してください。
  • 二式がほぼ同じ値を取る場合、重ねた線だけでは差を判別できません。数値表の表示桁より小さい差も内部では残ることがありますが、binary64で表現できない差や相殺で失われた桁を復元することはできません。f−g、(f−g)/gなど目的に合う差の式を別途調べると有効ですが、g=0付近の比は未定義または巨大になるため、絶対差と相対差の使い分けが必要です。
  • 関数の順序は凡例、表の列、TSVの列へそのまま反映され、fとgを自動で入れ替えません。対称性を調べるならf(x)とf(−x)に相当する二式、逆関数候補を調べるなら定義域と値域を明記した二式を入力できます。ただしこの計算機は式同士が代数的に同値か、互いに逆関数か、偶関数・奇関数かを証明しません。有限標本の一致は仮説を立てる材料として扱います。
  • 有限個のbinary64標本を結ぶ表示で、連続性、根、極、標本間の形、誤差を保証しません。

よくある質問

二本の線が交差した場所がf(x)=g(x)の解ですか?

画面上の折れ線交差は標本値の線形接続による候補で、真の交点ではない場合があります。差f(x)−g(x)の連続性を確認し、候補区間を専用の零点探索で解いて残差を検査してください。

一方の関数が未定義だともう一方も消えますか?

消えません。fとgは同じxで別々に評価し、未定義セルと線のgapを系列ごとに管理します。ただし二系列を合わせても全セルが未定義ならグラフ化できないため全体エラーです。

値の桁が大きく違う二関数を比較できますか?

同じ縦軸へ表示できますが、大きい系列に軸が合わせられて小さい系列の変化が見えにくくなります。数値表とTSVで実値を確認し、必要なら区間を分けるか比・差を別の式として調べてください。

式の構文解析、最大201点の評価、SVG描画、代替表、TSV生成はすべてclient-onlyでブラウザ内だけで行います。入力式と結果を外部APIへ送信・保存せず、fetch、XHR、WebSocket、外部CDNを使用しません。