-
-
Notifications
You must be signed in to change notification settings - Fork 217
Stochastic term dropped from SDAE by structural_simplify #3489
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Yeah that's a bad bug, assigning @AayushSabharwal |
Many thanks! |
This is a limitation of the current structural simplification of SDEs. I'll have to think about how to handle this, it's not a trivial fix. |
Any equation with a brownian needs to somehow be opted out. |
I'm not sure what you mean. The problem is that MTK keeps track of which brownians occur in each equation containing a derivative term. After simplification, it looks at the lhs of differential equations and constructs the noise expression for that equation from the brownian incidence in the previous step. |
Since |
Yeah, why just derivative equations? The point is that simplification shouldn't happen on algebraic equations with brownians. |
So the ideal result here is D(alpha) ~ beta
0 ~ -beta with noise_eqs being |
I don't get how algebraic equations have noise |
Yes that's how it should look. |
Alright, I'll try to figure something out. I don't think we have a way to mark equations as irreducible yet, and we can't remove these equations entirely because that makes the system underdetermined. |
Describe the bug 🐞
I'm trying to create a SDAE system with @mtkbuild and a list of equations, using a variable declared with the brownian macro in one of the algebraic equations.
Expected behavior
I would expect this example to be simplified to a single (constant at zero) differential equation with a noise equation constant at sigma. Instead, the noise equation is constant at zero.
Minimal Reproducible Example 👇
Error & Stacktrace⚠️
Environment (please complete the following information):
using Pkg; Pkg.status()
using Pkg; Pkg.status(; mode = PKGMODE_MANIFEST)
versioninfo()
Additional context
I'm trying to parse system structure diagrams from another library into systems of DAEs, SDAEs, and RDAEs using Modeling Toolkit. The mtkbuild syntax with a list of equations seems like a natural fit, but I'd love to know if what I'm doing is outside of the intended/supported use of mtkbuild or of MTK more generally. Thank you for all of the work you all put into these tools!
The text was updated successfully, but these errors were encountered: