# Question:Solving nonlinear ODE (nonlinear spring)

## Question:Solving nonlinear ODE (nonlinear spring)

Maple
Hi, I'am trying to solve a nonlinear (spring) ODE like: > ode := A*(diff(x(t), t, t)) + B*(diff(x(t), t)) + R(x(t)) = 1; ...So, I defined a nonlinear (elastic-plastic) resistance function R(x(t)): > xLast := 0; RLast := 0; Rmax := 1; > R := proc (x) > local RR, dx; > global xLast, RLast, Rmax, K; > dx := x-xLast; > RR := RLast+K*dx; > if Rmax <> elif RR <> end if; > xLast := x; RLast := RR; > return RR; > end proc; ...Set up the ODE: > xLast := 0; RLast := 0; > ode := A*(diff(x(t), t, t))+B*(diff(x(t), t))+R(x(t)) = 1; ...and got the error message: > Error, (in R) cannot determine if this expression is true or false: 1 smaller 2*x(t)... Of course Maple can't evaluate that expression... x(t) is unknown... I want to solve the ODE with numerical tools (dsolve) -- how can I go on with this problem? The Maple file can be fount at: View 6864_Maple_SDOF_nonlinear.mw on MapleNet or Download 6864_Maple_SDOF_nonlinear.mw
View file details Thanks for your help! Martien
﻿