Forward uncertainty quantification in dynamical systems is challenging due to non-smooth or locally oscillating nonlinear behaviors. Spline dimensional decomposition (SDD) addresses such nonlinearity by partitioning input coordinates via knot placement, but its accuracy is highly sensitive to internal knot locations. Optimizing knots using sequential quadratic programming is effective, yet computationally expensive. We propose a computationally efficient, interpolation-based method for optimal knot selection in SDD. The method includes: (1) interpolating input-output profiles, (2) defining subinterval-based reference regions, and (3) selecting knots at maximum gradient points within each region. The resulting knot vector is then applied to SDD for accurate approximation of non-smooth and oscillatory responses. A modal analysis of a lower control arm shows that SDD with the proposed knots yields higher accuracy than SDD with uniformly or randomly spaced knots and a Gaussian process model. In this example, the proposed SDD achieves the lowest relative variance error (2.89%) for the first natural frequency distribution, compared to uniformly spaced knots (12.310%), randomly spaced knots (15.274%), and Gaussian process (5.319%). All surrogates are constructed using the same 401 simulation datasets, and errors are evaluated against a 2000-sample Monte Carlo simulation. Scalability and applicability are demonstrated through stochastic and reliability analyses of one- and three-dimensional benchmark functions, and a ten-dimensional lower control arm model. Results confirm that second-moment statistics and reliability estimates can be accurately obtained with only a few hundred function evaluations or finite element simulations.
View on arXiv@article{kim2025_2505.12879, title={ Spline Dimensional Decomposition with Interpolation-based Optimal Knot Selection for Stochastic Dynamic Analysis }, author={ Yeonsu Kim and Junhan Lee and Bingran Wang and John T. Hwang and Dongjin Lee }, journal={arXiv preprint arXiv:2505.12879}, year={ 2025 } }