-
Notifications
You must be signed in to change notification settings - Fork 2
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
Add matrix pencil functions #191
Comments
The internal representation in #187 can be ok (whether vector of matrices or matrix of
A(1..2)
A(0.3)
A([-1..4, 2..3])
A([1.2, 3.4]) etc. which is closer to the mathematical idea of parametric matrix and the notation used in papers. I am ok to accept a "default" cached domain so that
getindex(M::IntervalMatrixPencil, i::Int) = getindex(M.A0, i) + M.λ * getindex(M.A1, i) to clarify my previous comment in the PR, I wasn't opposing defining
+(A::AbstractIntervalMatrix, B::AbstractIntervalMatrix) = map((a, b) -> a + b, A, B) because given the current implementation of +(A::AffineParametricMatrix1, B::AffineParametricMatrix2) = AffineParametricMatrix1(A.A+B.A, A.B + B.B) (hopefully you get the idea of the previous example, I went a little wild with notation)
|
Thanks for your insight.
Yes; we can do that through struct composition in subsequent patches. I mean to say, we can add the struct with the indeterminate later, and compose it with the structs in #187.
The current implementation is correct, since the interval parameter is known upon construction. This is connected to the previous comment (to implement a method with a function-like behavior at a later point).
Delegated to future PRs. The main motivation of #187 is to start modeling problems with the required structure. |
The following matrix types can be express used to build interval matrix that are only affected by some parameters (ie. parametric interval matrices):
(A0, A1, p)
-->A0 + p A1
--(A0, A1, ..., Ak. p)
-->A0 + p1 A1 + \lambda_2 A2 + \ldots + pk Ak
(A0, p, c, A)
--->A0 + p1^{c1} A1 + p2^{c2} A2 + \ldots + pk^{ck} Ak
See #187 for an implementation of the first two.
There is also the closely related concept of matrix pencil, but in that case, the parameter is understood as an indeterminate. I see two options, either:
(a) Use the implementation in #187. Then define a matrix pencil struct with indeterminates. We may or may not compose those in the future.
(b) Define a struct for the (interval) matrix pencil with an indeterminate lambda, which is then instantiated with some p obtaining some other struct which does hold the value of the parameter.
I would go for option (a), mainly because it is an incremental change.
The text was updated successfully, but these errors were encountered: