平方完成による積分
x²+2x+5分の1の積分は、0.5×arctan((2x+2)/4)+Cです。2次式の3つの係数を入れると、平方完成、ずらし幅、残り、最終的な原始関数まで、各段階が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 1
- B
- 2
- C
- 5
- 判別式
- -16
- H
- -1
- K
- 4
- 平方完成
- ((x + 1)^2 + 4)
分母を平方完成形 a((x−h)²+k) に書き換え、標準的な逆正接の恒等式を適用し、判別式、頂点の移動量 h、剰余 k、スケール係数 s、そして最終的な原始関数 (2/s)·arctan((2ax+b)/s) + C を読みやすい式としてすべて返します。
平方完成がこの積分を逆正接に変える理由
dx/(x²+1) の積分は arctan(x) であり、これは微積分の講義で最初に学ぶ結果の一つです。平方完成は、積分の一族全体をこの既知の一つの場合に帰着させる代数的な操作です。
首位係数がゼロでない任意の二次式 ax²+bx+c は a((x−h)²+k) と書き換えることができ、ここで h = −b/(2a) は水平方向の移動量、k = c − b²/(4a) は移動後に残る項です。判別式 b²−4ac が負のとき、k は a に対して厳密に正となり、分母は定数に平方の和 (x−h)²+k を掛けた形になります。
その和から k をくくり出すと 1 + ((x−h)/√k)² の形が得られ、置換 u = (x−h)/√k により積分は直接 ∫du/(u²+1) の定数倍に変換されます。
活用例
CAS パイプラインで積分を振り分ける
判別式チェックを使い、1/二次式の積分を逆正接分岐または対数分岐に自動的に振り分け、エラーを振り分け信号として利用します。
有理関数を含む物理モデルの原始関数を生成する
減衰系や強制系では 1/(ax²+bx+c) の項がよく現れます。下流での評価のために、精度を制御した閉じた形の原始関数を取得します。
よくある質問
どの積分を扱えますか?
判別式 b²−4ac が負である ∫ dx/(ax²+bx+c) のみです。この族の原始関数は、一次式の逆正接に定数を掛けた形になります。
結果はどう確認しますか?
s = √(4ac−b²) として (2/s)·arctan((2ax+b)/s) を微分すると、連鎖律により 4a/(s²+(2ax+b)²) となり、1/(ax²+bx+c) に簡約されます。
係数にはどの入力形式が受け付けられますか?
数値または10進文字列で、オプションの指数表記も使え、絶対値は 1e15 までです。
判別式が0以上のときはどうなりますか?
逆正接の形は使えないため、推測で答えを出さずに、その旨をはっきり伝えます。この場合は分母が実数の範囲で因数分解でき、部分分数分解による対数の形の積分になります。
結果に出てくるhとkは何を表しますか?
2次式を平方完成した形に書き直したときの値です。hは横方向のずらし幅で、kはずらした後に残る量です。x²+2x+5なら、hは-1、kは4になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/integration-by-completing-the-square \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1,"b":2,"c":5}'const res = await fetch("https://api.kit.forhosting.com/math/integration-by-completing-the-square", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1,
"b": 2,
"c": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/integration-by-completing-the-square",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1,
"b": 2,
"c": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/integration-by-completing-the-square", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1,"b":2,"c":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1,"b":2,"c":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/integration-by-completing-the-square", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 1,
"b": 2,
"c": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.integration_by_completing_the_square",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs_coeff | 1000000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
平方完成による積分 API は、二次式が実数解を持たない場合に、二次式の逆数 1/(ax²+bx+c) の原始関数を求めます。判別式がゼロまたは正の場合、逆正接形は適用できず、その場合は部分分数分解による対数形に属するため、API は推測せずにその旨を明示します。
平方完成がこの積分を逆正接に変える理由
結果は、引数が x の一次式である逆正接であり、先頭の定数は途中で導入されたすべてのスケール係数を吸収します。平方完成による積分エンドポイントは、まさにこの一連の手順を実行し、各中間量を公開するため、最終的な公式だけを返すブラックボックスに頼るのではなく、代数を一歩ずつ確認できます。
API が返す内容とその読み方
分母の二次式の三つの係数 a、b、c と、0 から 15 桁のオプションの精度を送信します。逆正接形が存在するには、これが負である必要があります。返された原始関数を記号的に微分すると、正確に 1/(ax²+bx+c) が復元されます。レスポンスは係数を繰り返した後、判別式 d = b²−4ac を報告します。次に、平方完成 a((x−h)²+k) の h と k が completed_square フィールドに読みやすい文字列として示されます。続いてスケール s = √(4ac−b²) と係数 2/s、最後に arctan_argument と完全な原始関数の文字列 (2/s)·arctan((2ax+b)/s) + C が返されます。すべての数値フィールドは要求された精度に丸められ、式の文字列内でも同じ丸められた値が使われるため、テキスト形式と数値フィールドが矛盾することはありません。この導出はソースコードと各レスポンスの formula フィールドに記載されており、使用された恒等式が明示されているため、採点者や同僚はコードを読まずに手法を監査できます。
応答がエラーになる場合と、それが正しい理由
判別式が負であることは細かな条件ではなく、二つの異なる原始関数の族を分ける境界線です。b²−4ac が正のとき、二次式は二つの異なる実数解を持ち、分母は実数範囲で因数分解され、積分は部分分数分解により対数の和に分割されます。判別式がゼロのとき、二次式は完全平方であり、積分は有理関数となり、やはり逆正接は登場しません。エラーが成功した計算として課金されることはありません。どちらの場合にも逆正接の式を返すのは黙って誤りを返すことになるため、API は両方を明確な invalid_input エラーで拒否し、判別式の値と実際に適用される形を説明します。a = 0 の場合も同じ厳格さで扱われ、分母が一次式になり積分は単純な対数になります。このフェイルクローズドの動作は自動化されたパイプラインで重要です。このエンドポイントに係数を送るソルバーチェーンは、問題を対数分岐に振り分けるための明示的で解析可能な信号を受け取り、もっともらしいが誤った公式が下流に伝播することを防げます。
連携の活用例
微積分の宿題を一歩ずつ確認する
平方完成、スケール係数、最終的な逆正接の式を、最終答えだけでなく各中間フィールドと比較できます。
技術的な質問
料金はいくらですか。
$0.002/リクエストです。このページのブラウザ上でも無料で実行できます。
判別式がゼロまたは正の場合はどうなりますか。
判別式の値を示す invalid_input エラーで失敗します。これらの場合は部分分数分解により対数や有理関数に積分され、逆正接を返すのは誤りです。
レスポンスの h と k は何を意味しますか。
平方完成のパラメータです。ax²+bx+c = a((x−h)²+k)、h = −b/(2a)、k = c − b²/(4a) です。completed_square フィールドにも同じ書き換えが読みやすい式として表示されます。