Explanation In English Below Press L Key to Switch Languages === 対応している関数、定数、演算 === ・sin, cos, tan, asin, acos, atan ・log(底は10), ln(logの底がeバージョン) ・e, π ・左結合の四則演算(+ - * /) →このとき掛け算は省略しても良い(2xなど) ・右結合のべき乗(^) ・括弧による演算の優先度指定 積分変数はxのみ、つまりdx以外は対応していません。定数としての変数利用も対応していません。 === 使い方 === 積分区間と、被積分関数を入力してください。 解釈された関数は画面に数式として表示されます。 注意点としては、sin²xなどの指数を持つ関数は、(sin(x))^2と表記すること。 積分範囲には数字はもちろん、「π/4」や「2π+e」のような形式での入力もサポートしています。 Space : グラフ再描画 1 : 変数表示 2 : 変数非表示 L : 言語変更スライダーの表示、非表示 スペースキー : 積分の開始 ホイール : 拡大縮小 ドラッグ : 移動 English === Supported Functions, Constants, and Operators === - sin, cos, tan, asin, acos, atan - log (base 10), ln (base e) - e, pi - Arithmetic: + - * / (Left-associative) * Implicit multiplication is supported (e.g., 2x). - Power: ^ (Right-associative) - Parentheses: ( ) for grouping - Note: Only 'x' is supported as the variable of integration. Variables cannot be used as constants. === How to Use === Enter the integration limits and the function. The formula will be displayed on the screen. - Important: Format exponents as (sin(x))^2 for sin^2(x). - Limits: Supports numbers and expressions like "π/4" or "2π+e". === Controls === Space: Redraw graph 1: Show variables 2: Hide variables L: Toggle language slider Space bar: Start integration Wheel: Zoom in/out Drag: Move / Pan
旧作の積分計算機の完全上位互換となっています。 https://turbowarp.org/1150205798/fullscreen?fps=60&hqpen 重ければ↑これで動かしてください。 デフォで、 f(x) = 1/(1+e^(sin(x)+cos(x))) を0から2πまで積分した結果が表示されています。 S = πで、厳密値だと3.14159265358...です。 入力された文字列による関数を、 省略された掛け算等を補完しつつ逆ポーランド記法(後置記法)に変換することで関数解釈を行い、 台形近似法を利用して指定区間の面積を求めます。 抽象構文木(AST)を利用する手もありましたが今回は別の方法で。 線形代数学、解析学、離散数学に感謝感謝 あるいみコンパイラを作ったようなものなのかもしれない。 === バージョンアップ履歴 === @v1 25/3/26 ・共有 @v2 25/3/27 ・グラフ描画機能の追加とバグ改善 (累乗を計算するプログラムに対してバグ) @v3 25/4/14 ・変数と関数の連続入力に対して掛け算の補完が行われていなかった問題の修正 ・エラーの追加 ・関数の追加 ・多言語対応 ・その他軽微な修正 @v4 26/3/29 ・関数や変数の字句解析(Token変換)に最長一致原則を適用 ・マイナスやプラスに対して二項演算子と一項演算子の適切な判断が可能なように修正 ・小数点に対応 26/4/10 ・グラフをドラッグ、ホイールでの移動操作に対応 ・グラフ描画システムを刷新、軽量/高速化、綺麗に描画、原点O,x,yの文字描画 ・負の少数乗強いる計算を入力すると旗リセットが効かないバグの修正 === 把握しているバグ === ・入力に対して空白で提出するとバグが起きる ・Infinity, 0除算への回避策 ・負の少数乗が含まれないのに該当エラー