So I have a graph that looks like this
graph = Graph[{"Russia" \[DirectedEdge] "Crimea", "Russia" \[DirectedEdge]"Donetsk", "Russia" \[DirectedEdge] "Luhansk", "Russia" \[DirectedEdge] "Kharkiv", "Russia" \[DirectedEdge] "Sumy", "Russia" \[DirectedEdge] "Chernihiv", "Crimea" \[DirectedEdge] "Kherson", "Donetsk" \[DirectedEdge] "Luhansk", "Luhansk" \[DirectedEdge] "Donetsk", "Luhansk" \[DirectedEdge] "Kharkiv", "Kharkiv" \[DirectedEdge] "Luhansk", "Kharkiv" \[DirectedEdge] "Sumy", "Sumy" \[DirectedEdge] "Kharkiv","Sumy" \[DirectedEdge] "Chernihiv", "Chernihiv" \[DirectedEdge] "Sumy", "Donetsk" \[DirectedEdge] "Kharkiv", "Kharkiv" \[DirectedEdge] "Donetsk", "Kherson" \[DirectedEdge] "Zaporizhzhya", "Zaporizhzhya" \[DirectedEdge] "Kherson", "Zaporizhzhya" \[DirectedEdge] "Donetsk", "Donetsk" \[DirectedEdge] "Zaporizhzhya", "Kherson" \[DirectedEdge] "Dnipropetrovsk", "Dnipropetrovsk" \[DirectedEdge] "Kherson", "Dnipropetrovsk" \[DirectedEdge] "Zaporizhzhya", "Zaporizhzhya" \[DirectedEdge] "Dnipropetrovsk", "Dnipropetrovsk" \[DirectedEdge] "Donetsk", "Donetsk" \[DirectedEdge] "Dnipropetrovsk", "Dnipropetrovsk" \[DirectedEdge] "Kharkiv", "Kharkiv" \[DirectedEdge] "Dnipropetrovsk", "Kherson" \[DirectedEdge] "Crimea", "Dnipropetrovsk" \[DirectedEdge] "Poltava", "Poltava" \[DirectedEdge] "Dnipropetrovsk", "Poltava" \[DirectedEdge] "Kharkiv", "Kharkiv" \[DirectedEdge] "Poltava", "Poltava" \[DirectedEdge] "Sumy", "Sumy" \[DirectedEdge] "Poltava","Poltava" \[DirectedEdge] "Chernihiv", "Chernihiv" \[DirectedEdge] "Poltava", "Chernihiv" \[DirectedEdge] "Kiev", "Kiev" \[DirectedEdge] "Chernihiv", "Kiev" \[DirectedEdge] "Cherkassy", "Cherkassy" \[DirectedEdge] "Kiev", "Cherkassy" \[DirectedEdge] "Kirovohrad", "Kirovohrad" \[DirectedEdge] "Cherkassy", "Kiev" \[DirectedEdge] "Poltava", "Poltava" \[DirectedEdge] "Kiev","Poltava" \[DirectedEdge] "Cherkassy", "Cherkassy" \[DirectedEdge] "Poltava", "Kirovohrad" \[DirectedEdge] "Poltava", "Poltava" \[DirectedEdge] "Kirovohrad", "Kirovohrad" \[DirectedEdge] "Dnipropetrovsk", "Dnipropetrovsk" \[DirectedEdge] "Kirovohrad", "Kirovohrad" \[DirectedEdge] "Mykolayiv", "Mykolayiv" \[DirectedEdge] "Kirovohrad", "Mykolayiv" \[DirectedEdge] "Dnipropetrovsk", "Dnipropetrovsk" \[DirectedEdge] "Mykolayiv", "Mykolayiv" \[DirectedEdge] "Kherson", "Kherson" \[DirectedEdge] "Mykolayiv", "Mykolayiv" \[DirectedEdge] "Odessa", "Odessa" \[DirectedEdge] "Mykolayiv", "Odessa" \[DirectedEdge] "Kirovohrad", "Kirovohrad" \[DirectedEdge] "Odessa", "Odessa" \[DirectedEdge] "Vinnytsia", "Vinnytsia" \[DirectedEdge] "Odessa", "Vinnytsia" \[DirectedEdge] "Kirovohrad", "Kirovohrad" \[DirectedEdge] "Vinnytsia", "Vinnytsia" \[DirectedEdge] "Cherkassy", "Cherkassy" \[DirectedEdge] "Vinnytsia", "Vinnytsia" \[DirectedEdge] "Kiev", "Kiev" \[DirectedEdge] "Vinnytsia", "Vinnytsia" \[DirectedEdge] "Zhytomyr", "Zhytomyr" \[DirectedEdge] "Vinnytsia", "Zhytomyr" \[DirectedEdge] "Kiev", "Kiev" \[DirectedEdge] "Zhytomyr", "Vinnytsia" \[DirectedEdge] "Khmelnytsky", "Khmelnytsky" \[DirectedEdge] "Vinnytsia", "Khmelnytsky" \[DirectedEdge] "Zhytomyr", "Zhytomyr" \[DirectedEdge] "Khmelnytsky", "Khmelnytsky" \[DirectedEdge] "Rivne", "Rivne" \[DirectedEdge] "Khmelnytsky", "Rivne" \[DirectedEdge] "Zhytomyr", "Zhytomyr" \[DirectedEdge] "Rivne", "Vinnytsia" \[DirectedEdge] "Chernivtsi", "Chernivtsi" \[DirectedEdge] "Vinnytsia", "Chernivtsi" \[DirectedEdge] "Khmelnytsky", "Khmelnytsky" \[DirectedEdge] "Chernivtsi", "Chernivtsi" \[DirectedEdge] "Ternopil", "Ternopil" \[DirectedEdge] "Chernivtsi", "Ternopil" \[DirectedEdge] "Khmelnytsky", "Khmelnytsky" \[DirectedEdge] "Ternopil", "Ternopil" \[DirectedEdge] "Rivne", "Rivne" \[DirectedEdge] "Ternopil", "Rivne" \[DirectedEdge] "Lutsk", "Lutsk" \[DirectedEdge] "Rivne", "Lutsk" \[DirectedEdge] "Lviv", "Lviv" \[DirectedEdge] "Lutsk", "Lviv" \[DirectedEdge] "Ternopil", "Ternopil" \[DirectedEdge] "Lviv", "Lviv" \[DirectedEdge] "Ivano-Frankivsk", "Ivano-Frankivsk" \[DirectedEdge] "Lviv", "Ivano-Frankivsk" \[DirectedEdge] "Ternopil", "Ternopil" \[DirectedEdge] "Ivano-Frankivsk", "Ivano-Frankivsk" \[DirectedEdge] "Chernivtsi", "Chernivtsi" \[DirectedEdge] "Ivano-Frankivsk", "Ivano-Frankivsk" \[DirectedEdge] "Uzhgorod", "Uzhgorod" \[DirectedEdge] "Ivano-Frankivsk", "Uzhgorod" \[DirectedEdge] "Lviv", "Lviv" \[DirectedEdge] "Uzhgorod"}, VertexLabels -> "Name", ImagePadding -> 10]
Then I did so
trans = Transpose[Normal[AdjacencyMatrix[graph]]];
Total[Normal[AdjacencyMatrix[graph]]];
input = Table[0, {l, 1, 27}]; (input[[#]] = 1) & /@ Position[Total[Normal[AdjacencyMatrix[graph]]], 0] // Flatten; input
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
Coloured it in
grr = Graphics[{Red, PointSize[0.05], Point[{0, 0}]}];
grg = Graphics[{Green, PointSize[0.05], Point[{0, 0}]}];
AdjacencyGraph[Transpose[trans], ImageSize -> Medium,
VertexStyle -> Table[i -> If[input[[i]] == 1, Red, Green], {i, 1, 26}]]
Now I want to find a way to animate my graph. I want to attach a system of differential equations to each node and I want each node to turn Red
(or stay Green
) depending on whether the x
comes out victorious or y
(after say t
amount of time) in say the following differential equations:
eqns = {x'[t] == a*y[t] - b*x[t], y'[t] == c*x[t] - d*y[t],x[0] == 60937, y[0] == 13797};
Where c = (1-a)
and d = (1-b)
and a
and b
are constants, but are different for each individual node (or element). How would I do this?
a
would be
{{"Crimea", 0.77}, {"Cherkassy", 0.067}, {"Chernihiv",0.103}, {"Chernivtsi",0.053}, {"Dnipropetrovsk", 0.32}, {"Donetsk", 0.749}, {"Ivano-Frankivsk", 0.018}, {"Kharkiv",0.443}, {"Kherson", 0.249}, {"Khmelnytskyi", 0.041}, {"Kirovohrad",0.035}, {"Kiev", 0.072}, {"Luhansk", 0.688}, {"Lviv", 0.038}, {"Mykolaiv", 0.293}, {"Odessa", 0.419}, {"Poltava",0.095}, {"Rivne", 0.027}, {"Sumy", 0.156}, {"Ternopil",0.012}, {"Vinnytsia", 0.047}, {"Lutsk", 0.025}, {"Zakarpattia",0.029}, {"Zaporizhzhya", 0.482}, {"Zhytomyr", 0.066}};
b
would be
{{"Zhytomyr", 0}, {"Zaporizhzhya", 0.003}, {"Zakarpattia",0}, {"Lutsk", 0.008}, {"Vinnytsia", 0.001}, {"Ternopil",0.008}, {"Sumy", 0.006}, {"Rivne", 0.004}, {"Poltava",0.002}, {"Odessa", 0.021}, {"Mykolaiv", 0}, {"Lviv", 0.040}, {"Luhansk", 0.035}, {"Kiev", 0.622}, {"Kirovohrad", 0.001}, {"Khmelnytskyi", 0.002}, {"Kherson", 0.004}, {"Kharkiv",0.077}, {"Ivano-Frankivsk", 0.018}, {"Donetsk",0.127}, {"Dnipropetrovsk", 0.014}, {"Chernivtsi", 0.005}, {"Chernihiv", 0.002}, {"Cherkassy", 0.001}, {"Crimea",0.658}};
For each element.
a
andb
if you want to go any further.. :) $\endgroup$