ERROR: ArgumentError: Package Javis not found in current path.
- Run `import Pkg; Pkg.add("Javis")` to install the Javis package.
Stacktrace:
[1] macro expansion
@ ./loading.jl:2296 [inlined]
[2] macro expansion
@ ./lock.jl:273 [inlined]
[3] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:2271
[4] #invoke_in_world#3
@ ./essentials.jl:1089 [inlined]
[5] invoke_in_world
@ ./essentials.jl:1086 [inlined]
[6] require(into::Module, mod::Symbol)
@ Base ./loading.jl:2260
[7] eval
@ ./boot.jl:430 [inlined]
[8] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
@ Base ./loading.jl:2734
[9] include_string
@ ./loading.jl:2718 [inlined]
[10] #69
@ ~/.julia/packages/Xranklin/6wt1L/src/context/code/eval.jl:91 [inlined]
[11] (::IOCapture.var"#5#9"{DataType, Xranklin.var"#69#70"{Module, String}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, Base.PipeEndpoint, Base.PipeEndpoint})()
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170
[12] with_logstate(f::IOCapture.var"#5#9"{DataType, Xranklin.var"#69#70"{Module, String}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, Base.PipeEndpoint, Base.PipeEndpoint}, logstate::Base.CoreLogging.LogState)
@ Base.CoreLogging ./logging/logging.jl:524
[13] with_logger(f::Function, logger::Base.CoreLogging.ConsoleLogger)
@ Base.CoreLogging ./logging/logging.jl:635
[14] capture(f::Xranklin.var"#69#70"{Module, String}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any})
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167
[15] _attempt_eval
@ ~/.julia/packages/Xranklin/6wt1L/src/context/code/eval.jl:90 [inlined]
[16] eval_nb_cell(mdl::Module, code::String; cell_name::String, repl_mode::Bool)
@ Xranklin ~/.julia/packages/Xranklin/6wt1L/src/context/code/eval.jl:73
[17] eval_nb_cell
@ ~/.julia/packages/Xranklin/6wt1L/src/context/code/eval.jl:45 [inlined]
[18] _eval_code_cell(mdl::Module, code::String, cell_name::String, repl_mode::Bool)
@ Xranklin ~/.julia/packages/Xranklin/6wt1L/src/context/code/notebook_code.jl:169
[19] eval_code_cell!(lc::Xranklin.LocalContext, cell_code::SubString{String}, cell_name::String; imgdir_html::String, imgdir_latex::String, force::Bool, indep::Bool, repl_mode::Bool)
@ Xranklin ~/.julia/packages/Xranklin/6wt1L/src/context/code/notebook_code.jl:126
[20] eval_code_cell!
@ ~/.julia/packages/Xranklin/6wt1L/src/context/code/notebook_code.jl:21 [inlined]
[21] html_code_block(b::FranklinParser.Block, lc::Xranklin.LocalContext)
@ Xranklin ~/.julia/packages/Xranklin/6wt1L/src/convert/markdown/rules/code.jl:267
It's no exaggeration to say that symmetry is the most important concept in physics. Not only does it form the basis of Noether's theorem (the most important theorem in physics), but it's also used extensively in particle physics, condensed matter physics, and statistical mechanics. Hell, you can even use symmetry to find the energy spectrum of the hydrogen atom! [1] What is less well known, however, is that symmetry can find use even in basic mechanics questions. Today I want to share with you a problem I recently came across, for which symmetry provides a wonderfully simple solution.
Bluesky user Greg Schwanbeck recently asked the following
Here's my "Physics Problem of the Day" for you! My #Physics POTDs are designed to be interesting, fun and/or challenging for high school physics students, or just physics enthusiasts in general. Feel free to reply with your answers/solutions! #physicsed #edusky #PhysicsPOTD
— Greg Schwanbeck (@gregschwanbeck.bsky.social) 15 November 2024 at 12:07
[image or embed]
and being as wildly susceptible to nerd-sniping as I am, I immediately picked up a pen and paper.
Before we get to the interesting stuff though, to truly appreciate what's going here we've got to solve things the old-fashioned way. So roll up your sleeves, grab your pen and paper, and let's do this...
We assume the only force acting on the balls is gravity, giving them an acceleration in the \(y\)-direction of \(-g\). We'll denote the \(x\)-component of the truck's acceleration (this is what we're trying to find) as \(a_x\), allowing us to define the accelerations of the truck and the two balls as
\[ \vec{a}_A = \begin{pmatrix}0 \\ -g\end{pmatrix} \qquad \vec{a}_B = \begin{pmatrix} 0 \\ -g\end{pmatrix} \qquad \vec{a}_C = \begin{pmatrix} a_x \\ 0\end{pmatrix} \,. \]We also know that balls have initial total velocities \(v_A\) and \(v_B\), fired \(45^\circ\) to the \(x\)-axis, and so
\[ \vec{v}_A = \frac{1}{\sqrt{2}}\begin{pmatrix}v_A \\ v_A\end{pmatrix} \qquad \vec{v}_B = \frac{1}{\sqrt{2}}\begin{pmatrix} v_B \\ v_B\end{pmatrix} \qquad \vec{v}_C = \vec{0} \,. \]Finally we can apply standard kinematics formulae to find the positions of these entities[3] at some time \(t\),
\[ \vec{x}_A\left(t\right) = \vec{v}_A t + \frac{1}{2} \vec{a}_A t^2 \qquad \vec{x}_B\left(t\right) = \vec{v}_B t + \frac{1}{2} \vec{a}_B t^2 \qquad \vec{x}_C\left(t\right) = \frac{1}{2} \vec{a}_C t^2 \,. \]So we've set up our problem, but now we need to solve it... If we denote the time that ball A reaches the ground as \(t_A\) and the time that ball B reaches the ground as \(t_B\), then we can use the fact that we need \(\vec{x}_C\left(t_A\right) = \vec{x}_A\left(t_A\right)\) and \(\vec{x}_C\left(t_B\right) = \vec{x}_B\left(t_B\right)\) to set up four simultaneous equations:
\[ \begin{aligned}\frac{1}{2} a_x t_A^2 &= \frac{1}{\sqrt{2}} v_A t_A \\ 0 &= \frac{1}{\sqrt{2}} v_A t_A - \frac{1}{2} g t_A^2 \\ \frac{1}{2} a_x t_B^2 &= \frac{1}{\sqrt{2}} v_B t_B \\ 0 &= \frac{1}{\sqrt{2}} v_B t_B - \frac{1}{2} g t_B^2 \,.\end{aligned} \]And you don't even need to do any extra calculation to spot that \(a_x\) must be \(g\). But that's an oddly specific value...
It would be easy to brush this off as a mere coincidence, but things like this are never a coincidence. Besides, take another look at those first two simultaneous equations. Here, I'll rearrange them to make it more obvious.
\[ \begin{aligned}0 &= \frac{1}{\sqrt{2}} v_A t_A - \frac{1}{2} a_x t_A^2 \\ 0 &= \frac{1}{\sqrt{2}} v_A t_A - \frac{1}{2} g t_A^2 \,.\end{aligned} \]They're the same equation...
Now it's not at all obvious why this should be. The first equation comes from matching up the \(x\)-components the position of ball A and the truck. The second equation, on the other hand, comes solely from ball A's movement, the movement of the truck is not involved at all!
Let's start thinking visually.
ERROR: UndefVarError: `Javis` not defined in `Main.__FRANKLIN_1703850`
Suggestion: check for spelling errors or missing imports.
Stacktrace: