Gerhard Reinerth , David Messmann , Jean Elsner , Ulrich Walter
{"title":"VarProDMD: Solving Variable Projection for the Dynamic Mode Decomposition with SciPy’s optimization suite","authors":"Gerhard Reinerth , David Messmann , Jean Elsner , Ulrich Walter","doi":"10.1016/j.softx.2024.101896","DOIUrl":null,"url":null,"abstract":"<div><div>The Dynamic Mode Decomposition is a widely used tool for analysis in various scientific fields ranging from plasma physics to robotics, which decomposes high-dimensional signals into interpretable quantities. It reduces the dimensionality of a dynamic system while preserving the complex behavior. The identified quantities then can be used to perform a simulation (inter- and extrapolation) efficiently. The traditional Dynamic Mode Decomposition requires data to be sampled at a constant rate. Measurements however can experience delays or jitter. Due to the structure of the classic Dynamic Mode Decomposition, inter- and extrapolation at specific continuous timesteps become intractable. The Variable Projection method, a nonlinear optimization scheme that splits linear from nonlinear parameters for optimization, relaxes the fixed sampling rate requirement. Thus, the measurements can arrive at any time step. The available Python library implements a variant of the Levenberg–Marquardt optimizer for the Variable Projection Method. The optimization procedure uses a complex residual function since the measurements can incorporate complex numbers. Python’s available optimization suites require real, analytic functions. We reformulate the problem to utilize the available optimizers to perform Variable Projection within the Dynamic Mode Decomposition framework, allowing for faster run times w.r.t. the Python implementation in most cases. A preselection scheme on the measurements can enhance overall computational efficiency while maintaining the signal reconstruction capability.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"28 ","pages":"Article 101896"},"PeriodicalIF":2.4000,"publicationDate":"2024-09-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2352711024002668/pdfft?md5=9e60f0ecfde1d2b56ee1a2205d3db26d&pid=1-s2.0-S2352711024002668-main.pdf","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SoftwareX","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2352711024002668","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
Abstract
The Dynamic Mode Decomposition is a widely used tool for analysis in various scientific fields ranging from plasma physics to robotics, which decomposes high-dimensional signals into interpretable quantities. It reduces the dimensionality of a dynamic system while preserving the complex behavior. The identified quantities then can be used to perform a simulation (inter- and extrapolation) efficiently. The traditional Dynamic Mode Decomposition requires data to be sampled at a constant rate. Measurements however can experience delays or jitter. Due to the structure of the classic Dynamic Mode Decomposition, inter- and extrapolation at specific continuous timesteps become intractable. The Variable Projection method, a nonlinear optimization scheme that splits linear from nonlinear parameters for optimization, relaxes the fixed sampling rate requirement. Thus, the measurements can arrive at any time step. The available Python library implements a variant of the Levenberg–Marquardt optimizer for the Variable Projection Method. The optimization procedure uses a complex residual function since the measurements can incorporate complex numbers. Python’s available optimization suites require real, analytic functions. We reformulate the problem to utilize the available optimizers to perform Variable Projection within the Dynamic Mode Decomposition framework, allowing for faster run times w.r.t. the Python implementation in most cases. A preselection scheme on the measurements can enhance overall computational efficiency while maintaining the signal reconstruction capability.
期刊介绍:
SoftwareX aims to acknowledge the impact of software on today''s research practice, and on new scientific discoveries in almost all research domains. SoftwareX also aims to stress the importance of the software developers who are, in part, responsible for this impact. To this end, SoftwareX aims to support publication of research software in such a way that: The software is given a stamp of scientific relevance, and provided with a peer-reviewed recognition of scientific impact; The software developers are given the credits they deserve; The software is citable, allowing traditional metrics of scientific excellence to apply; The academic career paths of software developers are supported rather than hindered; The software is publicly available for inspection, validation, and re-use. Above all, SoftwareX aims to inform researchers about software applications, tools and libraries with a (proven) potential to impact the process of scientific discovery in various domains. The journal is multidisciplinary and accepts submissions from within and across subject domains such as those represented within the broad thematic areas below: Mathematical and Physical Sciences; Environmental Sciences; Medical and Biological Sciences; Humanities, Arts and Social Sciences. Originating from these broad thematic areas, the journal also welcomes submissions of software that works in cross cutting thematic areas, such as citizen science, cybersecurity, digital economy, energy, global resource stewardship, health and wellbeing, etcetera. SoftwareX specifically aims to accept submissions representing domain-independent software that may impact more than one research domain.