平方完成(途中式つき)— ax²+bx+c を a(x−h)²+k に変換、無料
途中式つき平方完成 API は、二次式 ax² + bx + c の3つの係数 a、b、c を受け取り、平方完成形(頂点形)a(x − h)² + k に書き換えます。頂点形の係数 h と k、放物線の頂点、そして標準形から頂点形へ至る途中式の完全な系列——a でくくる、x の係数を半分にする、その平方を足して引く、完全平方式をまとめる——を返します。書き換え全体は h = −b/(2a)、k = c − b²/(4a) という厳密で決定的な算術の1パスですので、同じ係数からは常に同じ形と同じ途中式が得られます。手法の教授、宿題の行ごとの採点、大きなパイプライン内の二次項の正規化にご利用ください。
無料で実行
平方完成とは実際には何を意味するのか
ax² + bx + c と書かれた二次式は、その形を間接的にしか示しません。同じ式を a(x − h)² + k と書き換えれば、ほとんどの人が本当に知りたい2つのことが一目でわかります。放物線の頂点が点 (h, k) にあること、そして a の符号から上に開くか下に開くかです。書き換えの背後にある技法——平方完成——は、x² の項と x の項を取り、それらを完全平方式に変えるために必要な定数をちょうど足して引き、それを二項式の平方へとまとめます。式そのものは何も変わりません。どちらの形に任意の x の値を代入しても、同じ数が得られます。変わるのは、一目で読み取れる内容です。係数 a はそのまま持ち越されますので、お送りいただいた最高次の係数が、答えの平方項に掛かるものと同じになります。このエンドポイントは3つの数値係数に対して記号的に変形を行い、各中間操作を読みやすいステップとしても返します。つまり、整数・小数・負の値のいずれでも同様に機能し、式が実際には直線であり平方完成形がまったく意味をなさない唯一の退化ケース——a がゼロの場合——を拒否します。
係数と途中式はどのように計算されるのか
頂点形の2つのパラメータは、2つの閉じた形の恒等式から得られます。水平方向のずれは h = −b/(2a) で、これは放物線の対称軸の x 座標そのものです。垂直方向のずれは k = c − b²/(4a) で、これはその軸上で二次式が取る値——言い換えれば、元の式を x = h で評価したもの——です。反復探索ではなく厳密な公式ですので、結果は決定的です。同じ係数で2回実行すれば、バイト単位で同一の出力が返り、応答をキャッシュし、比較し、自動テストに組み込むことが安全にできます。途中式は教室での手順をなぞります。x の項から a をくくり出し、得られた x の係数を半分にし、その平方を括弧内で足して引き、残った定数を k に吸収させながら完全平方式を二項式の平方へまとめます。各ステップはプレーンな文字列として返されますので、導出を行ごとに表示できます。丸めは選択が入る唯一の箇所です。デフォルトでは中間値、h、k は10桁の小数に丸められ、出力が機械や言語をまたいで安定します。オプションの precision フィールドで0から15桁まで指定できます。厳密な整数は、どの精度でも整数のままです。係数は数値または数値文字列として送信できますが、すべての係数は有限でなければなりません。Infinity と NaN は明確なエラーで拒否されます。
途中式つきの形は実務のどこに収まるのか
平方完成が最終目的になることはめったになく、次のステップを開くための一手です。二次方程式の解の公式への標準的な道筋であり、微積分なしで頂点を求める最速の方法であり、円や楕円の方程式を中心・半径形に変える操作でもあります。この capability は結果とともに途中式を返しますので、教育プロダクトで特に有用です。くくる・半分・平方・まとめるという系列を答えの横に表示すれば、学習者は頂点形が何であるかだけでなく、元の係数からどう導かれるかを見ることができます。宿題採点のフローでは、最終答えを正誤で印すだけでなく、学生の中間行を対応する返却ステップと比較できます。グラフィックス、物理、最適化のパイプラインでは係数だけで足りることもあります。ax² + bx + c をサンプルにフィットさせ、3つの数値を送り、ピーク位置 h とピーク値 k を応答から直接読み取ってください。この capability はエッジ上で純粋な算術として実行され、何も保存されません。同じコードがこのページのブラウザ上で無料で動作します。3つの係数を貼り付け、書き換えがステップごとに進むのをご覧いただき、自動化フローに組み込まれる場合のみ1リクエスト $0.002 をお支払いください。
活用例
書き換えの各ステップを表示する
a、b、c を送信すると、頂点形に加えて、くくる・半分・平方・まとめるの系列が読みやすい行として返り、授業や解答例にそのまま表示できます。
学生の答案を行ごとに採点する
手書きの平方完成の解答の各中間行を、対応する返却ステップと比較できます。最終答えだけではありません。
微積分なしで頂点を読み取る
放物線の頂点は単に (h, k) です。3つの係数を送信すれば、変曲点と極値がきれいな数値として得られます。
よくある質問
料金はいくらですか?
API 経由で1リクエスト $0.002 です。このページのブラウザ上での実行も無料です。
具体的に何が返りますか?
係数 a はそのまま、頂点形の係数 h と k、書き換えられた形の文字列 a(x−h)²+k、点 (x, y) としての頂点、そして導出の途中式の文字列配列です。
なぜ a = 0 を拒否するのですか?
最高次の係数がゼロでは式は二次ではなく一次となり、平方完成形は定義されません。2a で割ることに意味がないからです。
係数を文字列として送れますか?
はい。数値と数値文字列の両方を受け付けますが、すべての係数は有限の数値でなければなりません。Infinity と NaN は拒否されます。
何か保存されますか?
いいえ。計算はお送りいただいた3つの係数に対する純粋な算術であり、記録・保持されるものはありません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/completing-the-square-works \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1,"b":6,"c":2}'const res = await fetch("https://api.kit.forhosting.com/math/completing-the-square-works", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1,
"b": 6,
"c": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/completing-the-square-works",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1,
"b": 6,
"c": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/completing-the-square-works", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1,"b":6,"c":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1,"b":6,"c":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/completing-the-square-works", 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": 6,
"c": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.completing_the_square_works",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |