カテナリー曲線の高さ計算
垂れ下がったケーブルが最下点からどの距離でどの高さにあるかが分かります。曲線パラメータが10のとき、頂点から5離れた位置の高さは11.27626です。頂点では高さがパラメータと同じになり、曲線は左右対称です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 10
- X
- 5
- 高さ
- 11.27626
カテナリーとは、完全に柔軟で一様なチェーンやケーブルが、2つの支点の間で自重により垂れ下がったときに描く曲線です。その形は双曲線余弦で表され、式は y = a·cosh(x/a)、a は曲線パラメータです。この計算ツールは、曲線パラメータ a をもとに、頂点からの水平位置 x における曲線の垂直方向の高さを返します。
カテナリーの式のしくみ
カテナリーは、単位長さあたりの重量が一様に分布した吊りケーブルの平衡形状です。頂点を原点に置くと、その方程式は y = a·cosh(x/a) となり、cosh は双曲線余弦、a は曲線パラメータ(カテナリー定数とも呼ばれます)です。パラメータ a には直接的な物理的意味があります。
それはケーブルの水平張力と単位長さあたり重量の比であり、曲線の準線に対する頂点の高さに等しくなります。a が大きいほど浅く強く張った曲線、a が小さいほど深いたわみを意味します。ある点の高さを求めるために、このツールは水平位置 x を a で割り、双曲線余弦を適用し、再び a を掛けます。
cosh は偶関数なので結果は対称で、x と マイナス x での高さは同一です。
カテナリーの高さが使われる場面
カテナリーの幾何学は、ケーブル・チェーン・柔軟なラインが重力下で垂れ下がるあらゆる場面に現れます。構造エンジニアは、デッキ荷重によって放物線に平ら化される前の吊り橋主ケーブルの形状推定に用い、また架空送電線のたわみと離隔の設定にも用います。スパン上の位置における高さが、地面・植生・交通からの安全距離を決めるからです。
船舶・オフショア分野では、スパンに沿った高さがアンカーに伝わる張力に関係するため、錨鎖や係留索に同じ曲線を使います。建築家は穹窿やアーチで逆さカテナリーに出会います。吊りチェーンを裏返した形はガウディが活用した純粋圧縮形だからです。
断面での曲線の縦座標を確認すれば、アーチ面がどこを通るべきかが分かります。教育の場では、吊り紐は放物線だという直感への標準的な反例がカテナリーであり、手軽な数値評価器は宿題やデモに便利です。いずれの場合も手順は同じで、たわみからパラメータ a を測定または選択し、必要な位置で高さを評価します。
活用例
架空線の離隔確認
設計たわみからケーブルのパラメータを求め、スパン上の任意位置での電線の高さを計算して対地距離を確認できます。
係留索と錨鎖
係留索に沿ったカテナリーの縦座標を評価し、形状と海底または船体からの離隔を推定できます。
よくある質問
曲線パラメータ a とは何ですか?
カテナリー定数のことで、水平張力を単位長さあたりの重量で割った値です。
x は負でもよいですか?
はい。 cosh は偶関数なので、x と -x での高さは同じです。符号は頂点のどちら側にいるかを示すだけです。
結果は決定的ですか?
はい。 ネットワーク・乱数・時計を使わない Math.cosh の一回の評価と一度の half-up 丸めのみなので、同一の入力からはバイト単位で同一の出力が得られます。
垂れ下がった鎖は放物線の形ですか?
いいえ。自重で垂れ下がる鎖やケーブルは、双曲線余弦で表されるカテナリーになります。吊り橋の床版のように荷重が全体に分布して初めて、放物線に近づきます。
カテナリー曲線は実際にどこで使われますか?
架空送電線で電線の高さや地面との離隔を確かめるとき、錨鎖や係留索、吊り橋のケーブルで使われます。上下を逆にすると、ガウディが用いたアーチやヴォールトの形にもなります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/catenary-curve \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":10,"x":5}'const res = await fetch("https://api.kit.forhosting.com/math/catenary-curve", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 10,
"x": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/catenary-curve",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 10,
"x": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/catenary-curve", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":10,"x":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":10,"x":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/catenary-curve", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 10,
"x": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.catenary_curve",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
入力は算術処理の前に検証され、不正なペイロードは暗黙に誤った数値を返すのではなく invalid_input エラーで失敗します。
カテナリーの式のしくみ
x = 0 では cosh(0) が 1 なので、高さはちょうど a になります。計算全体は IEEE 倍精度で評価される単一の決定的式であり、同じリクエストを繰り返せばどのマシンでも常に同じ数値が得られます。
入力・検証・丸め
非正のパラメータを持つカテナリーは、このモデルでは物理的にも数学的にも意味を持たないからです。このツールは、必須フィールド2つと任意フィールド1つからなる小さな JSON オブジェクトを受け付けます。フィールド a は曲線パラメータで、0 より厳密に大きい有限の数値でなければなりません。0、負の値、欠落値、非数値のペイロードはすべて算術処理の前に invalid_input エラーを発生させます。フィールド x は頂点から測った水平位置で、正・負・0 を問わず任意の有限の数値を取れます。任意フィールド decimals は高さの丸めを制御し、既定値は 6 で、0 から 12 までの整数でなければなりません。丸めは half-up で、生の IEEE 結果に一度だけ適用されます。これにより、出力をマシン間でバイト単位で比較する際に他の丸め方が招く 0.1 + 0.2 のような典型的な問題を回避できます。レスポンスは計算された高さとともに両方の入力をそのまま返すため、自動化パイプラインはどのリクエストがどのレスポンスを生成したかを検証できます。失敗したジョブは invalid_input を返し、課金されません。
連携の活用例
教育と宿題
固定されたゴールデン例とともに、選択した断面で y = a·cosh(x/a) を評価し、吊りチェーンと放物線を比較できます。
技術的な質問
なぜ a が正でないと失敗するのですか?
パラメータが 0 または負のカテナリーは吊りケーブルの平衡形状ではないため、入力は invalid_input で拒否されます。
API の料金はいくらですか?
ブラウザウィジェットは無料です。API は1回あたり $0.002 からで、失敗したジョブは課金されません。