physics · MIT License
Overview
Solve a selected constant-acceleration quantity from the available initial velocity, final velocity, acceleration, time, and displacement values.
- Tested on a TI calculator
- Downloaded 41 times
- Version 1.0.0
- 11874 bytes
- Uses math
Tried it? Did this program work on your calculator?
Before you run it
- TI-84 Plus CE Python · tested on OS 5.8.3, Python App 5.8.3.0048
- TI Connect CE .py conversion to a Python AppVar in RAM; physically verified one program at a time
- Acceleration is constant over the interval and all signed quantities share one direction convention.
- A solvable combination of known values is required and divisor values cannot be zero.
- Insufficient or incompatible known values produce no solution.
Try the DuckieDai calculator screen
Follow the reviewed program's real menu, prompts, validation, calculation, and result flow before downloading.
TI-84 Plus CE Python · screen preview
Learn the math
How the kinematics equations work
The idea
Constant-acceleration motion is described by five quantities: initial velocity, final velocity, acceleration, time, and displacement. Each kinematics equation links four of them.
So if you know three, you can find a fourth. The hard part on paper is choosing the right equation; this program chooses it for you.
The formula
v = v0 + a*t
dx = v0*t + 0.5*a*t^2
v^2 = v0^2 + 2*a*dx
dx = 0.5*(v0 + v)*t
v0- initial velocity (m/s)
v- final velocity (m/s)
a- acceleration (m/s^2)
t- time (s)
dx- displacement (m)
Using the program
- Choose the quantity you need: 1 final velocity, 2 initial velocity, 3 acceleration, 4 time, or 5 displacement.
- Type the values the problem gives you and press Enter on any you do not know.
- The program names the equation it used before showing the answer.
Worked example
A car starts from rest and accelerates at 2 m/s^2 for 5 s. How far does it go? Choose 5, enter v0 = 0, leave v blank, enter a = 2 and t = 5.
dx = v0*t + .5*a*t^2 = 0 + 0.5 x 2 x 25
The program shows dx = 25.0 meters.
Tips and common mistakes
- You need three known values. With fewer the program reports that there is not enough information.
- Starting from rest or coming to a stop gives you a velocity of 0 for free.
- Up and down, or forward and back, need opposite signs.
Where this comes up
Constant-acceleration motion is the first major unit in almost every physics course, and the same equations return in projectile motion, free fall, and stopping-distance problems.
Exact reviewed bytes
Source code
"""DuckieDai Smart Kinematics for TI-84 Plus CE Python."""from math import sqrtdef duckiedai_intro(program_name, wait=True):"""Show the reusable DuckieDai program opening."""title = program_name[:16]empty = 16 - len(title)left = empty // 2right = empty - leftprint("+----------------------+")print("| " + " " * left + title + " " * right + " |")print("| |")print("| __ |")print("| ___(o )> quack! |")print("| \\ <_. ) |")print("| `---' |")print("| by DuckieDai |")print("+----------------------+")print("Loading...")if wait:input("Press enter to start ")print("\n" * 6)def optional_number(prompt):"""Return a number or None if left blank."""while True:raw = input(prompt)if raw == "":return Nonetry:value = float(raw)if value > -1e100 and value < 1e100:return valueexcept ValueError:passprint("Number or blank only.")def show_answer(name, value, unit):input("Press enter for answer ")print("\n" * 6)print("ANSWER")print(name + " = " + str(value))print(unit)def main():duckiedai_intro("KINEMATIC SOLVER")print("SMART KINEMATICS")print()print("What do you need?")print()print("1. Final velocity")print("2. Initial velocity")print("3. Acceleration")print("4. Time")print("5. Displacement")print()target = input("Choose 1-5: ")print()print("Enter known values.")print("Leave unknowns blank.")print()# -------------------------# GET KNOWN VALUES# -------------------------if target != "2":v0 = optional_number("v0 (m/s): ")else:v0 = Noneif target != "1":v = optional_number("v (m/s): ")else:v = Noneif target != "3":a = optional_number("a (m/s^2): ")else:a = Noneif target != "4":t = optional_number("t (s): ")else:t = Noneif target != "5":dx = optional_number("dx (m): ")else:dx = Nonesolved = False# ==================================================# 1. SOLVE FINAL VELOCITY# ==================================================if target == "1":# v = v0 + a*tif (v0 is not None anda is not None andt is not None):print()print("Using:")print("v = v0 + a*t")v = v0 + a * tprint()print("v = " + str(v0) +" + (" + str(a) +" x " + str(t) + ")")show_answer("v",v,"m/s")solved = True# v^2 = v0^2 + 2*a*dxelif (v0 is not None anda is not None anddx is not None):inside = (v0 ** 2 +2 * a * dx)if inside >= 0:v = sqrt(inside)print()print("Using:")print("v^2=v0^2+2*a*dx")print()print("Rearranged:")print("v=+/-sqrt(")print("v0^2+2*a*dx)")print()print("ANSWER")print("v = +/- " + str(v))print("m/s")print()print("Direction decides")print("the correct sign.")solved = True# ==================================================# 2. SOLVE INITIAL VELOCITY# ==================================================elif target == "2":# v = v0 + a*tif (v is not None anda is not None andt is not None):print()print("Using:")print("v = v0 + a*t")print()print("Rearranged:")print("v0 = v - a*t")v0 = v - a * tshow_answer("v0",v0,"m/s")solved = True# dx = v0*t + 0.5*a*t^2elif (dx is not None anda is not None andt is not None andt != 0):print()print("Using:")print("dx=v0*t+.5*a*t^2")print()print("Rearranged:")print("v0=(dx-.5*a*t^2)/t")v0 = (dx -0.5 * a * t ** 2) / tshow_answer("v0",v0,"m/s")solved = True# v^2 = v0^2 + 2*a*dxelif (v is not None anda is not None anddx is not None):inside = (v ** 2 -2 * a * dx)if inside >= 0:v0 = sqrt(inside)print()print("Using:")print("v^2=v0^2+2*a*dx")print()print("Rearranged:")print("v0=+/-sqrt(")print("v^2-2*a*dx)")print()print("ANSWER")print("v0 = +/- " + str(v0))print("m/s")print()print("Direction decides")print("the correct sign.")solved = True# ==================================================# 3. SOLVE ACCELERATION# ==================================================elif target == "3":# v = v0 + a*tif (v is not None andv0 is not None andt is not None andt != 0):print()print("Using:")print("v = v0 + a*t")print()print("Rearranged:")print("a = (v-v0)/t")a = (v - v0) / tshow_answer("a",a,"m/s^2")solved = True# dx = v0*t + 0.5*a*t^2elif (dx is not None andv0 is not None andt is not None andt != 0):print()print("Using:")print("dx=v0*t+.5*a*t^2")print()print("Rearranged:")print("a=2(dx-v0*t)/t^2")a = (2 *(dx - v0 * t)/ (t ** 2))show_answer("a",a,"m/s^2")solved = True# v^2 = v0^2 + 2*a*dxelif (v is not None andv0 is not None anddx is not None anddx != 0):print()print("Using:")print("v^2=v0^2+2*a*dx")print()print("Rearranged:")print("a=(v^2-v0^2)/(2*dx)")a = (v ** 2 -v0 ** 2) / (2 * dx)show_answer("a",a,"m/s^2")solved = True# ==================================================# 4. SOLVE TIME# ==================================================elif target == "4":# v = v0 + a*tif (v is not None andv0 is not None anda is not None anda != 0):print()print("Using:")print("v = v0 + a*t")print()print("Rearranged:")print("t = (v-v0)/a")t = (v - v0) / ashow_answer("t",t,"seconds")solved = True# dx = v0*t + 0.5*a*t^2elif (dx is not None andv0 is not None anda is not None):print()print("Using:")print("dx=v0*t+.5*a*t^2")if a == 0:if v0 != 0:t = dx / v0print()print("Since a = 0:")print("t = dx/v0")show_answer("t",t,"seconds")solved = Trueelse:inside = (v0 ** 2 +2 * a * dx)if inside >= 0:root = sqrt(inside)t1 = (-v0 + root) / at2 = (-v0 - root) / aprint()print("Solving quadratic:")print()if t1 >= 0:print("t = " + str(t1) +" s")if t2 >= 0:print("t = " + str(t2) +" s")print()print("Use physical")print("positive time.")solved = True# ==================================================# 5. SOLVE DISPLACEMENT# ==================================================elif target == "5":# dx = v0*t + 0.5*a*t^2if (v0 is not None anda is not None andt is not None):print()print("Using:")print("dx=v0*t+.5*a*t^2")dx = (v0 * t +0.5 * a * t ** 2)show_answer("dx",dx,"meters")solved = True# v^2 = v0^2 + 2*a*dxelif (v is not None andv0 is not None anda is not None anda != 0):print()print("Using:")print("v^2=v0^2+2*a*dx")print()print("Rearranged:")print("dx=(v^2-v0^2)/(2*a)")dx = (v ** 2 -v0 ** 2) / (2 * a)show_answer("dx",dx,"meters")solved = True# ==================================================# COULD NOT SOLVE# ==================================================if not solved:print()print("Not enough usable")print("information.")print()print("Check the values")print("given in the problem.")print()print("DuckieDai says: done!")# TI-Python imports the selected AppVar rather than# setting __name__ to main.main()
- Filename
KINETICS.py- Size
- 11874 bytes
- SHA-256
5eb4efc0bee4bd73379ac513a08f05d889af8185695ff95053f6bbca30ec6bc2
Usage
Inputs
- Target quantity
- Known velocity, acceleration, time, and displacement values; unknown values are left blank
Outputs
- Solved target with the selected constant-acceleration equation and labelled unit
Units: Use one consistent system such as metres, seconds, metres per second, and metres per second squared.
Assumptions and limitations
Assumptions
- Acceleration is constant over the interval and all signed quantities share one direction convention.
Constraints
- A solvable combination of known values is required and divisor values cannot be zero.
Known failures
- Insufficient or incompatible known values produce no solution.
- Some quadratic situations may have multiple physical interpretations requiring user judgment.
Compatibility and review
- Review status
- Tested on a TI calculator
- Tested on
- TI-84 Plus CE Python; OS 5.8.3; Python App 5.8.3.0048; exact paginated .py transferred through TI Connect CE into RAM and tested individually
- What happened
- Passed: branded intro, target selection, optional value entry, compatible kinematics solution, and paginated answer screen ran on the physical calculator
- Dependencies
- math
- Suggested calculator name
KINETICS— you can give it another valid, unique name when you transfer it- Desktop test cases
- Not available for this interactive-only source
This exact source auto-launches an interactive calculator session, so compatibility evidence comes from the recorded physical-device review rather than an importable desktop fixture.
Transfer and launch
Download the .py file, send it to your calculator with TI Connect CE as KINETICS or another name, then open the Python App and try the worked example on this page first.
Full installation and troubleshooting guide. Check your teacher's or exam's rules before using any program.
Version history
- 1.0.0 — current version, published . Download this reviewed version
Related learning
Did a DuckieDai program help with your homework? Every program here is free. If you would like to say thanks, you can leave a tip on Cash App ($duckiedai214) or read what tips pay for.
Independent compatibility resource: Hidden Word Scanner is independent and is not affiliated with or endorsed by Texas Instruments. TI product names describe compatibility only.
Action-count privacy: Successful downloads, preview starts, and preview completions increment same-origin aggregate counters, and so does a Yes or No answer about whether the program worked. Your browser notes that you answered; that note is never sent to the site. No entered values, source text, IP address, account, cookie, device identifier, or fingerprint is stored with these counts.