%23%20%2F%2F%2F%20script%0A%23%20requires-python%20%3D%20%22%3E%3D3.11%22%0A%23%20dependencies%20%3D%20%5B%22marimo%3E%3D0.23.9%22%2C%20%22numpy%3E%3D2.0%22%2C%20%22matplotlib%3E%3D3.9%22%2C%20%22urllib3%3E%3D2.2%22%5D%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.25.2%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Viscoelastic%20Models%20of%20Biological%20Tissues%0A%0A%20%20%20%20%3E%20Marcos%20Duarte%2C%20Renato%20Naville%20Watanabe%3Cbr%3E%0A%20%20%20%20%3E%20%5BLaboratory%20of%20Biomechanics%20and%20Motor%20Control%5D(https%3A%2F%2Fbmclab.pesquisa.ufabc.edu.br%2F)%3Cbr%3E%0A%20%20%20%20%3E%20Federal%20University%20of%20ABC%2C%20Brazil%0A%0A%20%20%20%20This%20notebook%20implements%20the%20viscoelastic%20models%20presented%20in%20Chapter%202%20of%20the%20book%0A%20%20%20%20*%22Dynamic%20Modeling%20of%20Musculoskeletal%20Motion%3A%20A%20Vectorized%20Approach%22*%20by%20Gary%20T.%20Yamaguchi.%0A%0A%20%20%20%20Lumped-parameter%20models%20are%20used%20to%20describe%0A%20%20%20%20the%20viscoelastic%20behavior%20of%20soft%20biological%20tissues%20(muscles%2C%20tendons%2C%20ligaments).%0A%0A%20%20%20%20%23%23%23%20Contents%3A%0A%20%20%20%201.%20**Basic%20Elements**%20%E2%80%94%20Ideal%20Spring%20and%20Ideal%20Dashpot%0A%20%20%20%202.%20**Maxwell%20Model**%20%E2%80%94%20Spring%20and%20dashpot%20in%20series%0A%20%20%20%203.%20**Voigt%20Model**%20%E2%80%94%20Spring%20and%20dashpot%20in%20parallel%0A%20%20%20%204.%20**Comparison%20with%20real%20tissue**%20%E2%80%94%20Limitations%20of%20Maxwell%20and%20Voigt%0A%20%20%20%205.%20**Kelvin%20Model%20(Standard%20Linear%20Solid)**%20%E2%80%94%20Spring%20in%20series%20with%20a%20Voigt%20branch%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20How%20to%20use%20this%20guide%0A%0A%20%20%20%20Predict%20the%20short-time%20and%20long-time%20limits%20before%20moving%20the%20sliders.%20We%20will%20build%20Maxwell%2C%20Voigt%20and%20standard-linear-solid%20responses%20from%20force%20and%20deformation%20compatibility.%20Work%20the%20exercises%20already%20distributed%20through%20each%20model%2C%20then%20compare%20their%20assumptions%20with%20tissue%20behavior.%0A%0A%20%20%20%20Try%20the%20distributed%20**Exercises**%20before%20opening%20their%20collapsed%20worked%20solutions.%20Then%20use%20the%20**Checkpoint%20questions**%20and%20attempt%20the%20**Problems**%20independently%3B%20their%20panels%20contain%20final%20answers%20only.%20Predict%20the%20effect%20of%20a%20parameter%20change%20before%20running%20it%2C%20and%20check%20units%20and%20limiting%20cases.%0A%0A%20%20%20%20**Opening%20challenge.**%20A%20tissue%20sample%20extends%20immediately%20under%20load%2C%20then%20creeps%20toward%20a%20finite%20limit.%20Which%20of%20the%20three%20models%20could%20reproduce%20both%20observations%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Python%20setup%0A%0A%20%20%20%20NumPy%20computes%20the%20model%20responses%20and%20Matplotlib%20draws%20the%20plots.%20The%20dependency%20declaration%20at%20the%20top%20of%20this%20file%20lists%20the%20packages%20used%20by%20this%20guide.%20Marimo%20runs%20cells%20in%20dependency%20order.%20Run%20the%20notebook%20in%20an%20editor%20to%20use%20its%20displays%20and%20controls%3B%20the%20computational%20examples%20below%20explain%20their%20inputs%20before%20using%20them.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20import%20matplotlib%0A%20%20%20%20matplotlib.rcParams.update(%7B%0A%20%20%20%20%20%20%20%20'figure.figsize'%3A%20(10%2C%205)%2C%0A%20%20%20%20%20%20%20%20'font.size'%3A%2012%2C%0A%20%20%20%20%20%20%20%20'axes.grid'%3A%20True%2C%0A%20%20%20%20%20%20%20%20'grid.alpha'%3A%200.3%2C%0A%20%20%20%20%20%20%20%20'lines.linewidth'%3A%202%2C%0A%20%20%20%20%7D)%0A%20%20%20%20return%20np%2C%20plt%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%20%20%20%20%23%23%201.%20Basic%20Mechanical%20Elements%0A%0A%20%20%20%20Viscoelastic%20models%20are%20built%20from%20two%20fundamental%20idealized%20elements%3A%0A%0A%20%20%20%20%23%23%23%201.1%20Ideal%20Spring%0A%0A%20%20%20%20An%20ideal%20linear%20spring%20generates%20a%20force%20proportional%20to%20its%20deformation%3A%0A%0A%20%20%20%20%24%24F_k%20%3D%20k%20%5Ccdot%20x%24%24%0A%0A%20%20%20%20where%3A%0A%20%20%20%20-%20%24F_k%24%20is%20the%20force%20exerted%20by%20the%20spring%0A%20%20%20%20-%20%24k%24%20is%20the%20stiffness%20constant%0A%20%20%20%20-%20%24x%24%20is%20the%20extension%20beyond%20the%20relaxed%20length%0A%0A%20%20%20%20**Ideal%20properties%3A**%0A%20%20%20%20-%20Massless%0A%20%20%20%20-%20Instantaneous%20deformation%20when%20subjected%20to%20a%20force%0A%20%20%20%20-%20No%20extension%20limit%0A%20%20%20%20-%20No%20residual%20deformation%0A%20%20%20%20-%20No%20energy%20dissipation%0A%0A%20%20%20%20%23%23%23%201.2%20Ideal%20Dashpot%0A%0A%20%20%20%20An%20ideal%20dashpot%20generates%20a%20force%20proportional%20to%20its%20rate%20of%20deformation%3A%0A%0A%20%20%20%20%24%24F_b%20%3D%20b%20%5Ccdot%20%5Cdot%7Bx%7D%24%24%0A%0A%20%20%20%20where%3A%0A%20%20%20%20-%20%24F_b%24%20is%20the%20force%20exerted%20by%20the%20dashpot%0A%20%20%20%20-%20%24b%24%20is%20the%20viscous%20damping%20coefficient%0A%20%20%20%20-%20%24%5Cdot%7Bx%7D%24%20is%20the%20rate%20of%20extension%20(velocity)%0A%0A%20%20%20%20**Ideal%20properties%3A**%0A%20%20%20%20-%20Massless%0A%20%20%20%20-%20**Cannot%20be%20deformed%20instantaneously**%20by%20a%20finite%20force%0A%20%20%20%20-%20Dissipates%20energy%20as%20heat%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt)%3A%0A%20%20%20%20fig_elem%2C%20(ax1%2C%20ax2)%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(12%2C%204))%0A%0A%20%20%20%20%23%20Spring%0A%20%20%20%20x_spring%20%3D%20np.linspace(0%2C%202%2C%20100)%0A%20%20%20%20k_values%20%3D%20%5B1%2C%202%2C%204%5D%0A%20%20%20%20for%20_k%20in%20k_values%3A%0A%20%20%20%20%20%20%20%20ax1.plot(x_spring%2C%20_k%20*%20x_spring%2C%20label%3Df'k%20%3D%20%7B_k%7D%20N%2Fm')%0A%20%20%20%20ax1.set_xlabel('Deformation%20x%20(m)')%0A%20%20%20%20ax1.set_ylabel('Force%20%24F_k%24%20(N)')%0A%20%20%20%20ax1.set_title('Ideal%20Spring%3A%20%24F_k%20%3D%20kx%24')%0A%20%20%20%20ax1.legend()%0A%0A%20%20%20%20%23%20Dashpot%0A%20%20%20%20xdot%20%3D%20np.linspace(0%2C%202%2C%20100)%0A%20%20%20%20b_values%20%3D%20%5B1%2C%202%2C%204%5D%0A%20%20%20%20for%20_b%20in%20b_values%3A%0A%20%20%20%20%20%20%20%20ax2.plot(xdot%2C%20_b%20*%20xdot%2C%20label%3Df'b%20%3D%20%7B_b%7D%20N%C2%B7s%2Fm')%0A%20%20%20%20ax2.set_xlabel(r'Velocity%20%24%5Cdot%7Bx%7D%24%20(m%2Fs)')%0A%20%20%20%20ax2.set_ylabel(r'Force%20%24F_b%24%20(N)')%0A%20%20%20%20ax2.set_title(r'Ideal%20Dashpot%3A%20%24F_b%20%3D%20b%5Cdot%7Bx%7D%24')%0A%20%20%20%20ax2.legend()%0A%0A%20%20%20%20fig_elem.tight_layout()%0A%20%20%20%20fig_elem%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.callout(mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%9D%20Exercises%20%E2%80%94%20Basic%20Elements**%0A%0A%20%20%20%201.%20A%20spring%20with%20%24k%20%3D%205%24%20N%2Fm%20is%20deformed%20by%20%24x%20%3D%200.3%24%20m.%20What%20is%20the%20force%20exerted%20by%20the%20spring%3F%0A%0A%20%20%20%202.%20A%20dashpot%20with%20%24b%20%3D%208%24%20N%C2%B7s%2Fm%20is%20subjected%20to%20an%20extension%20velocity%20%24%5Cdot%7Bx%7D%20%3D%200.5%24%20m%2Fs.%20What%20is%20the%20force%20in%20the%20dashpot%3F%0A%0A%20%20%20%203.%20If%20we%20double%20the%20stiffness%20constant%20%24k%24%20of%20a%20spring%2C%20what%20happens%20to%20the%20stored%20energy%20%24E%20%3D%20%5Cfrac%7B1%7D%7B2%7Dkx%5E2%24%20for%20the%20same%20deformation%20%24x%24%3F%0A%0A%20%20%20%204.%20A%20dashpot%20is%20a%20**dissipative**%20element.%20What%20does%20this%20mean%20in%20terms%20of%20energy%3F%20Can%20the%20energy%20be%20recovered%3F%0A%0A%20%20%20%205.%20Which%20of%20the%20two%20elements%20(spring%20or%20dashpot)%20can%20change%20the%20force%20**instantaneously**%20when%20the%20length%20changes%3F%20Which%20element%20makes%20the%20response%20depend%20on%20**time**%3F%0A%0A%20%20%20%206.%20In%20a%20**series**%20arrangement%2C%20which%20quantity%20is%20shared%20between%20the%20elements%20(force%20or%20deformation)%3F%20And%20in%20a%20**parallel**%20arrangement%3F%0A%20%20%20%20%22%22%22)%2C%20kind%3D%22warn%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solutions%20for%20this%20section%201%0A%0A%20%20%20%201.%20%24F%3Dkx%3D5(0.3)%3D1.5%24%20N.%0A%20%20%20%202.%20%24F%3Db%5Cdot%20x%3D8(0.5)%3D4%24%20N.%0A%20%20%20%203.%20%24E%3Dkx%5E2%2F2%24%20is%20proportional%20to%20k%20at%20fixed%20x%2C%20so%20energy%20doubles.%0A%20%20%20%204.%20A%20dashpot%20converts%20mechanical%20work%20to%20heat%3A%20%24P%3Db%5Cdot%20x%5E2%5Cge0%24%20is%20dissipated%2C%20not%20stored%20for%20elastic%20recovery.%0A%20%20%20%205.%20A%20spring%20follows%20imposed%20length%20immediately.%20An%20ideal%20instantaneous%20dashpot%20length%20jump%20would%20require%20an%20impulsive%20force%3B%20finite-rate%20motion%20gives%20its%20time%20dependence.%0A%20%20%20%206.%20Series%20elements%20carry%20equal%20force%20and%20their%20deformations%20add.%20Parallel%20elements%20share%20deformation%20and%20their%20forces%20add.%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%20%20%20%20%23%23%202.%20Maxwell%20Model%0A%0A%20%20%20%20The%20Maxwell%20model%20consists%20of%20a%20**spring%20and%20a%20dashpot%20connected%20in%20series**.%0A%0A%20%20%20%20%23%23%23%20Schematic%3A%0A%20%20%20%20%60%60%60%0A%20%20%20%20%E2%94%80%E2%94%80%2F%5C%2F%5C%2F%E2%94%80%E2%94%80%5B%E2%96%88%E2%96%88%E2%96%88%E2%96%88%5D%E2%94%80%E2%94%80%0A%20%20%20%20%20%20spring%20%20%20dashpot%0A%20%20%20%20%20%20(k)%20%20%20%20%20%20(b)%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20%23%23%23%20Fundamental%20relations%3A%0A%0A%20%20%20%20In%20a%20series%20connection%3A%0A%20%20%20%20-%20The%20**forces**%20in%20the%20spring%20and%20dashpot%20are%20**equal**%3A%20%24F%20%3D%20F_k%20%3D%20F_b%24%0A%20%20%20%20-%20The%20**deformations**%20are%20**additive**%3A%20%24x%20%3D%20x_k%20%2B%20x_b%24%0A%0A%20%20%20%20%23%23%23%20Governing%20differential%20equation%3A%0A%0A%20%20%20%20Differentiating%20the%20total%20deformation%3A%0A%0A%20%20%20%20%24%24%5Cdot%7Bx%7D%20%3D%20%5Cdot%7Bx%7D_k%20%2B%20%5Cdot%7Bx%7D_b%20%3D%20%5Cfrac%7B%5Cdot%7BF%7D%7D%7Bk%7D%20%2B%20%5Cfrac%7BF%7D%7Bb%7D%24%24%0A%0A%20%20%20%20Rearranging%3A%0A%0A%20%20%20%20%24%24%5Cboxed%7B%5Cdot%7BF%7D%20%2B%20%5Cfrac%7Bk%7D%7Bb%7DF%20%3D%20k%5Cdot%7Bx%7D%7D%24%24%0A%0A%20%20%20%20%23%23%23%20Case%20I%3A%20Constant%20Load%20Response%20(%24F%24%20%3D%20constant%2C%20%24%5Cdot%7BF%7D%20%3D%200%24)%0A%0A%20%20%20%20The%20equation%20reduces%20to%20%24%5Cfrac%7BF%7D%7Bb%7D%20%3D%20%5Cdot%7Bx%7D%24%2C%20with%20solution%3A%0A%0A%20%20%20%20%24%24%5Cboxed%7Bx(t)%20%3D%20%5Cfrac%7BF%7D%7Bk%7D%20%2B%20%5Cfrac%7BF%7D%7Bb%7Dt%7D%24%24%0A%0A%20%20%20%20The%20first%20term%20is%20the%20instantaneous%20deformation%20of%20the%20spring%3B%20the%20second%20is%20the%20linearly%0A%20%20%20%20increasing%20deformation%20of%20the%20dashpot.%20**The%20tissue%20deforms%20indefinitely**%20%E2%80%94%20inadequate%0A%20%20%20%20behavior%20for%20long-term%20response.%0A%0A%20%20%20%20%23%23%23%20Case%20II%3A%20Constant%20Deformation%20(%24x%20%3D%20x_0%24%20%3D%20constant%2C%20%24%5Cdot%7Bx%7D%20%3D%200%24)%0A%0A%20%20%20%20The%20equation%20reduces%20to%20%24%5Cdot%7BF%7D%20%2B%20%5Cfrac%7Bk%7D%7Bb%7DF%20%3D%200%24%2C%20with%20solution%3A%0A%0A%20%20%20%20%24%24%5Cboxed%7BF(t)%20%3D%20kx_0%20%5Ccdot%20e%5E%7B-t%2F%5Ctau%7D%7D%24%24%0A%0A%20%20%20%20where%20%24%5Ctau%20%3D%20b%2Fk%24%20is%20the%20time%20constant.%20The%20force%20**decays%20exponentially%20to%20zero**%20%E2%80%94%0A%20%20%20%20also%20inadequate%2C%20since%20real%20tissues%20maintain%20a%20residual%20tension.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20slider_k_maxwell%20%3D%20mo.ui.slider(0.5%2C%2010.0%2C%20step%3D0.5%2C%20value%3D2.0%2C%20label%3D%22k%20(N%2Fm)%22)%0A%20%20%20%20slider_b_maxwell%20%3D%20mo.ui.slider(0.5%2C%2020.0%2C%20step%3D0.5%2C%20value%3D5.0%2C%20label%3D%22b%20(N%C2%B7s%2Fm)%22)%0A%20%20%20%20slider_F_maxwell%20%3D%20mo.ui.slider(1.0%2C%2020.0%2C%20step%3D1.0%2C%20value%3D10.0%2C%20label%3D%22F%20(N)%22)%0A%20%20%20%20slider_x0_maxwell%20%3D%20mo.ui.slider(0.1%2C%205.0%2C%20step%3D0.1%2C%20value%3D1.0%2C%20label%3D%22x%E2%82%80%20(m)%22)%0A%0A%20%20%20%20mo.md(f%22%22%22%0A%20%20%20%20%23%23%23%20Maxwell%20Model%20Parameters%0A%0A%20%20%20%20%7Bmo.hstack(%5Bslider_k_maxwell%2C%20slider_b_maxwell%2C%20slider_F_maxwell%2C%20slider_x0_maxwell%5D)%7D%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20slider_F_maxwell%2C%0A%20%20%20%20%20%20%20%20slider_b_maxwell%2C%0A%20%20%20%20%20%20%20%20slider_k_maxwell%2C%0A%20%20%20%20%20%20%20%20slider_x0_maxwell%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20np%2C%0A%20%20%20%20plt%2C%0A%20%20%20%20slider_F_maxwell%2C%0A%20%20%20%20slider_b_maxwell%2C%0A%20%20%20%20slider_k_maxwell%2C%0A%20%20%20%20slider_x0_maxwell%2C%0A)%3A%0A%20%20%20%20k_m%20%3D%20slider_k_maxwell.value%0A%20%20%20%20b_m%20%3D%20slider_b_maxwell.value%0A%20%20%20%20F_m%20%3D%20slider_F_maxwell.value%0A%20%20%20%20x0_m%20%3D%20slider_x0_maxwell.value%0A%20%20%20%20tau_m%20%3D%20b_m%20%2F%20k_m%0A%0A%20%20%20%20T_final_m%20%3D%2010%20*%20tau_m%0A%20%20%20%20N_m%20%3D%202000%0A%20%20%20%20dt_m%20%3D%20T_final_m%20%2F%20N_m%0A%20%20%20%20t_maxwell%20%3D%20np.zeros(N_m%20%2B%201)%0A%0A%20%20%20%20%23%20Case%20I%3A%20Constant%20load%20%E2%80%94%20ODE%3A%20dx%2Fdt%20%3D%20F%2Fb%0A%20%20%20%20%23%20Initial%20condition%3A%20x(0)%20%3D%20F%2Fk%20(instantaneous%20deformation%20of%20the%20spring)%0A%20%20%20%20x_maxwell_const_F%20%3D%20np.zeros(N_m%20%2B%201)%0A%20%20%20%20x_maxwell_const_F%5B0%5D%20%3D%20F_m%20%2F%20k_m%20%20%23%20instantaneous%20deformation%20of%20the%20spring%0A%20%20%20%20for%20_i%20in%20range(N_m)%3A%0A%20%20%20%20%20%20%20%20t_maxwell%5B_i%20%2B%201%5D%20%3D%20t_maxwell%5B_i%5D%20%2B%20dt_m%0A%20%20%20%20%20%20%20%20_dxdt%20%3D%20F_m%20%2F%20b_m%0A%20%20%20%20%20%20%20%20x_maxwell_const_F%5B_i%20%2B%201%5D%20%3D%20x_maxwell_const_F%5B_i%5D%20%2B%20_dxdt%20*%20dt_m%0A%0A%20%20%20%20%23%20Case%20II%3A%20Constant%20deformation%20%E2%80%94%20ODE%3A%20dF%2Fdt%20%3D%20-(k%2Fb)*F%0A%20%20%20%20%23%20Initial%20condition%3A%20F(0)%20%3D%20k*x0%0A%20%20%20%20F_maxwell_const_x%20%3D%20np.zeros(N_m%20%2B%201)%0A%20%20%20%20F_maxwell_const_x%5B0%5D%20%3D%20k_m%20*%20x0_m%0A%20%20%20%20for%20_i%20in%20range(N_m)%3A%0A%20%20%20%20%20%20%20%20_dFdt%20%3D%20-(k_m%20%2F%20b_m)%20*%20F_maxwell_const_x%5B_i%5D%0A%20%20%20%20%20%20%20%20F_maxwell_const_x%5B_i%20%2B%201%5D%20%3D%20F_maxwell_const_x%5B_i%5D%20%2B%20_dFdt%20*%20dt_m%0A%0A%20%20%20%20fig_maxwell%2C%20(ax_m1%2C%20ax_m2)%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(14%2C%205))%0A%0A%20%20%20%20%23%20Plot%20Case%20I%0A%20%20%20%20ax_m1.plot(t_maxwell%2C%20x_maxwell_const_F%2C%20color%3D'%232196F3'%2C%20linewidth%3D2.5)%0A%20%20%20%20ax_m1.axhline(y%3DF_m%20%2F%20k_m%2C%20color%3D'gray'%2C%20linestyle%3D'--'%2C%20alpha%3D0.5%2C%20label%3Df'Initial%20deformation%20%3D%20F%2Fk%20%3D%20%7BF_m%2Fk_m%3A.2f%7D')%0A%20%20%20%20ax_m1.set_xlabel('Time%20(s)')%0A%20%20%20%20ax_m1.set_ylabel('Deformation%20x(t)%20(m)')%0A%20%20%20%20ax_m1.set_title(f'Maxwell%20%E2%80%94%20Constant%20Load%20(F%20%3D%20%7BF_m%7D%20N)%5Cn%CF%84%20%3D%20b%2Fk%20%3D%20%7Btau_m%3A.2f%7D%20s%20%20%5BEuler%2C%20dt%20%3D%20%7Bdt_m%3A.4f%7D%20s%5D')%0A%20%20%20%20ax_m1.legend(fontsize%3D10)%0A%20%20%20%20ax_m1.set_ylim(bottom%3D0)%0A%0A%20%20%20%20%23%20Plot%20Case%20II%0A%20%20%20%20ax_m2.plot(t_maxwell%2C%20F_maxwell_const_x%2C%20color%3D'%23F44336'%2C%20linewidth%3D2.5)%0A%20%20%20%20ax_m2.axhline(y%3D0%2C%20color%3D'gray'%2C%20linestyle%3D'--'%2C%20alpha%3D0.5)%0A%20%20%20%20ax_m2.axvline(x%3Dtau_m%2C%20color%3D'orange'%2C%20linestyle%3D'%3A'%2C%20alpha%3D0.7%2C%20label%3Df'%CF%84%20%3D%20%7Btau_m%3A.2f%7D%20s')%0A%20%20%20%20ax_m2.set_xlabel('Time%20(s)')%0A%20%20%20%20ax_m2.set_ylabel('Force%20F(t)%20(N)')%0A%20%20%20%20ax_m2.set_title(f'Maxwell%20%E2%80%94%20Constant%20Deformation%20(x%E2%82%80%20%3D%20%7Bx0_m%7D%20m)%5Cn%CF%84%20%3D%20b%2Fk%20%3D%20%7Btau_m%3A.2f%7D%20s%20%20%5BEuler%2C%20dt%20%3D%20%7Bdt_m%3A.4f%7D%20s%5D')%0A%20%20%20%20ax_m2.legend(fontsize%3D10)%0A%20%20%20%20ax_m2.set_ylim(bottom%3D-0.1)%0A%0A%20%20%20%20fig_maxwell.tight_layout()%0A%20%20%20%20fig_maxwell%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.callout(mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%9D%20Exercises%20%E2%80%94%20Maxwell%20Model**%0A%0A%20%20%20%201.%20For%20a%20Maxwell%20model%20with%20%24k%20%3D%204%24%20N%2Fm%20and%20%24b%20%3D%2012%24%20N%C2%B7s%2Fm%2C%20calculate%20the%20time%20constant%20%24%5Ctau%24.%0A%0A%20%20%20%202.%20Under%20constant%20load%20%24F%20%3D%208%24%20N%20with%20%24k%20%3D%202%24%20N%2Fm%20and%20%24b%20%3D%2010%24%20N%C2%B7s%2Fm%3A%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20instantaneous%20deformation%20at%20%24t%20%3D%200%24%3F%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20deformation%20velocity%20of%20the%20dashpot%3F%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20total%20deformation%20at%20%24t%20%3D%205%24%20s%3F%0A%0A%20%20%20%203.%20Under%20constant%20deformation%20%24x_0%20%3D%202%24%20m%20with%20%24k%20%3D%203%24%20N%2Fm%20and%20%24b%20%3D%206%24%20N%C2%B7s%2Fm%3A%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20initial%20force%20%24F(0)%24%3F%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20force%20at%20%24t%20%3D%20%5Ctau%24%3F%20(Recall%3A%20%24e%5E%7B-1%7D%20%5Capprox%200.368%24)%0A%20%20%20%20%20%20%20%20-%20After%20how%20long%20does%20the%20force%20drop%20to%20half%20of%20the%20initial%20value%3F%0A%0A%20%20%20%204.%20Why%20is%20the%20Maxwell%20model%20inadequate%20for%20describing%20the%20long-term%20behavior%20of%20biological%20tissues%20under%20constant%20load%3F%0A%0A%20%20%20%205.%20Modify%20the%20parameters%20using%20the%20sliders%20above.%20What%20happens%20to%20the%20relaxation%20curve%20when%20%24b%24%20increases%20(keeping%20%24k%24%20fixed)%3F%20Why%3F%0A%0A%20%20%20%206.%20In%20the%20constant%20load%20plot%2C%20identify%20which%20part%20of%20the%20total%20deformation%20comes%20from%20the%20**spring**%20and%20which%20comes%20from%20the%20**dashpot**.%20Double%20%24b%24%20and%20then%20double%20%24k%24%20%E2%80%94%20which%20change%20alters%20the%20slope%20of%20the%20curve%3F%0A%0A%20%20%20%207.%20**Parameter%20audit%3A**%20In%20the%20constant%20deformation%20response%2C%20doubling%20%24b%24%20or%20doubling%20%24k%24%20%E2%80%94%20which%20of%20the%20two%20changes%20*increases*%20the%20relaxation%20time%20constant%20%24%5Ctau%24%3F%0A%20%20%20%20%22%22%22)%2C%20kind%3D%22warn%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solutions%20for%20this%20section%202%0A%0A%20%20%20%201.%20%24%5Ctau%3Db%2Fk%3D12%2F4%3D3%24%20s.%0A%20%20%20%202.%20Immediate%20extension%20%24F%2Fk%3D4%24%20m%3B%20dashpot%20rate%20%24F%2Fb%3D0.8%24%20m%2Fs%3B%20after%205%20s%2C%20%24x%3D4%2B0.8(5)%3D8%24%20m.%0A%20%20%20%203.%20%24F_0%3Dkx_0%3D6%24%20N%2C%20%24%5Ctau%3Db%2Fk%3D2%24%20s%2C%20%24F(%5Ctau)%3D6%2Fe%5Capprox2.207%24%20N%20and%20half-time%20%24%5Ctau%5Cln2%5Capprox1.386%24%20s.%0A%20%20%20%204.%20Its%20dashpot%20keeps%20extending%20at%20%24F%2Fb%24%20under%20a%20constant%20load%2C%20so%20the%20model%20has%20unbounded%20creep.%0A%20%20%20%205.%20Increasing%20b%20increases%20%24%5Ctau%24%3B%20force%20relaxes%20more%20slowly%20because%20the%20dashpot%20moves%20less%20for%20the%20same%20force.%0A%20%20%20%206.%20The%20intercept%20%24F%2Fk%24%20is%20spring%20extension%20and%20slope%20%24F%2Fb%24%20is%20dashpot%20creep.%20Doubling%20b%20halves%20the%20slope%3B%20doubling%20k%20halves%20the%20intercept.%0A%20%20%20%207.%20Doubling%20b%20doubles%20%24%5Ctau%24%3B%20doubling%20k%20halves%20it.%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%20%20%20%20%23%23%203.%20Voigt%20Model%0A%0A%20%20%20%20The%20Voigt%20model%20consists%20of%20a%20**spring%20and%20a%20dashpot%20connected%20in%20parallel**.%0A%0A%20%20%20%20%23%23%23%20Schematic%3A%0A%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20%E2%94%8C%E2%94%80%E2%94%80%2F%5C%2F%5C%2F%E2%94%80%E2%94%80%E2%94%90%0A%20%20%20%20%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%A4%20%20spring(k)%20%E2%94%9C%E2%94%80%E2%94%80%E2%94%80%E2%94%80%0A%20%20%20%20%20%20%20%20%E2%94%94%E2%94%80%E2%94%80%5B%E2%96%88%E2%96%88%E2%96%88%E2%96%88%5D%E2%94%80%E2%94%80%E2%94%98%0A%20%20%20%20%20%20%20%20dashpot(b)%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20%23%23%23%20Fundamental%20relations%3A%0A%0A%20%20%20%20In%20a%20parallel%20connection%3A%0A%20%20%20%20-%20The%20**deformations**%20in%20the%20spring%20and%20dashpot%20are%20**equal**%3A%20%24x%20%3D%20x_k%20%3D%20x_b%24%0A%20%20%20%20-%20The%20**forces**%20are%20**additive**%3A%20%24F%20%3D%20F_k%20%2B%20F_b%24%0A%0A%20%20%20%20%23%23%23%20Governing%20differential%20equation%3A%0A%0A%20%20%20%20%24%24%5Cboxed%7BF%20%3D%20kx%20%2B%20b%5Cdot%7Bx%7D%7D%24%24%0A%0A%20%20%20%20%23%23%23%20Case%20I%3A%20Constant%20Load%20Response%20(%24F%24%20%3D%20constant%2C%20%24%5Cdot%7BF%7D%20%3D%200%24)%0A%0A%20%20%20%20The%20solution%2C%20with%20initial%20condition%20%24x(0)%20%3D%200%24%20(the%20dashpot%20prevents%20instantaneous%20deformation)%3A%0A%0A%20%20%20%20%24%24%5Cboxed%7Bx(t)%20%3D%20%5Cfrac%7BF%7D%7Bk%7D%5Cleft(1%20-%20e%5E%7B-t%2F%5Ctau%7D%5Cright)%7D%24%24%0A%0A%20%20%20%20where%20%24%5Ctau%20%3D%20b%2Fk%24.%20The%20deformation%20**grows%20exponentially%20toward%20the%20asymptotic%20value**%20%24F%2Fk%24.%0A%20%20%20%20The%20long-term%20behavior%20is%20good%2C%20but%20the%20**instantaneous%20deformation**%20observed%0A%20%20%20%20in%20real%20tissues%20is%20missing.%0A%0A%20%20%20%20%23%23%23%20Case%20II%3A%20Constant%20Deformation%20Response%20(%24%5Cdot%7Bx%7D%20%3D%200%24)%0A%0A%20%20%20%20The%20equation%20trivially%20reduces%20to%3A%0A%0A%20%20%20%20%24%24%5Cboxed%7BF%20%3D%20kx%7D%24%24%0A%0A%20%20%20%20The%20force%20response%20is%20**constant%20and%20trivial**.%20However%2C%20to%20impose%20an%20instantaneous%0A%20%20%20%20deformation%20on%20the%20Voigt%20model%2C%20an%20**infinite%20force**%20would%20be%20required%20(since%20the%0A%20%20%20%20dashpot%20prevents%20instantaneous%20deformation)%2C%20which%20is%20not%20physically%20achievable.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20slider_k_voigt%20%3D%20mo.ui.slider(0.5%2C%2010.0%2C%20step%3D0.5%2C%20value%3D2.0%2C%20label%3D%22k%20(N%2Fm)%22)%0A%20%20%20%20slider_b_voigt%20%3D%20mo.ui.slider(0.5%2C%2020.0%2C%20step%3D0.5%2C%20value%3D5.0%2C%20label%3D%22b%20(N%C2%B7s%2Fm)%22)%0A%20%20%20%20slider_F_voigt%20%3D%20mo.ui.slider(1.0%2C%2020.0%2C%20step%3D1.0%2C%20value%3D10.0%2C%20label%3D%22F%20(N)%22)%0A%0A%20%20%20%20mo.md(f%22%22%22%0A%20%20%20%20%23%23%23%20Voigt%20Model%20Parameters%0A%0A%20%20%20%20%7Bmo.hstack(%5Bslider_k_voigt%2C%20slider_b_voigt%2C%20slider_F_voigt%5D)%7D%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%20slider_F_voigt%2C%20slider_b_voigt%2C%20slider_k_voigt%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt%2C%20slider_F_voigt%2C%20slider_b_voigt%2C%20slider_k_voigt)%3A%0A%20%20%20%20k_v%20%3D%20slider_k_voigt.value%0A%20%20%20%20b_v%20%3D%20slider_b_voigt.value%0A%20%20%20%20F_v%20%3D%20slider_F_voigt.value%0A%20%20%20%20tau_v%20%3D%20b_v%20%2F%20k_v%0A%0A%20%20%20%20T_final_v%20%3D%2010%20*%20tau_v%0A%20%20%20%20N_v%20%3D%202000%0A%20%20%20%20dt_v%20%3D%20T_final_v%20%2F%20N_v%0A%0A%20%20%20%20%23%20Case%20I%3A%20Constant%20load%20%E2%80%94%20ODE%3A%20dx%2Fdt%20%3D%20(F%20-%20k*x)%20%2F%20b%0A%20%20%20%20%23%20Initial%20condition%3A%20x(0)%20%3D%200%20(dashpot%20prevents%20instantaneous%20deformation)%0A%20%20%20%20t_voigt%20%3D%20np.zeros(N_v%20%2B%201)%0A%20%20%20%20x_voigt_const_F%20%3D%20np.zeros(N_v%20%2B%201)%0A%20%20%20%20x_voigt_const_F%5B0%5D%20%3D%200.0%0A%20%20%20%20for%20_i%20in%20range(N_v)%3A%0A%20%20%20%20%20%20%20%20t_voigt%5B_i%20%2B%201%5D%20%3D%20t_voigt%5B_i%5D%20%2B%20dt_v%0A%20%20%20%20%20%20%20%20_dxdt%20%3D%20(F_v%20-%20k_v%20*%20x_voigt_const_F%5B_i%5D)%20%2F%20b_v%0A%20%20%20%20%20%20%20%20x_voigt_const_F%5B_i%20%2B%201%5D%20%3D%20x_voigt_const_F%5B_i%5D%20%2B%20_dxdt%20*%20dt_v%0A%0A%20%20%20%20fig_voigt%2C%20(ax_v1%2C%20ax_v2)%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(14%2C%205))%0A%0A%20%20%20%20%23%20Plot%20Case%20I%0A%20%20%20%20ax_v1.plot(t_voigt%2C%20x_voigt_const_F%2C%20color%3D'%234CAF50'%2C%20linewidth%3D2.5)%0A%20%20%20%20ax_v1.axhline(y%3DF_v%20%2F%20k_v%2C%20color%3D'gray'%2C%20linestyle%3D'--'%2C%20alpha%3D0.5%2C%20label%3Df'Asymptote%20%3D%20F%2Fk%20%3D%20%7BF_v%2Fk_v%3A.2f%7D')%0A%20%20%20%20ax_v1.axvline(x%3Dtau_v%2C%20color%3D'orange'%2C%20linestyle%3D'%3A'%2C%20alpha%3D0.7%2C%20label%3Df'%CF%84%20%3D%20%7Btau_v%3A.2f%7D%20s')%0A%20%20%20%20ax_v1.set_xlabel('Time%20(s)')%0A%20%20%20%20ax_v1.set_ylabel('Deformation%20x(t)%20(m)')%0A%20%20%20%20ax_v1.set_title(f'Voigt%20%E2%80%94%20Constant%20Load%20(F%20%3D%20%7BF_v%7D%20N)%5Cn%CF%84%20%3D%20b%2Fk%20%3D%20%7Btau_v%3A.2f%7D%20s%20%20%5BEuler%2C%20dt%20%3D%20%7Bdt_v%3A.4f%7D%20s%5D')%0A%20%20%20%20ax_v1.legend(fontsize%3D10)%0A%20%20%20%20ax_v1.set_ylim(bottom%3D0)%0A%0A%20%20%20%20%23%20Plot%20Case%20II%20(trivial%20%E2%80%94%20no%20numerical%20integration%20needed)%0A%20%20%20%20x_val_v%20%3D%201.0%0A%20%20%20%20t_voigt2%20%3D%20np.linspace(0%2C%205%2C%20500)%0A%20%20%20%20F_voigt_const_x%20%3D%20np.ones_like(t_voigt2)%20*%20k_v%20*%20x_val_v%0A%20%20%20%20ax_v2.plot(t_voigt2%2C%20F_voigt_const_x%2C%20color%3D'%23F44336'%2C%20linewidth%3D2.5%2C%20label%3Df'F%20%3D%20kx%20%3D%20%7Bk_v*x_val_v%3A.1f%7D%20N')%0A%20%20%20%20ax_v2.set_xlabel('Time%20(s)')%0A%20%20%20%20ax_v2.set_ylabel('Force%20F(t)%20(N)')%0A%20%20%20%20ax_v2.set_title(f'Voigt%20%E2%80%94%20Constant%20Deformation%20(x%20%3D%20%7Bx_val_v%7D%20m)%5CnF%20%3D%20kx%20(constant%2C%20trivial)')%0A%20%20%20%20ax_v2.legend(fontsize%3D10)%0A%20%20%20%20ax_v2.set_ylim(bottom%3D0%2C%20top%3Dk_v%20*%20x_val_v%20*%203.5)%0A%0A%20%20%20%20%23%20Dirac%20impulse-style%20arrow%20at%20t%20%3D%200%20representing%20F%20%E2%86%92%20%E2%88%9E%0A%20%20%20%20_F_base%20%3D%20k_v%20*%20x_val_v%0A%20%20%20%20_F_top%20%3D%20_F_base%20*%203.0%0A%20%20%20%20ax_v2.annotate(''%2C%20xy%3D(0%2C%20_F_top)%2C%20xytext%3D(0%2C%20_F_base)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arrowprops%3Ddict(arrowstyle%3D'-%3E'%2C%20color%3D'%23D32F2F'%2C%20lw%3D2.5%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mutation_scale%3D20))%0A%20%20%20%20%23%20Filled%20triangle%20at%20the%20base%20of%20the%20arrow%20(as%20in%20impulse%20notation)%0A%20%20%20%20ax_v2.plot(0%2C%20_F_base%2C%20marker%3D'%5E'%2C%20markersize%3D0%2C%20color%3D'%23D32F2F')%0A%20%20%20%20%23%20Vertical%20line%20of%20the%20impulse%0A%20%20%20%20ax_v2.plot(%5B0%2C%200%5D%2C%20%5B0%2C%20_F_base%5D%2C%20color%3D'%23D32F2F'%2C%20linewidth%3D2.5)%0A%0A%20%20%20%20ax_v2.annotate(r'%24F%20%5Cto%20%5Cinfty%24%20(impulse)'%20%2B%20'%5Cn'%20%2B%20r'%24b%5Cdot%7Bx%7D%5C%2C%5Cdelta(t)%24'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xy%3D(0%2C%20_F_top)%2C%20xytext%3D(1.5%2C%20_F_top%20*%200.9)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arrowprops%3Ddict(arrowstyle%3D'-%3E'%2C%20color%3D'%23D32F2F'%2C%20lw%3D1.5)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fontsize%3D11%2C%20color%3D'%23D32F2F'%2C%20ha%3D'center'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fontweight%3D'bold'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bbox%3Ddict(boxstyle%3D'round%2Cpad%3D0.3'%2C%20facecolor%3D'%23FFEBEE'%2C%20edgecolor%3D'%23D32F2F'%2C%20alpha%3D0.8))%0A%0A%20%20%20%20fig_voigt.tight_layout()%0A%20%20%20%20fig_voigt%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.callout(mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%9D%20Exercises%20%E2%80%94%20Voigt%20Model**%0A%0A%20%20%20%201.%20For%20a%20Voigt%20model%20with%20%24k%20%3D%203%24%20N%2Fm%2C%20%24b%20%3D%209%24%20N%C2%B7s%2Fm%20under%20constant%20load%20%24F%20%3D%2015%24%20N%3A%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20time%20constant%20%24%5Ctau%24%3F%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20asymptotic%20value%20of%20the%20deformation%20%24x(%5Cinfty)%24%3F%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20deformation%20at%20%24t%20%3D%20%5Ctau%24%3F%20(Use%20%241%20-%20e%5E%7B-1%7D%20%5Capprox%200.632%24)%0A%0A%20%20%20%202.%20In%20the%20Voigt%20model%2C%20why%20is%20the%20initial%20deformation%20zero%20(%24x(0)%20%3D%200%24)%3F%20Which%20element%20prevents%20instantaneous%20deformation%3F%0A%0A%20%20%20%203.%20Explain%20physically%20why%20an%20**infinite%20force**%20would%20be%20needed%20to%20impose%20an%20instantaneous%20deformation%20on%20the%20Voigt%20model.%0A%0A%20%20%20%204.%20Compare%20the%20Voigt%20ODE%20(%24F%20%3D%20kx%20%2B%20b%5Cdot%7Bx%7D%24)%20with%20the%20Maxwell%20ODE%20(%24%5Cdot%7BF%7D%20%2B%20%5Cfrac%7Bk%7D%7Bb%7DF%20%3D%20k%5Cdot%7Bx%7D%24).%20Which%20is%20first-order%20in%20%24x%24%3F%20Which%20is%20first-order%20in%20%24F%24%3F%0A%0A%20%20%20%205.%20Using%20the%20sliders%2C%20observe%20what%20happens%20when%20%24b%20%5Cto%200%24.%20The%20Voigt%20response%20approaches%20which%20simple%20element%3F%0A%0A%20%20%20%206.%20**Design%20problem%3A**%20Choose%20values%20of%20%24k%24%20and%20%24b%24%20so%20that%20the%20Voigt%20model%20reaches%20**95%25**%20of%20the%20final%20deformation%20at%20%24t%20%3D%203%24%20s%20under%20constant%20load.%20*Hint%3A%20%241%20-%20e%5E%7B-3%7D%20%5Capprox%200.95%24%2C%20so%20%24%5Ctau%24%20should%20be...*%0A%20%20%20%20%22%22%22)%2C%20kind%3D%22warn%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solutions%20for%20this%20section%203%0A%0A%20%20%20%201.%20%24%5Ctau%3Db%2Fk%3D3%24%20s%2C%20%24x_%5Cinfty%3DF%2Fk%3D5%24%20m%20and%20%24x(%5Ctau)%3D5(1-e%5E%7B-1%7D)%5Capprox3.161%24%20m.%0A%20%20%20%202.%20The%20parallel%20dashpot%20cannot%20jump%20in%20length%20under%20finite%20force%2C%20so%20the%20total%20extension%20initially%20stays%20zero.%0A%20%20%20%203.%20A%20finite%20length%20step%20has%20an%20impulsive%20derivative%3B%20the%20ideal%20dashpot%20therefore%20requires%20a%20force%20impulse.%20This%20is%20a%20mathematical%20idealization%2C%20not%20an%20ordinary%20finite%20force%20value.%0A%20%20%20%204.%20With%20force%20prescribed%2C%20Voigt%20gives%20a%20first-order%20ODE%20for%20x%3B%20with%20deformation%20prescribed%2C%20Maxwell%20gives%20a%20first-order%20ODE%20for%20F.%0A%20%20%20%205.%20As%20b%20tends%20to%20zero%2C%20the%20finite-time%20response%20approaches%20an%20ideal%20spring%3B%20the%20initial%20transient%20shrinks%20to%20zero%20duration.%0A%20%20%20%206.%20Choose%20%24b%2Fk%3D3%2F%5B-%5Cln(0.05)%5D%5Capprox1.00142%24%20s%2C%20for%20example%20k%3D3%20N%2Fm%20and%20b%E2%89%883.00425%20N%20s%2Fm.%20Using%20b%2Fk%3D1%20s%20gives%20approximately%2095.02%25.%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%20%20%20%20%23%23%204.%20Comparison%3A%20Maxwell%20vs%20Voigt%20vs%20Real%20Tissue%0A%0A%20%20%20%20The%20table%20below%20summarizes%20the%20limitations%20of%20each%20model%20compared%20with%20the%20real%0A%20%20%20%20behavior%20of%20biological%20tissues%20(Figure%202.16)%3A%0A%0A%20%20%20%20%7C%20Behavior%20%7C%20Real%20Tissue%20%7C%20Maxwell%20%7C%20Voigt%20%7C%0A%20%20%20%20%7C%3A---%7C%3A---%3A%7C%3A---%3A%7C%3A---%3A%7C%0A%20%20%20%20%7C%20**Constant%20load%20%E2%80%94%20instantaneous%20deformation**%20%7C%20%E2%9C%85%20Yes%20%7C%20%E2%9C%85%20Yes%20%7C%20%E2%9D%8C%20No%20%7C%0A%20%20%20%20%7C%20**Constant%20load%20%E2%80%94%20finite%20asymptote**%20%7C%20%E2%9C%85%20Yes%20%7C%20%E2%9D%8C%20No%20(grows%20linearly)%20%7C%20%E2%9C%85%20Yes%20%7C%0A%20%20%20%20%7C%20**Constant%20deformation%20%E2%80%94%20initial%20force**%20%7C%20%E2%9C%85%20Finite%20%7C%20%E2%9C%85%20Finite%20%7C%20%E2%9D%8C%20Infinite%20%7C%0A%20%20%20%20%7C%20**Constant%20deformation%20%E2%80%94%20relaxation%20to%20value%20%3E0**%20%7C%20%E2%9C%85%20Yes%20%7C%20%E2%9D%8C%20No%20(decays%20to%20zero)%20%7C%20%E2%9C%85%20Yes%20(trivial)%20%7C%0A%0A%20%20%20%20**Conclusion%3A**%20Neither%20model%20alone%20can%20adequately%20reproduce%0A%20%20%20%20the%20behavior%20of%20biological%20tissues%20under%20**all**%20conditions.%20We%20need%20a%0A%20%20%20%20model%20that%20combines%20the%20qualities%20of%20both%20%E2%80%94%20this%20is%20the%20**Kelvin%20Model**%20(Section%205).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Real%20behavior%20of%20biological%20tissues%20(Figure%202.16%20%E2%80%94%20Yamaguchi)%0A%0A%20%20%20%20The%20figure%20below%2C%20extracted%20from%20the%20book%2C%20shows%20the%20**experimentally%20observed**%20behavior%0A%20%20%20%20in%20real%20biological%20tissues%3A%0A%0A%20%20%20%20-%20**A%20%E2%80%94%20Constant%20load%20(*creep*)%3A**%20instantaneous%20deformation%20%2B%20slow%20deformation%20toward%20a%20finite%20asymptote%0A%20%20%20%20-%20**B%20%E2%80%94%20Constant%20deformation%20(*relaxation*)%3A**%20high%20initial%20force%20that%20decays%20to%20a%20**non-zero**%20asymptotic%20value%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo%2C%20repo_file)%3A%0A%20%20%20%20_img%20%3D%20mo.image(src%3Drepo_file(%22images%2Ffig2_16.png%22)%2C%20width%3D600)%0A%20%20%20%20mo.vstack(%5B%0A%20%20%20%20%20%20%20%20_img%2C%0A%20%20%20%20%20%20%20%20mo.md(%22*Figure%202.16%20%E2%80%94%20Physiological%20tissue%20responses%20to%20constant%20load%20and%20constant%20deformation%20(Yamaguchi)*%22)%2C%0A%20%20%20%20%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Notice%20how%20**none**%20of%20the%20models%20below%20(Maxwell%20or%20Voigt)%20can%20reproduce%0A%20%20%20%20**simultaneously**%20both%20behaviors%20shown%20in%20the%20figure.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt)%3A%0A%20%20%20%20%23%20Visual%20comparison%3A%20Maxwell%20vs%20Voigt%20(without%20Kelvin%20%E2%80%94%20not%20yet%20presented)%0A%20%20%20%20%23%20All%20solved%20by%20the%20Euler%20method%0A%20%20%20%20k_comp%20%3D%202.0%0A%20%20%20%20b_comp%20%3D%205.0%0A%20%20%20%20F_comp%20%3D%2010.0%0A%20%20%20%20x0_comp%20%3D%201.0%0A%20%20%20%20tau_comp%20%3D%20b_comp%20%2F%20k_comp%0A%0A%20%20%20%20T_final_comp%20%3D%2010%20*%20tau_comp%0A%20%20%20%20N_comp%20%3D%203000%0A%20%20%20%20dt_comp%20%3D%20T_final_comp%20%2F%20N_comp%0A%20%20%20%20t_comp%20%3D%20np.zeros(N_comp%20%2B%201)%0A%0A%20%20%20%20%23%20---%20Constant%20Load%20(Euler)%20---%0A%20%20%20%20%23%20Maxwell%3A%20dx%2Fdt%20%3D%20F%2Fb%2C%20x(0)%20%3D%20F%2Fk%0A%20%20%20%20x_maxwell_comp%20%3D%20np.zeros(N_comp%20%2B%201)%0A%20%20%20%20x_maxwell_comp%5B0%5D%20%3D%20F_comp%20%2F%20k_comp%0A%20%20%20%20%23%20Voigt%3A%20dx%2Fdt%20%3D%20(F%20-%20k*x)%2Fb%2C%20x(0)%20%3D%200%0A%20%20%20%20x_voigt_comp%20%3D%20np.zeros(N_comp%20%2B%201)%0A%0A%20%20%20%20for%20_i%20in%20range(N_comp)%3A%0A%20%20%20%20%20%20%20%20t_comp%5B_i%20%2B%201%5D%20%3D%20t_comp%5B_i%5D%20%2B%20dt_comp%0A%20%20%20%20%20%20%20%20%23%20Maxwell%0A%20%20%20%20%20%20%20%20x_maxwell_comp%5B_i%20%2B%201%5D%20%3D%20x_maxwell_comp%5B_i%5D%20%2B%20(F_comp%20%2F%20b_comp)%20*%20dt_comp%0A%20%20%20%20%20%20%20%20%23%20Voigt%0A%20%20%20%20%20%20%20%20x_voigt_comp%5B_i%20%2B%201%5D%20%3D%20x_voigt_comp%5B_i%5D%20%2B%20((F_comp%20-%20k_comp%20*%20x_voigt_comp%5B_i%5D)%20%2F%20b_comp)%20*%20dt_comp%0A%0A%20%20%20%20%23%20---%20Constant%20Deformation%20(Euler)%20---%0A%20%20%20%20%23%20Maxwell%3A%20dF%2Fdt%20%3D%20-(k%2Fb)*F%2C%20F(0)%20%3D%20k*x0%0A%20%20%20%20F_maxwell_comp%20%3D%20np.zeros(N_comp%20%2B%201)%0A%20%20%20%20F_maxwell_comp%5B0%5D%20%3D%20k_comp%20*%20x0_comp%0A%20%20%20%20%23%20Voigt%3A%20F%20%3D%20k*x%20(trivial%2C%20constant)%0A%20%20%20%20F_voigt_comp%20%3D%20np.ones(N_comp%20%2B%201)%20*%20k_comp%20*%20x0_comp%0A%0A%20%20%20%20for%20_i%20in%20range(N_comp)%3A%0A%20%20%20%20%20%20%20%20%23%20Maxwell%0A%20%20%20%20%20%20%20%20F_maxwell_comp%5B_i%20%2B%201%5D%20%3D%20F_maxwell_comp%5B_i%5D%20%2B%20(-(k_comp%20%2F%20b_comp)%20*%20F_maxwell_comp%5B_i%5D)%20*%20dt_comp%0A%0A%20%20%20%20fig_comp%2C%20axes_comp%20%3D%20plt.subplots(2%2C%202%2C%20figsize%3D(14%2C%2010))%0A%0A%20%20%20%20axes_comp%5B0%2C%200%5D.plot(t_comp%2C%20x_maxwell_comp%2C%20'--'%2C%20color%3D'%232196F3'%2C%20linewidth%3D2%2C%20label%3D'Maxwell')%0A%20%20%20%20axes_comp%5B0%2C%200%5D.plot(t_comp%2C%20x_voigt_comp%2C%20'--'%2C%20color%3D'%234CAF50'%2C%20linewidth%3D2%2C%20label%3D'Voigt')%0A%20%20%20%20axes_comp%5B0%2C%200%5D.set_xlabel('Time%20(s)')%0A%20%20%20%20axes_comp%5B0%2C%200%5D.set_ylabel('Deformation%20x(t)')%0A%20%20%20%20axes_comp%5B0%2C%200%5D.set_title('Constant%20Load%20%E2%80%94%20Deformation%20x(t)%20%20%5BEuler%5D')%0A%20%20%20%20axes_comp%5B0%2C%200%5D.legend()%0A%20%20%20%20axes_comp%5B0%2C%200%5D.annotate('Maxwell%3A%20grows%5Cnindefinitely%20%E2%9D%8C'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xy%3D(t_comp%5B-1%5D%2C%20x_maxwell_comp%5B-1%5D)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xytext%3D(t_comp%5B-1%5D*0.5%2C%20x_maxwell_comp%5B-1%5D*0.8)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fontsize%3D9%2C%20color%3D'%231565C0'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arrowprops%3Ddict(arrowstyle%3D'-%3E'%2C%20color%3D'%231565C0'))%0A%20%20%20%20axes_comp%5B0%2C%200%5D.annotate('Voigt%3A%20no%20instantaneous%5Cndeformation%20%E2%9D%8C'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xy%3D(0%2C%200)%2C%20xytext%3D(t_comp%5B-1%5D*0.3%2C%20x_voigt_comp%5B-1%5D*0.4)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fontsize%3D9%2C%20color%3D'%232E7D32'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arrowprops%3Ddict(arrowstyle%3D'-%3E'%2C%20color%3D'%232E7D32'))%0A%0A%20%20%20%20axes_comp%5B0%2C%201%5D.axhline(y%3DF_comp%2C%20color%3D'black'%2C%20linewidth%3D2)%0A%20%20%20%20axes_comp%5B0%2C%201%5D.set_xlabel('Time%20(s)')%0A%20%20%20%20axes_comp%5B0%2C%201%5D.set_ylabel('Force%20F%20(N)')%0A%20%20%20%20axes_comp%5B0%2C%201%5D.set_title(f'Applied%20Load%20(F%20%3D%20%7BF_comp%7D%20N)')%0A%20%20%20%20axes_comp%5B0%2C%201%5D.set_ylim(0%2C%20F_comp%20*%201.5)%0A%0A%20%20%20%20axes_comp%5B1%2C%200%5D.plot(t_comp%2C%20F_maxwell_comp%2C%20'--'%2C%20color%3D'%232196F3'%2C%20linewidth%3D2%2C%20label%3D'Maxwell')%0A%20%20%20%20axes_comp%5B1%2C%200%5D.plot(t_comp%2C%20F_voigt_comp%2C%20'--'%2C%20color%3D'%234CAF50'%2C%20linewidth%3D2%2C%20label%3D'Voigt')%0A%20%20%20%20axes_comp%5B1%2C%200%5D.set_xlabel('Time%20(s)')%0A%20%20%20%20axes_comp%5B1%2C%200%5D.set_ylabel('Force%20F(t)%20(N)')%0A%20%20%20%20axes_comp%5B1%2C%200%5D.set_title('Constant%20Deformation%20%E2%80%94%20Force%20F(t)%20%20%5BEuler%5D')%0A%20%20%20%20axes_comp%5B1%2C%200%5D.legend()%0A%20%20%20%20axes_comp%5B1%2C%200%5D.annotate('Maxwell%3A%20decays%20to%20zero%20%E2%9D%8C'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xy%3D(t_comp%5B-1%5D%2C%200)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xytext%3D(t_comp%5B-1%5D*0.5%2C%20F_maxwell_comp%5B0%5D*0.3)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fontsize%3D9%2C%20color%3D'%231565C0'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arrowprops%3Ddict(arrowstyle%3D'-%3E'%2C%20color%3D'%231565C0'))%0A%0A%20%20%20%20axes_comp%5B1%2C%201%5D.axhline(y%3Dx0_comp%2C%20color%3D'black'%2C%20linewidth%3D2)%0A%20%20%20%20axes_comp%5B1%2C%201%5D.set_xlabel('Time%20(s)')%0A%20%20%20%20axes_comp%5B1%2C%201%5D.set_ylabel('Deformation%20x%20(m)')%0A%20%20%20%20axes_comp%5B1%2C%201%5D.set_title(f'Applied%20Deformation%20(x%E2%82%80%20%3D%20%7Bx0_comp%7D%20m)')%0A%20%20%20%20axes_comp%5B1%2C%201%5D.set_ylim(0%2C%20x0_comp%20*%201.5)%0A%0A%20%20%20%20fig_comp.suptitle('Comparison%3A%20Maxwell%20vs%20Voigt%20%20%5BEuler%20Method%5D'%2C%20fontsize%3D14%2C%20fontweight%3D'bold'%2C%20y%3D1.01)%0A%20%20%20%20fig_comp.tight_layout()%0A%20%20%20%20fig_comp%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%20%20%20%20%23%23%205.%20Kelvin%20Model%20(Standard%20Linear%20Solid)%0A%0A%20%20%20%20The%20Kelvin%20solid%20here%20is%20a%20**series%20spring%20%24k_s%24%20followed%20by%20a%20Voigt%20branch**%20(%24k_p%24%20and%20%24b%24%20in%20parallel).%20A%20parallel%20spring%20plus%20a%20Maxwell%20branch%20is%20another%20standard-linear-solid%20representation%2C%20but%20its%20parameter%20values%20and%20equations%20are%20different.%20Do%20not%20exchange%20their%20labels%20without%20a%20parameter%20transformation.%0A%0A%20%20%20%20%23%23%23%20Diagram%0A%0A%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%E2%94%8C%E2%94%80%E2%94%80%2F%5C%2F%5C%2F%E2%94%80%E2%94%80%E2%94%90%0A%20%20%20%20o%E2%94%80%E2%94%80%2F%5C%2F%5C%2F%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%A4%20%20%20%20kp%20%20%20%E2%94%9C%E2%94%80%E2%94%80o%0A%20%20%20%20%20%20%20%20%20ks%20%20%20%20%20%20%20%20%20%20%20%E2%94%94%E2%94%80%E2%94%80%5B%E2%96%88%E2%96%88%E2%96%88%E2%96%88%5D%E2%94%80%E2%94%98%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20b%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20The%20series%20force%20is%20shared%2C%20and%20the%20Voigt%20branch%20shares%20deformation%3A%0A%20%20%20%20%24F%3Dk_s%20x_s%3Dk_p%20x_v%2Bb%5Cdot%20x_v%24%2C%20with%20%24x%3Dx_s%2Bx_v%24.%0A%20%20%20%20Eliminating%20%24x_s%24%20and%20%24x_v%24%20gives%0A%0A%20%20%20%20%24%24F%2B%5Cfrac%7Bb%7D%7Bk_s%2Bk_p%7D%5Cdot%20F%0A%20%20%20%20%3D%5Cfrac%7Bk_sk_p%7D%7Bk_s%2Bk_p%7Dx%2B%5Cfrac%7Bk_sb%7D%7Bk_s%2Bk_p%7D%5Cdot%20x.%24%24%0A%0A%20%20%20%20The%20**relaxation**%20time%20is%20%24%5Ctau_%5Cvarepsilon%3Db%2F(k_s%2Bk_p)%24%20and%20the%20**creep**%20time%20is%20%24%5Ctau_%5Csigma%3Db%2Fk_p%24.%20Thus%20%24%5Ctau_%5Csigma%3E%5Ctau_%5Cvarepsilon%24%20for%20positive%20spring%20stiffnesses.%0A%0A%20%20%20%20%23%23%23%20Case%20I%3A%20Constant%20Load%20(%24F%24%20%3D%20constant%2C%20%24%5Cdot%7BF%7D%20%3D%200%24)%0A%0A%20%20%20%20%24%24%5Cboxed%7Bx(t)%20%3D%20%5Cfrac%7BF%7D%7Bk_s%7D%20%2B%20%5Cfrac%7BF%7D%7Bk_p%7D%5Cleft(1%20-%20e%5E%7B-t%2F%5Ctau_%5Csigma%7D%5Cright)%7D%24%24%0A%0A%20%20%20%20-%20At%20%24t%20%3D%200%24%3A%20instantaneous%20deformation%20%24x(0)%20%3D%20F%2Fk_s%24%20(series%20spring)%0A%20%20%20%20-%20At%20%24t%20%5Cto%20%5Cinfty%24%3A%20%24x(%5Cinfty)%20%3D%20F%2Fk_s%20%2B%20F%2Fk_p%24%20(finite%20asymptote)%20%E2%9C%85%0A%0A%20%20%20%20%23%23%23%20Case%20II%3A%20Constant%20Deformation%20(%24%5Cdot%7Bx%7D%20%3D%200%24)%0A%0A%20%20%20%20%24%24%5Cboxed%7BF(t)%20%3D%20%5Cfrac%7Bk_p%20k_s%7D%7Bk_p%20%2B%20k_s%7Dx%20%2B%20%5Cleft(k_s%20-%20%5Cfrac%7Bk_p%20k_s%7D%7Bk_p%20%2B%20k_s%7D%5Cright)x%20%5Ccdot%20e%5E%7B-t%2F%5Ctau_%5Cvarepsilon%7D%7D%24%24%0A%0A%20%20%20%20-%20At%20%24t%20%3D%200%24%3A%20%24F(0)%20%3D%20k_s%20%5Ccdot%20x%24%20(series%20spring%20responds%20instantaneously)%20%E2%9C%85%0A%20%20%20%20-%20At%20%24t%20%5Cto%20%5Cinfty%24%3A%20%24F(%5Cinfty)%20%3D%20%5Cfrac%7Bk_p%20k_s%7D%7Bk_p%20%2B%20k_s%7D%20x%20%3E%200%24%20(relaxation%20to%20non-zero%20value)%20%E2%9C%85%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20slider_ks_kelvin%20%3D%20mo.ui.slider(0.5%2C%2010.0%2C%20step%3D0.5%2C%20value%3D3.0%2C%20label%3D%22ks%20(N%2Fm)%22)%0A%20%20%20%20slider_kp_kelvin%20%3D%20mo.ui.slider(0.5%2C%2010.0%2C%20step%3D0.5%2C%20value%3D1.5%2C%20label%3D%22kp%20(N%2Fm)%22)%0A%20%20%20%20slider_b_kelvin%20%3D%20mo.ui.slider(0.5%2C%2020.0%2C%20step%3D0.5%2C%20value%3D5.0%2C%20label%3D%22b%20(N%C2%B7s%2Fm)%22)%0A%20%20%20%20slider_F_kelvin%20%3D%20mo.ui.slider(1.0%2C%2020.0%2C%20step%3D1.0%2C%20value%3D10.0%2C%20label%3D%22F%20(N)%22)%0A%20%20%20%20slider_x0_kelvin%20%3D%20mo.ui.slider(0.1%2C%205.0%2C%20step%3D0.1%2C%20value%3D1.0%2C%20label%3D%22x%E2%82%80%20(m)%22)%0A%0A%20%20%20%20mo.md(f%22%22%22%0A%20%20%20%20%23%23%23%20Kelvin%20Model%20Parameters%0A%0A%20%20%20%20%7Bmo.hstack(%5Bslider_ks_kelvin%2C%20slider_kp_kelvin%2C%20slider_b_kelvin%5D)%7D%0A%20%20%20%20%7Bmo.hstack(%5Bslider_F_kelvin%2C%20slider_x0_kelvin%5D)%7D%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20slider_F_kelvin%2C%0A%20%20%20%20%20%20%20%20slider_b_kelvin%2C%0A%20%20%20%20%20%20%20%20slider_kp_kelvin%2C%0A%20%20%20%20%20%20%20%20slider_ks_kelvin%2C%0A%20%20%20%20%20%20%20%20slider_x0_kelvin%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20np%2C%0A%20%20%20%20plt%2C%0A%20%20%20%20slider_F_kelvin%2C%0A%20%20%20%20slider_b_kelvin%2C%0A%20%20%20%20slider_kp_kelvin%2C%0A%20%20%20%20slider_ks_kelvin%2C%0A%20%20%20%20slider_x0_kelvin%2C%0A)%3A%0A%20%20%20%20ks_kel%20%3D%20slider_ks_kelvin.value%0A%20%20%20%20kp_kel%20%3D%20slider_kp_kelvin.value%0A%20%20%20%20b_kel%20%3D%20slider_b_kelvin.value%0A%20%20%20%20F_kel%20%3D%20slider_F_kelvin.value%0A%20%20%20%20x0_kel%20%3D%20slider_x0_kelvin.value%0A%0A%20%20%20%20tau_eps_kel%20%3D%20b_kel%20%2F%20(ks_kel%20%2B%20kp_kel)%0A%20%20%20%20tau_sig_kel%20%3D%20b_kel%20%2F%20kp_kel%0A%20%20%20%20k_eq_kel%20%3D%20(kp_kel%20*%20ks_kel)%20%2F%20(kp_kel%20%2B%20ks_kel)%0A%0A%20%20%20%20T_final_kel%20%3D%2010%20*%20tau_sig_kel%0A%20%20%20%20N_kel%20%3D%203000%0A%20%20%20%20dt_kel%20%3D%20T_final_kel%20%2F%20N_kel%0A%20%20%20%20t_kelvin%20%3D%20np.zeros(N_kel%20%2B%201)%0A%0A%20%20%20%20%23%20Case%20I%3A%20Constant%20load%20%E2%80%94%20Euler%0A%20%20%20%20%23%20State%3A%20x_b%20(deformation%20of%20the%20Voigt%20part%3A%20dashpot%20%2B%20parallel%20spring)%0A%20%20%20%20%23%20ODE%3A%20dx_b%2Fdt%20%3D%20(F%20-%20kp*x_b)%20%2F%20b%0A%20%20%20%20%23%20x_total%20%3D%20F%2Fks%20%2B%20x_b%20(series%20spring%20deforms%20instantaneously)%0A%20%20%20%20x_b_kel%20%3D%20np.zeros(N_kel%20%2B%201)%0A%20%20%20%20x_kelvin_const_F%20%3D%20np.zeros(N_kel%20%2B%201)%0A%20%20%20%20x_kelvin_const_F%5B0%5D%20%3D%20F_kel%20%2F%20ks_kel%20%20%23%20instantaneous%20deformation%20of%20the%20series%20spring%0A%20%20%20%20for%20_i%20in%20range(N_kel)%3A%0A%20%20%20%20%20%20%20%20t_kelvin%5B_i%20%2B%201%5D%20%3D%20t_kelvin%5B_i%5D%20%2B%20dt_kel%0A%20%20%20%20%20%20%20%20_dx_b_dt%20%3D%20(F_kel%20-%20kp_kel%20*%20x_b_kel%5B_i%5D)%20%2F%20b_kel%0A%20%20%20%20%20%20%20%20x_b_kel%5B_i%20%2B%201%5D%20%3D%20x_b_kel%5B_i%5D%20%2B%20_dx_b_dt%20*%20dt_kel%0A%20%20%20%20%20%20%20%20x_kelvin_const_F%5B_i%20%2B%201%5D%20%3D%20F_kel%20%2F%20ks_kel%20%2B%20x_b_kel%5B_i%20%2B%201%5D%0A%0A%20%20%20%20%23%20Case%20II%3A%20Constant%20deformation%20%E2%80%94%20Euler%0A%20%20%20%20%23%20ODE%3A%20dF%2Fdt%20%3D%20-(F%20-%20k_eq*x0)%20%2F%20tau_eps%0A%20%20%20%20%23%20Initial%20condition%3A%20F(0)%20%3D%20ks*x0%0A%20%20%20%20F_kelvin_const_x%20%3D%20np.zeros(N_kel%20%2B%201)%0A%20%20%20%20F_kelvin_const_x%5B0%5D%20%3D%20ks_kel%20*%20x0_kel%0A%20%20%20%20for%20_i%20in%20range(N_kel)%3A%0A%20%20%20%20%20%20%20%20_dFdt%20%3D%20-(F_kelvin_const_x%5B_i%5D%20-%20k_eq_kel%20*%20x0_kel)%20%2F%20tau_eps_kel%0A%20%20%20%20%20%20%20%20F_kelvin_const_x%5B_i%20%2B%201%5D%20%3D%20F_kelvin_const_x%5B_i%5D%20%2B%20_dFdt%20*%20dt_kel%0A%0A%20%20%20%20fig_kelvin%2C%20(ax_k1%2C%20ax_k2)%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(14%2C%205))%0A%0A%20%20%20%20%23%20Plot%20Case%20I%0A%20%20%20%20ax_k1.plot(t_kelvin%2C%20x_kelvin_const_F%2C%20color%3D'%239C27B0'%2C%20linewidth%3D2.5)%0A%20%20%20%20ax_k1.axhline(y%3DF_kel%20%2F%20ks_kel%2C%20color%3D'%23E91E63'%2C%20linestyle%3D'%3A'%2C%20alpha%3D0.7%2C%20label%3Df'Instantaneous%20deformation%20%3D%20F%2Fks%20%3D%20%7BF_kel%2Fks_kel%3A.2f%7D')%0A%20%20%20%20ax_k1.axhline(y%3DF_kel%20%2F%20ks_kel%20%2B%20F_kel%20%2F%20kp_kel%2C%20color%3D'gray'%2C%20linestyle%3D'--'%2C%20alpha%3D0.5%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20label%3Df'Asymptote%20%3D%20F%2Fks%20%2B%20F%2Fkp%20%3D%20%7BF_kel%2Fks_kel%20%2B%20F_kel%2Fkp_kel%3A.2f%7D')%0A%20%20%20%20ax_k1.axvline(x%3Dtau_sig_kel%2C%20color%3D'orange'%2C%20linestyle%3D'%3A'%2C%20alpha%3D0.7%2C%20label%3Df'%CF%84_%CF%83%20%3D%20%7Btau_sig_kel%3A.2f%7D%20s')%0A%20%20%20%20ax_k1.set_xlabel('Time%20(s)')%0A%20%20%20%20ax_k1.set_ylabel('Deformation%20x(t)%20(m)')%0A%20%20%20%20ax_k1.set_title(f'Kelvin%20%E2%80%94%20Constant%20Load%20(F%20%3D%20%7BF_kel%7D%20N)%20%20%5BEuler%5D')%0A%20%20%20%20ax_k1.legend(fontsize%3D9)%0A%20%20%20%20ax_k1.set_ylim(bottom%3D0)%0A%0A%20%20%20%20%23%20Plot%20Case%20II%0A%20%20%20%20ax_k2.plot(t_kelvin%2C%20F_kelvin_const_x%2C%20color%3D'%23FF5722'%2C%20linewidth%3D2.5)%0A%20%20%20%20ax_k2.axhline(y%3Dks_kel%20*%20x0_kel%2C%20color%3D'%23E91E63'%2C%20linestyle%3D'%3A'%2C%20alpha%3D0.7%2C%20label%3Df'F(0)%20%3D%20ks%C2%B7x%E2%82%80%20%3D%20%7Bks_kel*x0_kel%3A.2f%7D')%0A%20%20%20%20ax_k2.axhline(y%3Dk_eq_kel%20*%20x0_kel%2C%20color%3D'gray'%2C%20linestyle%3D'--'%2C%20alpha%3D0.5%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20label%3Df'F(%E2%88%9E)%20%3D%20kp%C2%B7ks%2F(kp%2Bks)%C2%B7x%E2%82%80%20%3D%20%7Bk_eq_kel*x0_kel%3A.2f%7D')%0A%20%20%20%20ax_k2.axvline(x%3Dtau_eps_kel%2C%20color%3D'orange'%2C%20linestyle%3D'%3A'%2C%20alpha%3D0.7%2C%20label%3Df'%CF%84_%CE%B5%20%3D%20%7Btau_eps_kel%3A.2f%7D%20s')%0A%20%20%20%20ax_k2.set_xlabel('Time%20(s)')%0A%20%20%20%20ax_k2.set_ylabel('Force%20F(t)%20(N)')%0A%20%20%20%20ax_k2.set_title(f'Kelvin%20%E2%80%94%20Constant%20Deformation%20(x%E2%82%80%20%3D%20%7Bx0_kel%7D%20m)%20%20%5BEuler%5D')%0A%20%20%20%20ax_k2.legend(fontsize%3D9)%0A%20%20%20%20ax_k2.set_ylim(bottom%3D0)%0A%0A%20%20%20%20fig_kelvin.tight_layout()%0A%20%20%20%20fig_kelvin%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E2%9C%85%20Kelvin%20reproduces%20the%20behavior%20of%20real%20tissue%0A%0A%20%20%20%20Compare%20the%20plots%20above%20with%20**Figure%202.16**%20(Section%204)%3A%0A%0A%20%20%20%20%7C%20Behavior%20%7C%20Real%20Tissue%20(Fig.%202.16)%20%7C%20Kelvin%20%7C%0A%20%20%20%20%7C%3A---%7C%3A---%3A%7C%3A---%3A%7C%0A%20%20%20%20%7C%20Instantaneous%20deformation%20under%20constant%20load%20%7C%20%E2%9C%85%20%7C%20%E2%9C%85%20(%24x(0)%20%3D%20F%2Fk_s%24)%20%7C%0A%20%20%20%20%7C%20Finite%20asymptote%20under%20constant%20load%20%7C%20%E2%9C%85%20%7C%20%E2%9C%85%20(%24x(%5Cinfty)%20%3D%20F%2Fk_s%20%2B%20F%2Fk_p%24)%20%7C%0A%20%20%20%20%7C%20Finite%20initial%20force%20under%20constant%20deformation%20%7C%20%E2%9C%85%20%7C%20%E2%9C%85%20(%24F(0)%20%3D%20k_s%20x_0%24)%20%7C%0A%20%20%20%20%7C%20Relaxation%20to%20**non-zero**%20value%20%7C%20%E2%9C%85%20%7C%20%E2%9C%85%20(%24F(%5Cinfty)%20%3D%20k_%7Beq%7D%20x_0%20%3E%200%24)%20%7C%0A%0A%20%20%20%20The%20Kelvin%20model%20is%20the%20**simplest**%20model%20that%20**qualitatively**%20reproduces%20all%0A%20%20%20%20the%20behaviors%20observed%20in%20real%20biological%20tissues.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.callout(mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%9D%20Exercises%20%E2%80%94%20Kelvin%20Model**%0A%0A%20%20%20%201.%20For%20%24k_s%20%3D%204%24%20N%2Fm%2C%20%24k_p%20%3D%202%24%20N%2Fm%2C%20%24b%20%3D%206%24%20N%C2%B7s%2Fm%3A%0A%20%20%20%20%20%20%20%20-%20Calculate%20%24%5Ctau_%5Cvarepsilon%24%20and%20%24%5Ctau_%5Csigma%24.%20Which%20is%20larger%3F%20Why%3F%0A%20%20%20%20%20%20%20%20-%20Under%20load%20%24F%20%3D%2010%24%20N%2C%20what%20is%20the%20instantaneous%20deformation%3F%20And%20the%20final%20deformation%3F%0A%0A%20%20%20%202.%20Under%20constant%20deformation%20%24x_0%20%3D%201%24%20m%20with%20the%20parameters%20above%3A%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20initial%20force%20%24F(0)%24%3F%0A%20%20%20%20%20%20%20%20-%20What%20is%20the%20equilibrium%20force%20%24F(%5Cinfty)%24%3F%20(Calculate%20%24k_%7Beq%7D%20%3D%20%5Cfrac%7Bk_p%20k_s%7D%7Bk_p%20%2B%20k_s%7D%24)%0A%0A%20%20%20%203.%20Show%20that%20%24%5Ctau_%5Csigma%20%3E%20%5Ctau_%5Cvarepsilon%24%20always.%20*Hint%3A%20compare%20the%20expressions%20and%20use%20the%20fact%20that%20%24k_s%20%3E%200%24.*%0A%0A%20%20%20%204.%20What%20happens%20to%20the%20Kelvin%20model%20when%20%24k_p%20%5Cto%20%5Cinfty%24%3F%20Which%20simpler%20model%20does%20it%20reduce%20to%3F%0A%0A%20%20%20%205.%20And%20when%20%24k_s%20%5Cto%20%5Cinfty%24%3F%20Which%20model%20does%20it%20reduce%20to%3F%0A%0A%20%20%20%206.%20**Design%20problem%3A**%20Choose%20values%20of%20%24k_s%24%2C%20%24k_p%24%2C%20and%20%24b%24%20so%20that%20the%20Kelvin%20model%20has%20a%20**large**%20instantaneous%20deformation%20but%20only%20a%20small%20additional%20creep.%20*Hint%3A%20think%20about%20the%20relationship%20between%20%24F%2Fk_s%24%20and%20%24F%2Fk_p%24.*%0A%0A%20%20%20%207.%20What%20happens%20to%20the%20size%20of%20the%20instantaneous%20deformation%20when%20%24k_s%24%20**increases**%3F%20Use%20the%20sliders%20to%20verify.%0A%20%20%20%20%22%22%22)%2C%20kind%3D%22warn%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solutions%20for%20this%20section%204%0A%0A%20%20%20%201.%20For%20this%20series-spring%2FVoigt%20model%2C%20%24%5Ctau_%5Cvarepsilon%3Db%2F(k_s%2Bk_p)%3D1%24%20s%20and%20%24%5Ctau_%5Csigma%3Db%2Fk_p%3D3%24%20s.%20At%2010%20N%2C%20%24x(0%5E%2B)%3D10%2F4%3D2.5%24%20m%20and%20%24x_%5Cinfty%3D10%2F4%2B10%2F2%3D7.5%24%20m.%0A%20%20%20%202.%20At%20x%E2%82%80%3D1%20m%2C%20%24F_0%3Dk_sx_0%3D4%24%20N%20and%20%24F_%5Cinfty%3Dk_sk_px_0%2F(k_s%2Bk_p)%3D4%2F3%24%20N.%0A%20%20%20%203.%20%24%5Ctau_%5Csigma%2F%5Ctau_%5Cvarepsilon%3D(k_s%2Bk_p)%2Fk_p%3D1%2Bk_s%2Fk_p%3E1%24.%0A%20%20%20%204.%20An%20infinitely%20stiff%20parallel%20spring%20locks%20its%20branch%3B%20only%20the%20series%20spring%20k_s%20deforms.%0A%20%20%20%205.%20An%20infinitely%20stiff%20series%20spring%20leaves%20the%20Voigt%20element%20k_p%2Cb.%20Its%20ideal%20step-deformation%20force%20includes%20an%20impulse%20at%20t%3D0.%0A%20%20%20%206.%20Choose%20%24k_p%5Cgg%20k_s%24%3A%20for%20example%20k_s%3D1%2C%20k_p%3D10%20N%2Fm%20and%20b%3D5%20N%20s%2Fm.%20Under%20the%20same%20force%20the%20extra%20creep%20is%20only%20one%20tenth%20of%20the%20immediate%20extension.%0A%20%20%20%207.%20The%20initial%20extension%20%24F%2Fk_s%24%20decreases%20as%20k_s%20increases.%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.callout(mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%9D%20Exercises%20%E2%80%94%20Model%20Comparison**%0A%0A%20%20%20%201.%20Fill%20in%20the%20table%20below%20with%20%E2%9C%85%20or%20%E2%9D%8C%20for%20each%20model%3A%0A%0A%20%20%20%20%7C%20Behavior%20%7C%20Maxwell%20%7C%20Voigt%20%7C%20Kelvin%20%7C%0A%20%20%20%20%7C%3A---%7C%3A---%3A%7C%3A---%3A%7C%3A---%3A%7C%0A%20%20%20%20%7C%20Instantaneous%20deformation%20under%20load%20%7C%20%3F%20%7C%20%3F%20%7C%20%3F%20%7C%0A%20%20%20%20%7C%20Finite%20asymptote%20under%20constant%20load%20%7C%20%3F%20%7C%20%3F%20%7C%20%3F%20%7C%0A%20%20%20%20%7C%20Relaxation%20to%20value%20%24%3E%200%24%20%7C%20%3F%20%7C%20%3F%20%7C%20%3F%20%7C%0A%0A%20%20%20%202.%20A%20biological%20tissue%20is%20subjected%20to%20a%20constant%20load.%20An%20instantaneous%20deformation%20is%20observed%20followed%20by%20an%20increasing%20deformation%20that%20tends%20to%20a%20finite%20value.%20Which%20of%20the%20three%20models%20best%20describes%20this%20behavior%3F%20Justify.%0A%0A%20%20%20%203.%20Why%20do%20we%20need%20**at%20least%203%20parameters**%20(as%20in%20the%20Kelvin%20model)%20to%20adequately%20reproduce%20the%20viscoelastic%20behavior%20of%20biological%20tissues%3F%0A%0A%20%20%20%204.%20Choose%20**one**%20curve%20from%20the%20comparison%20plots%20(Section%204)%20and%20explain%20which%20**physical%20element**%20is%20responsible%20for%3A%20(a)%20the%20initial%20value%2C%20(b)%20the%20slope%2C%20and%20(c)%20the%20final%20value%20of%20the%20curve.%0A%20%20%20%20%22%22%22)%2C%20kind%3D%22warn%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solutions%20for%20this%20section%205%0A%0A%20%20%20%201.%20Instantaneous%20extension%3A%20Maxwell%20yes%2C%20Voigt%20no%2C%20Kelvin%20yes.%20Finite%20creep%20asymptote%3A%20Maxwell%20no%2C%20Voigt%20yes%2C%20Kelvin%20yes.%20**Smooth%20finite-force%20relaxation%20to%20a%20positive%20plateau%3A**%20Maxwell%20no%2C%20Voigt%20no%2C%20Kelvin%20yes.%20Voigt%20has%20an%20initial%20force%20impulse%20under%20an%20ideal%20strain%20step%2C%20followed%20by%20a%20constant%20spring%20force%2C%20not%20a%20smooth%20relaxation%20curve.%0A%20%20%20%202.%20Kelvin%20fits%20those%20two%20qualitative%20creep%20features%3A%20the%20series%20spring%20jumps%20and%20the%20Voigt%20branch%20adds%20bounded%20extension.%0A%20%20%20%203.%20To%20represent%20independently%20an%20instantaneous%20elastic%20response%2C%20a%20nonzero%20equilibrium%20response%20and%20a%20time%20scale%2C%20a%20standard%20linear%20solid%20needs%20two%20stiffnesses%20and%20one%20viscosity.%20This%20does%20not%20make%20it%20adequate%20for%20every%20tissue%20or%20every%20strain%20range.%0A%20%20%20%204.%20For%20Kelvin%20creep%2C%20the%20series%20spring%20sets%20the%20immediate%20extension%20F%2Fk_s%2C%20the%20dashpot%20sets%20the%20initial%20creep%20rate%20F%2Fb%2C%20and%20both%20springs%20set%20the%20final%20compliance%201%2Fk_s%2B1%2Fk_p.%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Checkpoint%20questions%0A%0A%20%20%20%201.%20What%20is%20continuous%20across%20elements%20in%20series%3F%0A%20%20%20%202.%20What%20is%20continuous%20across%20elements%20in%20parallel%3F%0A%20%20%20%203.%20Which%20model%20relaxes%20completely%20at%20fixed%20deformation%3F%0A%20%20%20%204.%20Does%20matching%20one%20creep%20curve%20validate%20a%20biological%20tissue%20model%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Checkpoint%20answers%0A%0A%20%20%20%201.%20Force.%0A%20%20%20%202.%20Deformation.%0A%20%20%20%203.%20Maxwell.%0A%20%20%20%204.%20No%3B%20also%20test%20relaxation%2C%20recovery%2C%20rate%20dependence%2C%20and%20the%20relevant%20strain%20range.%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Problems%0A%0A%20%20%20%201.%20A%20Maxwell%20model%20has%20%24k%3D5%24%20N%2Fm%20and%20%24b%3D15%24%20N%20s%2Fm.%20Give%20its%20relaxation%20time%20and%20the%20fraction%20of%20initial%20force%20after%206%20s.%0A%0A%20%20%20%202.%20A%20Voigt%20model%20has%20%24k%3D4%24%20N%2Fm%2C%20%24b%3D8%24%20N%20s%2Fm%20and%20applied%20force%2012%20N.%20Give%20its%20final%20extension%20and%20extension%20at%202%20s.%0A%0A%20%20%20%203.%20For%20the%20series-spring%2FVoigt%20Kelvin%20model%2C%20%24k_s%3D4%24%2C%20%24k_p%3D2%24%20N%2Fm%20and%20%24b%3D6%24%20N%20s%2Fm.%20Give%20relaxation%20and%20creep%20time%20constants.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Final%20answers%20to%20Problems%0A%0A%20%20%20%201.%203%20s%3B%20%24e%5E%7B-2%7D%3D0.1353%24.%0A%0A%20%20%20%202.%203%20m%3B%20%243(1-e%5E%7B-1%7D)%3D1.8964%24%20m.%0A%0A%20%20%20%203.%201%20s%20and%203%20s%2C%20respectively.%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Go%20deeper%0A%0A%20%20%20%20Use%20%5Bmuscle%20modeling%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fmuscle_modeling.py)%20to%20compare%20these%20passive-tissue%20assumptions%20with%20an%20active%20muscle%20model.%20Return%20to%20the%20assumptions%20behind%20each%20equation%20when%20applying%20it%20to%20a%20new%20experiment.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Video%20lectures%20on%20the%20Internet%0A%0A%20%20%20%20%5BMIT%20OpenCourseWare%5D(https%3A%2F%2Focw.mit.edu%2Fcourses%2F2-003sc-engineering-dynamics-fall-2011%2F)%20%E2%80%94%20Mechanical%20vibration%20lectures%3A%20review%20spring%2C%20damping%20and%20coupled-system%20responses%20before%20interpreting%20passive%20muscle-model%20elements.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20References%0A%0A%20%20%20%20-%20Yamaguchi%20GT%20(2001).%20*Dynamic%20Modeling%20of%20Musculoskeletal%20Motion%3A%20A%20Vectorized%20Approach%20for%20Biomechanical%20Analysis%20in%20Three%20Dimensions*.%20Springer.%20Chapter%202.%20%5BRepository%20reading%20copy%5D(..%2Fcourses%2Frefs%2FYamaguchi_ch2.pdf).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20try%3A%0A%20%20%20%20%20%20%20%20from%20notebook_resources%20import%20repo_file%0A%20%20%20%20except%20ModuleNotFoundError%20as%20_error%3A%0A%20%20%20%20%20%20%20%20if%20_error.name%20!%3D%20%22notebook_resources%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%0A%20%20%20%20%20%20%20%20raise%20ModuleNotFoundError(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22This%20notebook%20needs%20notebook_resources.py.%20Download%20it%20from%3A%5Cn%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%22https%3A%2F%2Fraw.githubusercontent.com%2FBMClab%2FBMC%2Fmaster%2Ffunctions%2Fnotebook_resources.py%5Cn%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Save%20it%20in%20the%20same%20folder%20as%20this%20notebook%2C%20then%20rerun%20this%20cell.%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20name%3D%22notebook_resources%22%2C%0A%20%20%20%20%20%20%20%20)%20from%20None%0A%20%20%20%20return%20(repo_file%2C)%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
5782d50e3491a7f372860729f9b5223d