Description Usage Arguments Details Value Author(s) References See Also Examples
View source: R/IdentAnalysis.R
This function generates an equivalent system matrix for
a linear ODE system that is unidentifiable at x0
based on a
given coefficient matrix D
.
1 | EquivSystem(A, x0, Dmat, ...)
|
A |
The original system matrix. |
x0 |
The initial condition. |
Dmat |
When A is not identifiable at |
... |
Additional parameters used by function
|
EquivSystem computes [A, x0]
, the equivalence class of
A given x0, and then creates an equivalent system A (for the same x0)
based on the specified difference matrix Dmat (with the same
dimensionality of A). Remarks: a) when Dmat is the zero matrix,
EquivSystem(A, x0, 0)=A; b) when A is *identifiable* at x0,
EquivSystem(A, x0, Dmat)=A for all input Dmat. For unidentifiable
cases, using a random Dmat a.s. will lead to a different system Atilde
that is equivalent to A.
Atilde |
A system matrix that is equivalent to A at |
Xing Qiu
X. Qiu, T. Xu, B. Soltanalizadeh, and H. Wu. (2020+) Identifiability Analysis of Linear Ordinary Differential Equation Systems with a Single Trajectory. Submitted.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | A1 <- matrix(c(0, 1, -1,
2, 0, 0,
3, 1, 0), 3, byrow=TRUE)
jcf1 <- JordanReal(A1); J1 <- jcf1$J; Qmat1 <- jcf1$Qmat; Qinv1 <- jcf1$Qinv
## A1 is identifiable at x0.a but not identifiable at x0.b
x0.a <- Qmat1 %*% c(2, -1, 0)
x0.b <- Qmat1 %*% c(0, -2, 3)
## Using a random D matrix to create an equivalent system matrix
D1 <- matrix(rnorm(3*3), 3)
## Note that, because A1 is identifiable at x0.a, adding a random D1
## matrix will not change A1 at all.
B1 <- EquivSystem(A1, x0.a, Dmat=D1)
all.equal(A1, B1) #yes
## Now try x0.b. This time, we will get a system matrix B2 that is
## totally different from A1.
B2 <- EquivSystem(A1, x0.b, Dmat=D1)
B2; A1
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.