単振動の変位計算
この単振動変位計算機は、振幅、角周波数、位相定数を基に、指定した時刻における振動子の位置を求めます。単振動方程式の標準的な余弦形式を使用し、変位をメートル単位で返します。物理の演習問題の確認、振動モデルの評価、シミュレーション用の正確な位置生成にご利用いただけます。入力値はすべて有限の数値である必要があり、不正な値は誤解を招く結果を返さずにエラーとして処理します。
無料で実行
同じ振動子を表す量をご入力ください
振幅は平衡位置からの最大距離を表し、メートル単位で入力します。角周波数は位相が進む速さを表し、ラジアン毎秒で入力し、時刻は秒で指定します。位相定数は、時刻ゼロにおける振動子の周期内の位置を定めるラジアン単位の角度です。単位は必ず統一してください。ヘルツで表す通常の周波数は角周波数とは異なりますが、周波数を二倍の pi で乗じることで角周波数へ変換できます。負の振幅でも式は数学的に定義されますが、一般的な物理の記述では振幅はゼロ以上の大きさです。負の振幅は、位相を pi ラジアンずらすことと同等です。理想モデルを選択した原点より前まで延長する場合は、負の時刻も指定できます。この計算機は実際の JSON 数値を要求します。数値に見える文字列、空の値、無限大、数値ではない要素を拒否するため、書式の誤りによって物理的な意味が知らないうちに変わることはありません。
余弦による計算方法をご確認ください
変位は、角周波数と時刻の積に位相を加えた値の余弦へ、振幅を乗じて求めます。最初に角周波数と時刻を乗じると、時間原点から蓄積した位相が得られます。そこへ位相定数を加えることで、指定時刻における振動子の全位相になります。余弦はこの位相をマイナス一から一までの値へ写し、振幅を乗じることでメートル単位へ拡大します。全位相がゼロなら正の最大変位、pi の二分の一なら平衡位置、pi なら負の最大変位、二 pi なら開始位置です。この符号規約は単振動の余弦形式に対応します。正弦形式を使う資料も矛盾しておらず、両形式には位相のずれがあるだけです。結果には JavaScript の浮動小数点演算を使用します。そのため、数学上は正確にゼロとなる値でも、ごく小さな残差として表示される場合があります。pi や三角関数値は通常、二進数で厳密に表現できないためです。
モデルの適用範囲内で結果をご利用ください
返される変位は、平衡位置を基準とする符号付きの瞬間的な位置であり、移動した総距離ではありません。正の結果は座標系で正と定めた側、負の結果は反対側を示します。この計算は理想的な単振動を表し、振幅と角周波数は一定です。減衰、外力、非線形な剛性、測定の不確かさは含みません。教科書の質量ばね系、小角近似、理想振動の確認、決定論的なシミュレーション入力に適しています。実在する減衰振動子では振幅が時間とともに変化するため、この式だけでは不十分です。速度と加速度も、変位を速度として扱うのではなく、それぞれの導関数から求める必要があります。実験データと比較する際は、時間原点と位相規約が一致していることをご確認ください。APIによる各計算の料金は $0.002 です。ブラウザー版では同じ決定論的な式をローカルで実行できます。ネットワーク、乱数、時計を使用しないため、同一の数値入力は常に同じ計算経路を通り、同じ直列化結果を返します。
活用例
物理の演習問題を確認する
指定時刻で単振動の標準式を評価し、符号付き位置を解答過程と比較できます。
理想振動を標本化する
決定論的な質量ばねモデルや振動モデルについて、選択した時刻ごとの位置を計算できます。
位相規約を検証する
選択した位相定数が初期位置と周期内の後続位置をどのように変えるか確認できます。
よくある質問
どの方程式を使用しますか?
x(t) = A cos(ωt + φ) を使用します。A は振幅、ω は角周波数、t は時刻、φ は位相定数です。
どの単位で入力しますか?
振幅はメートル、角周波数はラジアン毎秒、位相はラジアン、時刻は秒で入力してください。結果はメートル単位です。
周波数をヘルツで入力できますか?
直接は入力できません。送信前に、ヘルツ単位の周波数 f を ω = 2πf により角周波数へ変換してください。
ゼロのはずの値が微小な数になるのはなぜですか?
浮動小数点演算では pi と三角関数値を近似するため、数学上のゼロに非常に小さな数値残差が生じる場合があります。
減衰や外力も含まれますか?
いいえ。振幅と角周波数が一定である理想的な単振動を計算します。
APIでの計算料金はいくらですか?
APIでの各計算は $0.002 です。ブラウザーでは計算機を無料でご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/mech/shm-displacement \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"amplitude_m":0.5,"angular_frequency_rad_s":3.141592653589793,"phase_rad":0,"time_s":0.5}'const res = await fetch("https://api.kit.forhosting.com/mech/shm-displacement", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"amplitude_m": 0.5,
"angular_frequency_rad_s": 3.141592653589793,
"phase_rad": 0,
"time_s": 0.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/shm-displacement",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"amplitude_m": 0.5,
"angular_frequency_rad_s": 3.141592653589793,
"phase_rad": 0,
"time_s": 0.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/shm-displacement", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"amplitude_m":0.5,"angular_frequency_rad_s":3.141592653589793,"phase_rad":0,"time_s":0.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"amplitude_m":0.5,"angular_frequency_rad_s":3.141592653589793,"phase_rad":0,"time_s":0.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/shm-displacement", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"amplitude_m": 0.5,
"angular_frequency_rad_s": 3.141592653589793,
"phase_rad": 0,
"time_s": 0.5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.shm_displacement",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |