SHM maximum acceleration calculator
An oscillation with a 0.15 m amplitude at 4 rad/s reaches a peak acceleration of 2.4 m/s². Enter amplitude and angular frequency to get the largest acceleration of an ideal vibration, for homework, lab work or a first screening of vibration loads. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Amplitude
- 0.15
- Angular frequency
- 4
- Angular frequency squared
- 16
- Maximum acceleration
- 2.4
The SHM maximum acceleration calculator finds the greatest acceleration magnitude reached by an ideal harmonic oscillator. With amplitude in metres and angular frequency in radians per second, the result is in metres per second squared. It is useful for checking spring-mass exercises, vibration estimates, laboratory calculations, and automated engineering worksheets. The calculation is deterministic, requires no network access, and clearly rejects a negative amplitude instead of silently treating an invalid magnitude as physical data.
Why maximum acceleration equals amplitude times angular frequency squared
Simple harmonic motion can be written as x(t) = A cos(ωt + φ), where A is the displacement amplitude, ω is angular frequency, φ is phase, and t is time. Differentiating displacement twice gives acceleration a(t) = −ω²x(t). The minus sign means acceleration points toward equilibrium, opposite the instantaneous displacement.
Its magnitude is therefore ω² times the magnitude of displacement. The oscillator reaches its greatest displacement magnitude at either turning point, where |x| = A, so its greatest acceleration magnitude is Aω². Phase does not appear in the peak formula because phase only changes when the turning points occur, not their displacement or acceleration magnitudes.
The calculator reports a non-negative peak magnitude rather than the signed acceleration at one turning point. If amplitude is entered in metres and angular frequency in radians per second, multiplying metres by reciprocal seconds squared produces metres per second squared. Radians are dimensionless in this calculation.
A zero amplitude produces zero peak acceleration, as expected for an oscillator that never leaves equilibrium.
Using peak acceleration in physics and vibration work
Peak acceleration is a compact way to compare ideal oscillations because angular frequency has a squared effect. Doubling amplitude doubles the peak acceleration, while doubling angular frequency multiplies it by four. That sensitivity matters in vibration isolation, where a modest frequency increase can sharply raise inertial loading even when displacement remains small.
Students can use the result to check a derivative-based solution for a spring-mass oscillator or connect the SHM equations for displacement, velocity, and acceleration. Laboratory teams can estimate the largest ideal acceleration from a measured motion amplitude and an angular frequency obtained from a fitted sinusoid. Engineers can use it as an early screening value for components subjected to approximately sinusoidal motion, provided they remember that real systems may include damping, multiple frequencies, impacts, or nonlinear stiffness.
This calculator does not simulate those effects and does not determine phase-dependent instantaneous acceleration. It supplies the closed-form ideal SHM peak only.
What you can do with it
Check SHM homework
Verify the peak acceleration derived from a displacement amplitude and angular frequency without evaluating the full time-dependent motion.
Screen vibration loads
Estimate the largest ideal sinusoidal acceleration for an early component or isolation-system calculation.
FAQ
Can amplitude be negative?
No. Amplitude is a magnitude and must be non-negative.
Can I enter frequency in hertz?
Not directly. Convert frequency f to angular frequency with ω = 2πf before using this calculator.
What units does the result use?
If amplitude is in metres and angular frequency is in radians per second, maximum acceleration is in metres per second squared. Other consistent length units produce the corresponding acceleration length unit per second squared.
What happens to peak acceleration if I double the frequency?
It becomes four times larger, because the angular frequency is squared. Doubling the amplitude only doubles the peak, which is why a modest rise in frequency can sharply increase the load on a part.
Why does the phase not change the maximum acceleration?
The phase only shifts when the oscillator reaches its turning points, not how far they are from equilibrium. The peak is reached at those turning points, so its size depends only on amplitude and angular frequency.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/mech/shm-max-acceleration \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"amplitude":0.15,"angular_frequency":4}'const res = await fetch("https://api.kit.forhosting.com/mech/shm-max-acceleration", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"amplitude": 0.15,
"angular_frequency": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/shm-max-acceleration",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"amplitude": 0.15,
"angular_frequency": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/shm-max-acceleration", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"amplitude":0.15,"angular_frequency":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"amplitude":0.15,"angular_frequency":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/shm-max-acceleration", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"amplitude": 0.15,
"angular_frequency": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.shm_max_acceleration",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Enter its non-negative displacement amplitude and angular frequency, and the calculator applies a_max = Aω².
How to enter values and interpret the result
Angular frequency may be positive, zero, or negative in a mathematical input because squaring it produces the same peak acceleration; physical frequency is normally reported as non-negative. Do not enter ordinary frequency in hertz directly. If you know frequency f in cycles per second, first calculate ω = 2πf, then supply that angular frequency. For example, an amplitude of 0.15 metres and angular frequency of 4 radians per second give ω² = 16 and a maximum acceleration of 2.4 metres per second squared. Provide amplitude as a finite, non-negative number and angular_frequency as a finite number. Amplitude represents a magnitude, so negative amplitude is rejected with an invalid_input error rather than converted behind the scenes. The response echoes both inputs, returns angular_frequency_squared as the intermediate ω² value, and gives maximum_acceleration as Aω². It also includes the formula and a unit reminder. Extremely large finite inputs that overflow JavaScript arithmetic are rejected instead of returning Infinity, keeping every successful response valid JSON and suitable for deterministic automation.
Integration use cases
Automate laboratory worksheets
Turn fitted oscillation amplitudes and angular frequencies into repeatable maximum-acceleration results through the API.
Technical questions
What formula does the calculator use?
It uses a_max = Aω², where A is displacement amplitude and ω is angular frequency.
What does an API calculation cost?
A successful API item costs $0.002. The browser calculator runs free.