Build the characteristic-root model of one mode
buildRootModel.RdThe roots \(a_n\) of the truncated inhomogeneous shear beam are tabulated
in CylinderRoots over the inhomogeneity exponent m and the truncation
ratio l. Method "exact" solves the characteristic relation of the beam
for every query; methods "lm" and "nlm" predict off-grid roots with a
polynomial surrogate fitted once to the whole table of the mode. The
root model is reused by evaluateRoot() for every query.
Value
The root model, a list with mode, method, table (the unique (l, m, an) rows
of the mode), fit (the surrogate, NULL for "exact"), and the
support loMin, loMax, moMin and moMax: for a surrogate the
minimum and maximum l and m of the table, outside which predictions
are extrapolations; for "exact" the domain of the relation,
\(0 \le \lambda < 1\) and \(0 \le m < 2\).
Mathematics
For the shear beam of height \(H\) truncated at \(h = \lambda H\)
with modulus \(G \propto z^m\), Dakoulas and Gazetas (1985) reduce the
free vibration to a Bessel equation of order \(q = m/(2-m)\) and
obtain the characteristic relation (hydrated copy, eq-free-characteristic)
$$J_{q+1}(a \lambda^{1-m/2})\, Y_q(a) - Y_{q+1}(a \lambda^{1-m/2})\, J_q(a) = 0,$$
whose ordered positive roots are \(a_n\), \(n = 1, 2, \ldots\); for
\(\lambda = 0\) the relation reduces to \(J_q(a) = 0\). Method
"exact" brackets the \(n\)-th sign change of the left-hand side on a
grid of step 0.02 between \(a = 0.05\) and \(a = 100 / (1 - \lambda)\)
and refines it with stats::uniroot() to a tolerance of \(10^{-10}\),
using R's fractional-order Bessel functions. The search is finite: a root
above the limit (for example mode 6 at \(m = 1.8\), \(\lambda = 0.5\), near 258.8)
is not found and evaluateRoot() stops with an error that names the limit.
With \(l_2 = l^2\) and \(m_2 = m^2\), the "lm" surrogate fits the
Gaussian linear model \(a_n \sim l + m + l_2 + m_2\) and the "nlm"
surrogate adds the interactions \(l m\) and \(l_2 m_2\). These fits
are numerical interpolants of the table CylinderRoots, whose roots the
"exact" method solves in R at every node of its grid; the fits
themselves do not solve the characteristic relation. The decision-tree
and random-forest surrogates of newmark 1.7.1 are not carried into this
version.
Examples
RootModel <- buildRootModel(mode = 1, method = "nlm")
evaluateRoot(RootModel, mo = 0.45, lo = 0.20)
#> mo lo an exact withinSupport
#> <num> <num> <num> <lgcl> <lgcl>
#> 1: 0.45 0.2 3.088358 TRUE TRUE